1 |
- {"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js?bc2e","webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?543d","webpack:///(webpack)/buildin/global.js?cd00","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js?4ea4","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js?278c","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js?c135","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js?9b42","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js?6613","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js?5a43","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js?c240","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js?9523","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js?a395","webpack:///./node_modules/@babel/runtime/helpers/typeof.js?7037","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js?e50d","webpack:///./node_modules/@babel/runtime/helpers/construct.js?b17c","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js?4a4b","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js?6f8f","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js?448a","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?2236","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js?11b0","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js?0676","webpack:///./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js?37dc","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js?970b","webpack:///./node_modules/@babel/runtime/helpers/createClass.js?5bc3","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","uni-app:///utils/permission.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/@babel/runtime/regenerator/index.js?2eee","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js?7ec2","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js?c973","uni-app:///utils/auth.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","uni-app:///node_modules/uview-ui/index.js","uni-app:///node_modules/uview-ui/libs/mixin/mixin.js","uni-app:///node_modules/uview-ui/libs/mixin/mpMixin.js","uni-app:///node_modules/uview-ui/libs/luch-request/index.js","uni-app:///node_modules/uview-ui/libs/luch-request/core/Request.js","uni-app:///node_modules/uview-ui/libs/luch-request/core/dispatchRequest.js","uni-app:///node_modules/uview-ui/libs/luch-request/adapters/index.js","uni-app:///node_modules/uview-ui/libs/luch-request/helpers/buildURL.js","uni-app:///node_modules/uview-ui/libs/luch-request/utils.js","uni-app:///node_modules/uview-ui/libs/luch-request/core/buildFullPath.js","uni-app:///node_modules/uview-ui/libs/luch-request/helpers/isAbsoluteURL.js","uni-app:///node_modules/uview-ui/libs/luch-request/helpers/combineURLs.js","uni-app:///node_modules/uview-ui/libs/luch-request/core/settle.js","uni-app:///node_modules/uview-ui/libs/luch-request/core/InterceptorManager.js","uni-app:///node_modules/uview-ui/libs/luch-request/core/mergeConfig.js","uni-app:///node_modules/uview-ui/libs/luch-request/core/defaults.js","uni-app:///node_modules/uview-ui/libs/luch-request/utils/clone.js","webpack:///./node_modules/buffer/index.js?b639","webpack:///./node_modules/base64-js/index.js?1fb5","webpack:///./node_modules/ieee754/index.js?9152","webpack:///./node_modules/isarray/index.js?e3db","uni-app:///node_modules/uview-ui/libs/util/route.js","uni-app:///node_modules/uview-ui/libs/function/colorGradient.js","uni-app:///node_modules/uview-ui/libs/function/test.js","uni-app:///node_modules/uview-ui/libs/function/debounce.js","uni-app:///node_modules/uview-ui/libs/function/throttle.js","uni-app:///node_modules/uview-ui/libs/function/index.js","uni-app:///node_modules/uview-ui/libs/function/digit.js","webpack:///./node_modules/@babel/runtime/helpers/toArray.js?480f","uni-app:///node_modules/uview-ui/libs/config/config.js","uni-app:///node_modules/uview-ui/libs/config/props.js","uni-app:///node_modules/uview-ui/libs/config/props/actionSheet.js","uni-app:///node_modules/uview-ui/libs/config/props/album.js","uni-app:///node_modules/uview-ui/libs/config/props/alert.js","uni-app:///node_modules/uview-ui/libs/config/props/avatar.js","uni-app:///node_modules/uview-ui/libs/config/props/avatarGroup.js","uni-app:///node_modules/uview-ui/libs/config/props/backtop.js","uni-app:///node_modules/uview-ui/libs/config/props/badge.js","uni-app:///node_modules/uview-ui/libs/config/props/button.js","uni-app:///node_modules/uview-ui/libs/config/props/calendar.js","uni-app:///node_modules/uview-ui/libs/config/props/carKeyboard.js","uni-app:///node_modules/uview-ui/libs/config/props/cell.js","uni-app:///node_modules/uview-ui/libs/config/props/cellGroup.js","uni-app:///node_modules/uview-ui/libs/config/props/checkbox.js","uni-app:///node_modules/uview-ui/libs/config/props/checkboxGroup.js","uni-app:///node_modules/uview-ui/libs/config/props/circleProgress.js","uni-app:///node_modules/uview-ui/libs/config/props/code.js","uni-app:///node_modules/uview-ui/libs/config/props/codeInput.js","uni-app:///node_modules/uview-ui/libs/config/props/col.js","uni-app:///node_modules/uview-ui/libs/config/props/collapse.js","uni-app:///node_modules/uview-ui/libs/config/props/collapseItem.js","uni-app:///node_modules/uview-ui/libs/config/props/columnNotice.js","uni-app:///node_modules/uview-ui/libs/config/props/countDown.js","uni-app:///node_modules/uview-ui/libs/config/props/countTo.js","uni-app:///node_modules/uview-ui/libs/config/props/datetimePicker.js","uni-app:///node_modules/uview-ui/libs/config/props/divider.js","uni-app:///node_modules/uview-ui/libs/config/props/empty.js","uni-app:///node_modules/uview-ui/libs/config/props/form.js","uni-app:///node_modules/uview-ui/libs/config/props/formItem.js","uni-app:///node_modules/uview-ui/libs/config/props/gap.js","uni-app:///node_modules/uview-ui/libs/config/props/grid.js","uni-app:///node_modules/uview-ui/libs/config/props/gridItem.js","uni-app:///node_modules/uview-ui/libs/config/props/icon.js","uni-app:///node_modules/uview-ui/libs/config/props/image.js","uni-app:///node_modules/uview-ui/libs/config/props/indexAnchor.js","uni-app:///node_modules/uview-ui/libs/config/props/indexList.js","uni-app:///node_modules/uview-ui/libs/config/props/input.js","uni-app:///node_modules/uview-ui/libs/config/props/keyboard.js","uni-app:///node_modules/uview-ui/libs/config/props/line.js","uni-app:///node_modules/uview-ui/libs/config/props/lineProgress.js","uni-app:///node_modules/uview-ui/libs/config/props/link.js","uni-app:///node_modules/uview-ui/libs/config/props/list.js","uni-app:///node_modules/uview-ui/libs/config/props/listItem.js","uni-app:///node_modules/uview-ui/libs/config/props/loadingIcon.js","uni-app:///node_modules/uview-ui/libs/config/props/loadingPage.js","uni-app:///node_modules/uview-ui/libs/config/props/loadmore.js","uni-app:///node_modules/uview-ui/libs/config/props/modal.js","uni-app:///node_modules/uview-ui/libs/config/props/navbar.js","uni-app:///node_modules/uview-ui/libs/config/color.js","uni-app:///node_modules/uview-ui/libs/config/props/noNetwork.js","uni-app:///node_modules/uview-ui/libs/config/props/noticeBar.js","uni-app:///node_modules/uview-ui/libs/config/props/notify.js","uni-app:///node_modules/uview-ui/libs/config/props/numberBox.js","uni-app:///node_modules/uview-ui/libs/config/props/numberKeyboard.js","uni-app:///node_modules/uview-ui/libs/config/props/overlay.js","uni-app:///node_modules/uview-ui/libs/config/props/parse.js","uni-app:///node_modules/uview-ui/libs/config/props/picker.js","uni-app:///node_modules/uview-ui/libs/config/props/popup.js","uni-app:///node_modules/uview-ui/libs/config/props/radio.js","uni-app:///node_modules/uview-ui/libs/config/props/radioGroup.js","uni-app:///node_modules/uview-ui/libs/config/props/rate.js","uni-app:///node_modules/uview-ui/libs/config/props/readMore.js","uni-app:///node_modules/uview-ui/libs/config/props/row.js","uni-app:///node_modules/uview-ui/libs/config/props/rowNotice.js","uni-app:///node_modules/uview-ui/libs/config/props/scrollList.js","uni-app:///node_modules/uview-ui/libs/config/props/search.js","uni-app:///node_modules/uview-ui/libs/config/props/section.js","uni-app:///node_modules/uview-ui/libs/config/props/skeleton.js","uni-app:///node_modules/uview-ui/libs/config/props/slider.js","uni-app:///node_modules/uview-ui/libs/config/props/statusBar.js","uni-app:///node_modules/uview-ui/libs/config/props/steps.js","uni-app:///node_modules/uview-ui/libs/config/props/stepsItem.js","uni-app:///node_modules/uview-ui/libs/config/props/sticky.js","uni-app:///node_modules/uview-ui/libs/config/props/subsection.js","uni-app:///node_modules/uview-ui/libs/config/props/swipeAction.js","uni-app:///node_modules/uview-ui/libs/config/props/swipeActionItem.js","uni-app:///node_modules/uview-ui/libs/config/props/swiper.js","uni-app:///node_modules/uview-ui/libs/config/props/swipterIndicator.js","uni-app:///node_modules/uview-ui/libs/config/props/switch.js","uni-app:///node_modules/uview-ui/libs/config/props/tabbar.js","uni-app:///node_modules/uview-ui/libs/config/props/tabbarItem.js","uni-app:///node_modules/uview-ui/libs/config/props/tabs.js","uni-app:///node_modules/uview-ui/libs/config/props/tag.js","uni-app:///node_modules/uview-ui/libs/config/props/text.js","uni-app:///node_modules/uview-ui/libs/config/props/textarea.js","uni-app:///node_modules/uview-ui/libs/config/props/toast.js","uni-app:///node_modules/uview-ui/libs/config/props/toolbar.js","uni-app:///node_modules/uview-ui/libs/config/props/tooltip.js","uni-app:///node_modules/uview-ui/libs/config/props/transition.js","uni-app:///node_modules/uview-ui/libs/config/props/upload.js","uni-app:///node_modules/uview-ui/libs/config/zIndex.js","uni-app:///node_modules/uview-ui/libs/function/platform.js","uni-app:///api/notice.js","uni-app:///utils/request.js","uni-app:///utils/baseurl.js","uni-app:///utils/errorCode.js","webpack:///./node_modules/flyio/dist/npm/wx.js?ac60","uni-app:///api/asset.js","uni-app:///api/user.js","uni-app:///utils/storage.js","webpack:///D:/work/lab/lab-equipment-mini-program/static/images/search.png?2764","uni-app:///common/js/core.js","webpack:///D:/work/lab/lab-equipment-mini-program/static/images/list.png?6927","uni-app:///node_modules/uview-ui/components/u-search/props.js","uni-app:///node_modules/uview-ui/components/u-input/props.js","uni-app:///node_modules/uview-ui/components/u-empty/props.js","uni-app:///node_modules/uview-ui/components/u-cell-group/props.js","uni-app:///node_modules/uview-ui/components/u-cell/props.js","uni-app:///node_modules/uview-ui/components/u-form/props.js","uni-app:///node_modules/uview-ui/components/u-form-item/props.js","uni-app:///node_modules/uview-ui/components/u-picker/props.js","uni-app:///node_modules/uview-ui/components/u-datetime-picker/props.js","uni-app:///node_modules/uview-ui/libs/util/dayjs.js","uni-app:///node_modules/uview-ui/libs/mixin/button.js","uni-app:///node_modules/uview-ui/libs/mixin/openType.js","uni-app:///node_modules/uview-ui/components/u-button/props.js","uni-app:///node_modules/uview-ui/components/u-popup/props.js","uni-app:///node_modules/uview-ui/components/u-avatar/props.js","uni-app:///node_modules/uview-ui/components/u-list/props.js","uni-app:///node_modules/uview-ui/components/u-list-item/props.js","uni-app:///node_modules/uview-ui/components/u-textarea/props.js","uni-app:///node_modules/uview-ui/components/u-radio-group/props.js","uni-app:///node_modules/uview-ui/components/u-radio/props.js","uni-app:///node_modules/uview-ui/components/u-icon/icons.js","uni-app:///node_modules/uview-ui/components/u-icon/props.js","uni-app:///node_modules/uview-ui/components/u-overlay/props.js","uni-app:///node_modules/uview-ui/components/u-loading-icon/props.js","uni-app:///node_modules/uview-ui/components/u-gap/props.js","uni-app:///node_modules/uview-ui/components/u-line/props.js","uni-app:///node_modules/uview-ui/libs/util/async-validator.js","webpack:///./node_modules/node-libs-browser/mock/process.js?4362","webpack:///./node_modules/path-browserify/index.js?df7c","uni-app:///node_modules/uview-ui/components/u-toolbar/props.js","uni-app:///node_modules/uview-ui/components/u-row/props.js","uni-app:///node_modules/uview-ui/components/u-col/props.js","uni-app:///node_modules/uview-ui/components/u-transition/props.js","uni-app:///node_modules/uview-ui/components/u-transition/transition.js","uni-app:///node_modules/uview-ui/components/u-transition/nvue.ani-map.js","uni-app:///node_modules/uview-ui/components/u-status-bar/props.js","uni-app:///node_modules/uview-ui/components/u-safe-bottom/props.js","uni-app:///node_modules/uview-ui/components/u-text/props.js","uni-app:///node_modules/uview-ui/components/u-text/value.js","uni-app:///node_modules/uview-ui/components/u-link/props.js"],"names":["objectKeys","singlePageDisableKey","target","globalThis","this","key","join","oldWx","launchOption","getLaunchOptionsSync","isWxKey","scene","includes","indexOf","initWx","newWx","realAtob","b64","b64re","b64DecodeUnicode","str","decodeURIComponent","split","map","c","charCodeAt","toString","slice","getCurrentUserInfo","userInfo","token","wx","getStorageSync","tokenArr","length","uid","role","permission","tokenExpired","JSON","parse","error","Error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","atob","String","replace","test","bitmap","r1","r2","result","i","charAt","fromCharCode","_toString","Object","hasOwnProperty","isFn","fn","isStr","isObject","obj","isPlainObject","call","hasOwn","noop","cached","cache","create","hit","camelizeRE","camelize","_","toUpperCase","sortObject","sortObj","keys","sort","forEach","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","promisify","success","fail","complete","assign","finally","constructor","value","reason","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","locale","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","normalizeLocale","language","i18n","initVueI18n","t","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","getApp","app","allowDefault","$vm","$locale","setLocale$1","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","deviceId","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","populateParameters","brand","model","system","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","extraParam","osName","osVersion","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","toLocaleLowerCase","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","environment","host","env","getSystemInfo","showActionSheet","alertText","title","getAppBaseInfo","getDeviceInfo","getWindowInfo","getAppAuthorizeSetting","locationReducedAccuracy","locationAccuracy","compressImage","compressedHeight","compressHeight","compressedWidth","compressWidth","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","ctx","$on","arguments","$off","$emit","cid","cidErrMsg","enabled","eventApi","tryCatch","e","getApiCallbacks","apiCallbacks","param","normalizePushMessage","invokePushCallback","type","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","baseInfo","shareVideoMessage","miniapp","mocks","findVmByVueId","vm","vuePid","parentVm","$children","childVm","$scope","_$vueId","initBehavior","Behavior","isPage","route","initRelation","detail","triggerEvent","selectAllComponents","mpInstance","selector","$refs","components","component","ref","dataset","toSkip","vueGeneric","scopedComponent","syncRefs","refs","newRefs","oldKeys","Set","newKeys","oldValue","newValue","every","delete","initRefs","forComponents","handleLink","event","vueOptions","parent","markMPComponent","IS_MP","configurable","enumerable","OB","SKIP","isExtensible","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","oldTriggerEvent","newTriggerEvent","comType","newEvent","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","$mp","mpType","mock","hasHook","default","extendOptions","super","mixins","initHooks","mpOptions","__call_hook","initUnknownHooks","excludes","findHooks","initHook$1","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","newVal","oldVal","initBehaviors","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","virtualHost","virtualHostStyle","virtualHostClass","scopedSlotsCompiler","observer","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","vFor","propPath","valuePath","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","__args__","extraObj","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","generic","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","is","once","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","val2","x","parseBaseComponent","vueComponentOptions","needVueOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","createPlugin","todoApi","canIUseApi","apiName","uni","Proxy","uni$1","g","Function","window","module","exports","_interopRequireDefault","__esModule","arrayWithHoles","require","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","arrayLikeToArray","_unsupportedIterableToArray","o","minLen","n","from","_arrayLikeToArray","arr2","_nonIterableRest","TypeError","toPropertyKey","_defineProperty","writable","_typeof","toPrimitive","_toPropertyKey","_toPrimitive","input","hint","prim","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","bind","a","Constructor","instance","_setPrototypeOf","p","_isNativeReflectConstruct","sham","valueOf","arrayWithoutHoles","iterableToArray","nonIterableSpread","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","defaultFormatter","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","_classCallCheck","_defineProperties","descriptor","_createClass","protoProps","staticProps","emptyObject","isUndef","isDef","isTrue","isFalse","isPrimitive","toRawType","isRegExp","isValidArrayIndex","parseFloat","isFinite","toNumber","makeMap","expectsLowerCase","list","isBuiltInTag","isReservedAttribute","remove","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","l","_length","nativeBind","toArray","start","to","_from","toObject","b","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","getTime","keysA","keysB","looseIndexOf","called","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","RegExp","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","weexPlatform","UA","navigator","userAgent","isIE","isEdge","nativeWatch","match","addEventListener","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","ownKeys","clear","tip","generateComponentTrace","formatComponentName","hasConsole","classifyRE","classify","msg","trace","includeFile","$root","_isVue","_componentTag","repeat","tree","currentRecursiveSequence","last","Dep","subs","pushTarget","SharedObject","targetStack","popTarget","addSub","removeSub","depend","addDep","notify","update","VNode","tag","children","elm","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","original","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","copyAugment","protoAugment","src","observe","asRootData","__v_isMPComponent","defineReactive$$1","customSetter","shallow","property","getOwnPropertyDescriptor","getter","setter","childOb","dependArray","max","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","instanceData","defaultData","mergeAssets","assertObjectType","el","defaultStrat","key$1","inject","computed","provide","checkComponents","validateComponentName","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","prop","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","assertProp","_props","getType","required","valid","expectedTypes","assertedType","assertType","expectedType","validator","getInvalidTypeMessage","simpleCheckRE","isSameType","receivedType","expectedValue","styleValue","receivedValue","isExplicable","isBoolean","explicitTypes","some","elem","handleError","info","cur","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","initProxy","callbacks","pending","flushCallbacks","copies","setTimeout","MutationObserver","setImmediate","counter","textNode","document","createTextNode","characterData","nextTick","cb","_resolve","allowedGlobals","warnNonPresent","warnReservedPrefix","hasProxy","isBuiltInModifier","hasHandler","isAllowed","$data","getHandler","handlers","render","_withStripped","_renderProxy","mark","measure","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","perf","clearMarks","clearMeasures","startTag","endTag","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","createOnceHandler","old","extractPropertiesFromVNodeData","attrs","altKey","checkProp","extractPropsFromVNodeData","keyInLowerCase","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","source","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","fallback","bindObject","nodes","scopedSlotFn","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","staticRenderFns","markStatic","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_l","_t","_q","_f","_k","_b","_v","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","_compiled","needNormalization","listeners","injections","scopedSlots","_scopeId","_c","d","createElement","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","clone","devtoolsMeta","componentVNodeHooks","init","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","oldVnode","updateChildComponent","insert","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","hooksToMerge","baseCtor","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","functional","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","merged","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","$vnode","pre","applyNS","registerDeepBindings","force","style","class","initRender","_vnode","parentVnode","_renderChildren","parentData","isUpdatingChildComponent","_parentListeners","currentRenderingInstance","renderMixin","$nextTick","_render","renderError","ensureCtor","comp","base","toStringTag","factory","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","forceRender","renderCompleted","clearTimeout","delay","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","i$1","cbs","lowerCaseEvent","setActiveInstance","prevActiveInstance","initLifecycle","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","_$updateProperties","isInInactiveTree","direct","j","MAX_UPDATE_COUNT","activatedChildren","circular","waiting","flushing","resetSchedulerState","getNow","createEvent","timeStamp","flushSchedulerQueue","before","run","user","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","Watcher","expOrFn","isRenderWatcher","deep","lazy","active","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initComputed","initWatch","propsOptions","isRoot","_getFormData","__next_tick_pending","getData","computedWatcherOptions","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","_$fallback","_name","vnodeComponentOptions","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","modified","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","install","initMixin$1","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","exclude","created","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","ssrContext","ARRAYTYPE","OBJECTTYPE","NULLTYPE","UNDEFINEDTYPE","diff","syncKeys","_diff","rootCurrentType","rootPreType","currentValue","nullOrUndefined","currentType","preType","setResult","preValue","subKey","k","flushCallbacks$1","__next_tick_callbacks","log","hasRenderWatcher","nextTick$1","mpInstance$1","clearInstance","cloneWithData","dataKeys","reduce","compositionApiState","__composition_api_state__","__secret_vfa_state__","rawBindings","patch","__webviewId__","mpData","diffData","$shouldDiffData","createEmptyRender","mountComponent$1","template","updateComponent","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleBinding","bindingStyle","MP_METHODS","getTarget","internalMixin","onError","oldEmit","my","createSelectorQuery","createIntersectionObserver","__init_provide","__init_injections","__set_model","modifiers","__set_sync","__get_orig","__get_class","__get_style","dynamicStyle","staticStyle","dynamicStyleObj","styleObj","__map","iteratee","LIFECYCLE_HOOKS$1","lifecycleMixin$1","oldExtend","strategies","whiteList","pass","getToken","showToast","icon","navigateTo","runtime","_regeneratorRuntime","Op","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","makeInvokeMethod","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","TokenKey","setToken","setStorageSync","removeToken","removeStorageSync","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","renderjs","__module","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","shadowRoot","_injectStyles","originalRender","h","pleaseSetTranspileDependencies","$u","date","timeFormat","colorGradient","hexToRgb","rgbToHex","colorToRgba","http","Request","zIndex","debounce","throttle","mpMixin","color","timestamp","timeFrom","customStyle","customClass","linkType","getRect","$uGetRect","deepMerge","bem","fixed","change","prefix","classes","openPage","urlKey","all","in","boundingClientRect","rect","exec","getParentData","parentName","preventEvent","onReachBottom","beforeDestroy","array","childrenList","defaults","request","InterceptorManager","response","mergeConfig","dispatchRequest","fulfilled","rejected","middleware","adapter","mergeKeys","config2","isUndefined","requestTask","buildURL","buildFullPath","baseURL","_config","header","settle","otherConfig","filePath","optionalKeys","uploadFile","downloadFile","getTask","serializedParams","utils","isURLSearchParams","isDate","toISOString","hashmarkIndex","URLSearchParams","assignValue","requestedURL","isAbsoluteURL","combineURLs","relativeURL","validateStatus","status","statusCode","eject","globalsConfig","custom","defaultToConfig2Keys","uploadKeys","defaultsKeys","dataType","responseType","_instanceof","nativeMap","nativeSet","nativePromise","Map","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","_clone","proto","__isArray","__isRegExp","__getRegExpFlags","__isDate","isBuffer","copy","keyChild","valueChild","entryChild","objProperty","ReferenceError","getOwnPropertySymbols","symbols","allPropertyNames","propertyName","Infinity","__objToStr","re","flags","ignoreCase","multiline","clonePrototype","base64","ieee754","typedArraySupport","Uint8Array","foo","subarray","byteLength","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","fill","encoding","checked","string","isEncoding","write","fromArrayLike","byteOffset","buffer","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","y","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","toByteArray","dst","lookup","revLookup","Arr","getLens","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","num","encodeChunk","uint8","output","extraBytes","maxChunkLength","len2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","s","NaN","rt","abs","LN2","Router","animationType","animationDuration","intercept","addRootPath","queryParams","mixinParam","routeIntercept","isNext","switchTab","reLaunch","navigateBack","startColor","endColor","step","startRGB","startR","startG","startB","endRGB","endR","endG","endB","sR","sG","sB","colorArr","hex","round","sColor","reg","sColorNew","sColorChange","rgb","_this","aColor","strHex","aNum","numHex","alpha","email","mobile","dateISO","digits","idCard","carNo","xreg","creg","amount","chinese","letter","enOrNum","contains","range","rangeLength","landline","empty","jsonString","func","image","IMAGE_REGEXP","video","VIDEO_REGEXP","regExp","isEmpty","wait","callNow","flag","getPx","unit","sleep","os","sys","gab","guid","firstU","radix","chars","uuid","r","addStyle","styleArray","addUnit","deepClone","randomArray","dateTime","formatStr","timeSource","getFullYear","getMonth","padStart","getDate","getHours","getMinutes","getSeconds","beginIndex","timer","tips","isPrefix","arrayFormat","_result","_value","commaStr","toast","duration","type2icon","iconName","priceFormat","decimals","decimalPoint","thousandsSeparator","prec","sep","dec","getDuration","valueNum","padZero","formValidate","formItem","form","validateField","getProperty","firstObj","setProperty","inFn","_obj","setConfig","maxLength","fillString","fillLength","times","ceil","_boundaryCheckingState","strip","precision","toPrecision","digitLength","eSplit","float2Fixed","dLen","checkBoundary","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","iteratorOperation","operation","num1","num2","others","nums","num1Changed","num2Changed","baseNum","leftValue","plus","minus","divide","ratio","enableBoundaryChecking","_toArray","actionSheet","album","alert","avatar","avatarGroup","backtop","badge","button","calendar","carKeyboard","cell","cellGroup","checkbox","checkboxGroup","circleProgress","codeInput","col","collapse","collapseItem","columnNotice","countDown","countTo","datetimePicker","divider","gap","grid","gridItem","indexAnchor","indexList","keyboard","line","lineProgress","link","listItem","loadingIcon","loadingPage","loadmore","modal","navbar","noNetwork","noticeBar","numberBox","numberKeyboard","overlay","picker","popup","radio","radioGroup","rate","readMore","row","rowNotice","scrollList","search","section","skeleton","slider","statusBar","steps","stepsItem","sticky","subsection","swipeAction","swipeActionItem","swiper","swipterIndicator","_switch","tabbar","tabbarItem","tabs","textarea","toolbar","tooltip","transition","upload","description","actions","cancelText","closeOnClickAction","safeAreaInsetBottom","openType","closeOnClickOverlay","keyName","singleSize","multipleSize","space","singleMode","multipleMode","maxCount","previewFullImage","rowCount","showMore","closable","showIcon","effect","fontSize","shape","bgColor","mpAvatar","randomBgColor","defaultUrl","colorIndex","extraValue","scrollTop","iconStyle","isDot","showZero","numberType","inverted","absolute","hairline","plain","disabled","loadingText","loadingMode","loadingSize","formType","appParameter","hoverStopPropagation","sessionFrom","sendMessageTitle","sendMessagePath","sendMessageImg","showMessageCard","dataName","throttleTime","hoverStartTime","hoverStayTime","iconColor","showTitle","showSubtitle","startText","endText","customList","minDate","maxDate","defaultDate","rowHeight","formatter","showLunar","showMark","confirmText","confirmDisabledText","readonly","showConfirm","maxRange","rangePrompt","showRangePrompt","allowSameDay","monthNum","label","border","clickable","isLink","arrowDirection","rightIconStyle","rightIcon","titleStyle","activeColor","inactiveColor","iconSize","labelSize","labelColor","labelDisabled","placement","iconPlacement","borderBottom","percentage","seconds","changeText","keepRunning","uniqueKey","adjustPosition","maxlength","dot","focus","bold","disabledKeyboard","borderColor","disabledDot","span","justify","align","textAlign","accordion","speed","disableTouch","time","autoStart","millisecond","startVal","endVal","autoplay","useEasing","decimal","separator","showToolbar","minHour","maxHour","minMinute","maxMinute","itemHeight","cancelColor","confirmColor","visibleItemCount","defaultIndex","dashed","textPosition","textSize","textColor","lineColor","width","height","marginTop","rules","errorType","labelPosition","labelWidth","labelAlign","labelStyle","leftIcon","leftIconStyle","marginBottom","hoverClass","customPrefix","labelPos","imgMode","radius","lazyLoad","showMenuByLongpress","errorIcon","showLoading","showError","fade","webp","customNavHeight","disabledColor","clearable","password","placeholder","placeholderClass","placeholderStyle","showWordLimit","confirmType","confirmHold","holdKeyboard","autoBlur","disableDefaultPadding","cursor","cursorSpacing","selectionStart","selectionEnd","inputAlign","prefixIcon","prefixIconStyle","suffixIcon","suffixIconStyle","dotDisabled","showTips","showCancel","autoChange","direction","margin","showText","underLine","href","mpTips","showScrollbar","lowerThreshold","upperThreshold","offsetAccuracy","enableFlex","pagingEnabled","scrollable","scrollIntoView","scrollWithAnimation","enableBackToTop","preLoadScreen","anchor","vertical","timingFunction","loadingColor","loadmoreText","nomoreText","content","showConfirmButton","showCancelButton","buttonReverse","zoom","asyncClose","negativeTop","confirmButtonShape","safeAreaInsetTop","leftText","rightText","titleWidth","leftIconSize","leftIconColor","mainColor","autoBack","primary","warning","contentColor","tipsColor","lightColor","integer","disabledInput","asyncChange","inputWidth","showMinus","showPlus","decimalLength","longPress","buttonSize","disableMinus","disablePlus","opacity","copyLink","errorImg","loadingImg","pauseVideo","previewImg","setTitle","showImgMenu","columns","immediateChange","closeable","overlayStyle","closeIconPos","overlayOpacity","count","gutter","minCount","allowHalf","activeIcon","inactiveIcon","touchable","showHeight","toggle","closeText","openText","textIndent","indicatorWidth","indicatorBarWidth","indicatorColor","indicatorActiveColor","indicatorStyle","clearabled","showAction","actionStyle","actionText","inputStyle","searchIconColor","searchIconSize","placeholderColor","searchIcon","animation","subTitle","subColor","showLine","arrow","animate","rows","rowsWidth","rowsHeight","titleHeight","avatarSize","avatarShape","blockSize","blockColor","showValue","blockStyle","offsetTop","autoClose","threshold","indicatorInactiveColor","indicatorMode","currentItemId","interval","previousMargin","nextMargin","acceleration","displayMultipleItems","easingFunction","swiperIndicator","switch","activeValue","inactiveValue","badgeStyle","activeStyle","inactiveStyle","lineWidth","lineHeight","lineBgSize","itemStyle","closeColor","plainFill","block","lines","decoration","wordWrap","autoHeight","showConfirmBar","isTab","back","copyText","showCopy","buttons","accept","compressed","camera","maxDuration","uploadIcon","uploadIconColor","useBeforeRead","imageMode","sizeType","multiple","deletable","maxSize","MAX_VALUE","fileList","uploadText","mask","topTips","indexListSticky","getNewInform","fly","getNewNotice","getNoticeDetail","Fly","baseUrl","isToken","headers","rescode","resmsg","errorCode","showModal","confirm","cancel","devUrl","modules","installedModules","__webpack_require__","moduleId","real","isFormData","FormData","formatParams","first","_encode","merge","isBrowser","EngineWrapper","AjaxEngine","requestHeaders","readyState","responseURL","responseHeaders","_call","location","_changeReadyState","body","_options","getAndDelete","responseText","statusMessage","field","cookies","cookie","statusText","_response","getResponseHeader","requestAdapter","engine","_clear","lock","_reject","unlock","XMLHttpRequest","onerror","irq","irp","parseJson","withCredentials","contentType","contentTypeLowerCase","requestInterceptor","responseInterceptor","requestInterceptorHandler","enqueueIfLocked","makeRequest","isAbsolute","pathname","needQuery","_params","open","customContentType","_contentType","setRequestHeader","onresult","Err","onload","getAllResponseHeaders","ontimeout","send","promises","responseCallback","con","_Fly","wxEngine","searchAsset","getAllPlace","borrowAsset","borrowDate","returnDate","post","returnAsset","barCode","put","getBorrowList","getReturnDetail","sumBorrow","reportFault","getFaultReport","getFaultDetail","handleFaultReport","login","username","getInfo","saveUserInfo","savePassword","oldPwd","newPwd","oldPassword","newPassword","logout","sessionCache","setJSON","jsonValue","getJSON","session","dateToString","addZero","year","month","day","hour","parseTime","formatObj","getDay","time_str","resetForm","refName","resetFields","addDateRange","dateRange","propName","selectDictLabel","datas","selectDictLabels","currentSeparator","temp","substring","sprintf","parseStrEmpty","mergeRecursive","handleTree","parentId","childrenListMap","nodeIds","adaptToChildrenList","tansParams","subPart","blobValidate","ignoreCompositionEvent","u","weekdays","months","$","z","utcOffset","M","w","D","ms","Q","S","$L","utc","$x","$offset","$d","UTC","$y","$M","$D","$W","$H","$m","$s","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","toDate","weekStart","daysInMonth","subtract","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","toUTCString","$i","isDayjs","en","Ls","onGetUserInfo","onContact","onGetPhoneNumber","onLaunchApp","onOpenSetting","formatRegExp","convertFieldsError","errors","fields","_len","_key","isNativeStringType","isEmptyValue","asyncParallelArray","results","total","asyncSerialArray","flattenObjArr","objArr","asyncMap","_pending","flattenArr","firstFields","objArrKeys","objArrLength","complementError","rule","oe","fullField","whitespace","types","float","regexp","getYear","ruleType","spRegexp","ENUM","pattern$1","mismatch","_pattern","enum","validate","_boolean","floatFn","ENUM$1","enumerable$1","pattern$2","dateObject","required$1","type$1","any","validators","boolean","newMessages","invalid","Schema","_messages","source_","oc","_errors","messages$1","series","transform","getValidationMethod","errorFields","doIt","defaultField","addFullfield","schema","suppressWarning","fieldsSchema","fieldSchema","errs","finalErrors","asyncValidator","messageIndex","register","arch","execPath","pid","browser","argv","binding","cwd","chdir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","normalize","trailingSlash","paths","relative","fromParts","toParts","samePartsLength","outputParts","delimiter","dirname","hasRoot","extname","startDot","startPart","preDotState","getClassNames","enter","leave","clickHandler","vueEnter","classNames","inited","display","transitionEnded","vueLeave","onTransitionEnd","tepe","formatName"],"mappings":"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JqwC,MAAO,CACH,YAAa,UACb,YAAa,UACb,YAAa,UACb,UAAW,UACX,SAAU,UACV,eAAgB,UAChB,kBAAmB,UACnB,eAAgB,UAChB,gBAAiB,WAGxByX,KAAM,MACN,a,yHC5BD,WAEA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aAAmC,+kBAI/BlrC,UADAyzB,MADJ,IAEU,8QAGHmd,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACArN,WACAsN,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACA9H,WACA+D,WACAD,WACAiE,WACAC,WACAC,WACAxmB,WACA0e,WACA+H,WACAC,WACA56C,WACA66C,WACAC,WACAC,WACAC,WACA50C,WACA60C,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,WACAC,YACA1uC,YACA2uC,YACAC,YACAC,YACAhnE,YACAinE,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACAC,YACApwC,YACA1K,YACA+6C,YACA9H,YACA+H,YACAC,YACAC,YACAC,YAAM,c,+FC5Lb,MASe,CAEX1E,Y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","file":"common/vendor.js","sourcesContent":["const objectKeys = [\r\n 'qy',\r\n 'env',\r\n 'error',\r\n 'version',\r\n 'lanDebug',\r\n 'cloud',\r\n 'serviceMarket',\r\n 'router',\r\n 'worklet',\r\n]\r\nconst singlePageDisableKey = [\r\n 'lanDebug',\r\n 'router',\r\n 'worklet',\r\n]\r\nconst target = typeof globalThis !== 'undefined' ? globalThis : (function() {\r\n return this\r\n})()\r\n\r\nconst key = ['w', 'x'].join('')\r\nconst oldWx = target[key]\r\nconst launchOption = oldWx.getLaunchOptionsSync ? oldWx.getLaunchOptionsSync() : null\r\n\r\nfunction isWxKey(key) {\r\n if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) {\r\n return false\r\n }\r\n return objectKeys.indexOf(key) > -1 || typeof oldWx[key] === 'function'\r\n}\r\n\r\nfunction initWx() {\r\n const newWx = {}\r\n for (const key in oldWx) {\r\n if (isWxKey(key)) {\r\n // TODO wrapper function\r\n newWx[key] = oldWx[key]\r\n }\r\n }\r\n return newWx\r\n}\r\ntarget[key] = initWx()\r\nexport default target[key]\r\n","import { initVueI18n } from '@dcloudio/uni-i18n';\r\nimport Vue from 'vue';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isObject (obj) {\r\n return obj !== null && typeof obj === 'object'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () { }\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nfunction sortObject (obj) {\r\n const sortObj = {};\r\n if (isPlainObject(obj)) {\r\n Object.keys(obj).sort().forEach(key => {\r\n sortObj[key] = obj[key];\r\n });\r\n }\r\n return !Object.keys(sortObj) ? obj : sortObj\r\n}\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting|initUTS|requireUTS|registerUTS/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection', 'createPushMessage'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name) || !isFn(api)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale = i18n.setLocale;\r\nconst getLocale = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\nfunction include (str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1)\r\n}\r\n\r\nfunction startsWith (str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0)\r\n}\r\n\r\nfunction normalizeLocale (locale, messages) {\r\n if (!locale) {\r\n return\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT\r\n }\r\n return LOCALE_ZH_HANS\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang\r\n }\r\n}\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nfunction getLocale$1 () {\r\n // 优先使用 $locale\r\n if (isFn(getApp)) {\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n }\r\n return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN\r\n}\r\n\r\nfunction setLocale$1 (locale) {\r\n const app = isFn(getApp) ? getApp() : false;\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale$1;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale$1,\r\n setLocale: setLocale$1,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction useDeviceId (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.screenHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nfunction populateParameters (result) {\r\n const {\r\n brand = '', model = '', system = '',\r\n language = '', theme, version,\r\n platform, fontSizeSetting,\r\n SDKVersion, pixelRatio, deviceOrientation\r\n } = result;\r\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\r\n\r\n const extraParam = {};\r\n\r\n // osName osVersion\r\n let osName = '';\r\n let osVersion = '';\r\n {\r\n osName = system.split(' ')[0] || '';\r\n osVersion = system.split(' ')[1] || '';\r\n }\r\n let hostVersion = version;\r\n\r\n // deviceType\r\n const deviceType = getGetDeviceType(result, model);\r\n\r\n // deviceModel\r\n const deviceBrand = getDeviceBrand(brand);\r\n\r\n // hostName\r\n const _hostName = getHostName(result);\r\n\r\n // deviceOrientation\r\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\r\n\r\n // devicePixelRatio\r\n let _devicePixelRatio = pixelRatio;\r\n\r\n // SDKVersion\r\n let _SDKVersion = SDKVersion;\r\n\r\n // hostLanguage\r\n const hostLanguage = language.replace(/_/g, '-');\r\n\r\n // wx.getAccountInfoSync\r\n\r\n const parameters = {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\r\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\r\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\r\n deviceBrand,\r\n deviceModel: model,\r\n deviceType,\r\n devicePixelRatio: _devicePixelRatio,\r\n deviceOrientation: _deviceOrientation,\r\n osName: osName.toLocaleLowerCase(),\r\n osVersion,\r\n hostTheme: theme,\r\n hostVersion,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: _SDKVersion,\r\n hostFontSizeSetting: fontSizeSetting,\r\n windowTop: 0,\r\n windowBottom: 0,\r\n // TODO\r\n osLanguage: undefined,\r\n osTheme: undefined,\r\n ua: undefined,\r\n hostPackageName: undefined,\r\n browserName: undefined,\r\n browserVersion: undefined\r\n };\r\n\r\n Object.assign(result, parameters, extraParam);\r\n}\r\n\r\nfunction getGetDeviceType (result, model) {\r\n let deviceType = result.deviceType || 'phone';\r\n {\r\n const deviceTypeMaps = {\r\n ipad: 'pad',\r\n windows: 'pc',\r\n mac: 'pc'\r\n };\r\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\r\n const _model = model.toLocaleLowerCase();\r\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\r\n const _m = deviceTypeMapsKeys[index];\r\n if (_model.indexOf(_m) !== -1) {\r\n deviceType = deviceTypeMaps[_m];\r\n break\r\n }\r\n }\r\n }\r\n return deviceType\r\n}\r\n\r\nfunction getDeviceBrand (brand) {\r\n let deviceBrand = brand;\r\n if (deviceBrand) {\r\n deviceBrand = brand.toLocaleLowerCase();\r\n }\r\n return deviceBrand\r\n}\r\n\r\nfunction getAppLanguage (defaultLanguage) {\r\n return getLocale$1\r\n ? getLocale$1()\r\n : defaultLanguage\r\n}\r\n\r\nfunction getHostName (result) {\r\n const _platform = 'WeChat' ;\r\n let _hostName = result.hostName || _platform; // mp-jd\r\n {\r\n if (result.environment) {\r\n _hostName = result.environment;\r\n } else if (result.host && result.host.env) {\r\n _hostName = result.host.env;\r\n }\r\n }\r\n\r\n return _hostName\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n useDeviceId(result);\r\n addSafeAreaInsets(result);\r\n populateParameters(result);\r\n }\r\n};\r\n\r\nvar showActionSheet = {\r\n args (fromArgs) {\r\n if (typeof fromArgs === 'object') {\r\n fromArgs.alertText = fromArgs.title;\r\n }\r\n }\r\n};\r\n\r\nvar getAppBaseInfo = {\r\n returnValue: function (result) {\r\n const { version, language, SDKVersion, theme } = result;\r\n\r\n const _hostName = getHostName(result);\r\n\r\n const hostLanguage = language.replace('_', '-');\r\n\r\n result = sortObject(Object.assign(result, {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n hostVersion: version,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: SDKVersion,\r\n hostTheme: theme\r\n }));\r\n }\r\n};\r\n\r\nvar getDeviceInfo = {\r\n returnValue: function (result) {\r\n const { brand, model } = result;\r\n const deviceType = getGetDeviceType(result, model);\r\n const deviceBrand = getDeviceBrand(brand);\r\n useDeviceId(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n deviceType,\r\n deviceBrand,\r\n deviceModel: model\r\n }));\r\n }\r\n};\r\n\r\nvar getWindowInfo = {\r\n returnValue: function (result) {\r\n addSafeAreaInsets(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n windowTop: 0,\r\n windowBottom: 0\r\n }));\r\n }\r\n};\r\n\r\nvar getAppAuthorizeSetting = {\r\n returnValue: function (result) {\r\n const { locationReducedAccuracy } = result;\r\n\r\n result.locationAccuracy = 'unsupported';\r\n if (locationReducedAccuracy === true) {\r\n result.locationAccuracy = 'reduced';\r\n } else if (locationReducedAccuracy === false) {\r\n result.locationAccuracy = 'full';\r\n }\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst compressImage = {\r\n args (fromArgs) {\r\n // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight\r\n if (fromArgs.compressedHeight && !fromArgs.compressHeight) {\r\n fromArgs.compressHeight = fromArgs.compressedHeight;\r\n }\r\n if (fromArgs.compressedWidth && !fromArgs.compressWidth) {\r\n fromArgs.compressWidth = fromArgs.compressedWidth;\r\n }\r\n }\r\n};\r\n\r\nconst protocols = {\r\n redirectTo,\r\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n showActionSheet,\r\n getAppBaseInfo,\r\n getDeviceInfo,\r\n getWindowInfo,\r\n getAppAuthorizeSetting,\r\n compressImage\r\n};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\n/**\r\n * 框架内 try-catch\r\n */\r\n/**\r\n * 开发者 try-catch\r\n */\r\nfunction tryCatch (fn) {\r\n return function () {\r\n try {\r\n return fn.apply(fn, arguments)\r\n } catch (e) {\r\n // TODO\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\nfunction getApiCallbacks (params) {\r\n const apiCallbacks = {};\r\n for (const name in params) {\r\n const param = params[name];\r\n if (isFn(param)) {\r\n apiCallbacks[name] = tryCatch(param);\r\n delete params[name];\r\n }\r\n }\r\n return apiCallbacks\r\n}\r\n\r\nlet cid;\r\nlet cidErrMsg;\r\nlet enabled;\r\n\r\nfunction normalizePushMessage (message) {\r\n try {\r\n return JSON.parse(message)\r\n } catch (e) {}\r\n return message\r\n}\r\n\r\nfunction invokePushCallback (\r\n args\r\n) {\r\n if (args.type === 'enabled') {\r\n enabled = true;\r\n } else if (args.type === 'clientId') {\r\n cid = args.cid;\r\n cidErrMsg = args.errMsg;\r\n invokeGetPushCidCallbacks(cid, args.errMsg);\r\n } else if (args.type === 'pushMsg') {\r\n const message = {\r\n type: 'receive',\r\n data: normalizePushMessage(args.message)\r\n };\r\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\r\n const callback = onPushMessageCallbacks[i];\r\n callback(message);\r\n // 该消息已被阻止\r\n if (message.stopped) {\r\n break\r\n }\r\n }\r\n } else if (args.type === 'click') {\r\n onPushMessageCallbacks.forEach((callback) => {\r\n callback({\r\n type: 'click',\r\n data: normalizePushMessage(args.message)\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getPushCidCallbacks = [];\r\n\r\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\r\n getPushCidCallbacks.forEach((callback) => {\r\n callback(cid, errMsg);\r\n });\r\n getPushCidCallbacks.length = 0;\r\n}\r\n\r\nfunction getPushClientId (args) {\r\n if (!isPlainObject(args)) {\r\n args = {};\r\n }\r\n const {\r\n success,\r\n fail,\r\n complete\r\n } = getApiCallbacks(args);\r\n const hasSuccess = isFn(success);\r\n const hasFail = isFn(fail);\r\n const hasComplete = isFn(complete);\r\n\r\n Promise.resolve().then(() => {\r\n if (typeof enabled === 'undefined') {\r\n enabled = false;\r\n cid = '';\r\n cidErrMsg = 'uniPush is not enabled';\r\n }\r\n getPushCidCallbacks.push((cid, errMsg) => {\r\n let res;\r\n if (cid) {\r\n res = {\r\n errMsg: 'getPushClientId:ok',\r\n cid\r\n };\r\n hasSuccess && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\r\n };\r\n hasFail && fail(res);\r\n }\r\n hasComplete && complete(res);\r\n });\r\n if (typeof cid !== 'undefined') {\r\n invokeGetPushCidCallbacks(cid, cidErrMsg);\r\n }\r\n });\r\n}\r\n\r\nconst onPushMessageCallbacks = [];\r\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\r\nconst onPushMessage = (fn) => {\r\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\r\n onPushMessageCallbacks.push(fn);\r\n }\r\n};\r\n\r\nconst offPushMessage = (fn) => {\r\n if (!fn) {\r\n onPushMessageCallbacks.length = 0;\r\n } else {\r\n const index = onPushMessageCallbacks.indexOf(fn);\r\n if (index > -1) {\r\n onPushMessageCallbacks.splice(index, 1);\r\n }\r\n }\r\n};\r\n\r\nlet baseInfo = wx.getAppBaseInfo && wx.getAppBaseInfo();\r\nif (!baseInfo) {\r\n baseInfo = wx.getSystemInfoSync();\r\n}\r\nconst host = baseInfo ? baseInfo.host : null;\r\nconst shareVideoMessage =\r\n host && host.env === 'SAAASDK' ? wx.miniapp.shareVideoMessage : wx.shareVideoMessage;\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n shareVideoMessage: shareVideoMessage,\r\n getPushClientId: getPushClientId,\r\n onPushMessage: onPushMessage,\r\n offPushMessage: offPushMessage,\r\n invokePushCallback: invokePushCallback\r\n});\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector) || [];\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || toSkip(component);\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction syncRefs (refs, newRefs) {\r\n const oldKeys = new Set(...Object.keys(refs));\r\n const newKeys = Object.keys(newRefs);\r\n newKeys.forEach(key => {\r\n const oldValue = refs[key];\r\n const newValue = newRefs[key];\r\n if (Array.isArray(oldValue) && Array.isArray(newValue) && oldValue.length === newValue.length && newValue.every(value => oldValue.includes(value))) {\r\n return\r\n }\r\n refs[key] = newValue;\r\n oldKeys.delete(key);\r\n });\r\n oldKeys.forEach(key => {\r\n delete refs[key];\r\n });\r\n return refs\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n const refs = {};\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for') || [];\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || toSkip(component));\r\n });\r\n return syncRefs(refs, $refs)\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction markMPComponent (component) {\r\n // 在 Vue 中标记为小程序组件\r\n const IS_MP = '__v_isMPComponent';\r\n Object.defineProperty(component, IS_MP, {\r\n configurable: true,\r\n enumerable: false,\r\n value: true\r\n });\r\n return component\r\n}\r\n\r\nfunction toSkip (obj) {\r\n const OB = '__ob__';\r\n const SKIP = '__v_skip';\r\n if (isObject(obj) && Object.isExtensible(obj)) {\r\n // 避免被 @vue/composition-api 观测\r\n Object.defineProperty(obj, OB, {\r\n configurable: true,\r\n enumerable: false,\r\n value: {\r\n [SKIP]: true\r\n }\r\n });\r\n }\r\n return obj\r\n}\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n // 事件名统一转驼峰格式,仅处理:当前组件为 vue 组件、当前组件为 vue 组件子组件\r\n if (this.$vm || (this.dataset && this.dataset.comType)) {\r\n event = customize(event);\r\n } else {\r\n // 针对微信/QQ小程序单独补充驼峰格式事件,以兼容历史项目\r\n const newEvent = customize(event);\r\n if (newEvent !== event) {\r\n oldTriggerEvent.apply(this, [newEvent, ...args]);\r\n }\r\n }\r\n return oldTriggerEvent.apply(this, [event, ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n options[name] = function (...args) {\r\n markMPComponent(this);\r\n initTriggerEvent(this);\r\n if (oldHook) {\r\n return oldHook.apply(this, args)\r\n }\r\n };\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook]) || Array.isArray(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initUnknownHooks (mpOptions, vueOptions, excludes = []) {\r\n findHooks(vueOptions).forEach((hook) => initHook$1(mpOptions, hook, excludes));\r\n}\r\n\r\nfunction findHooks (vueOptions, hooks = []) {\r\n if (vueOptions) {\r\n Object.keys(vueOptions).forEach((name) => {\r\n if (name.indexOf('on') === 0 && isFn(vueOptions[name])) {\r\n hooks.push(name);\r\n }\r\n });\r\n }\r\n return hooks\r\n}\r\n\r\nfunction initHook$1 (mpOptions, hook, excludes) {\r\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) { }\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '', options) {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n {\r\n if ( options.virtualHost) {\r\n properties.virtualHostStyle = {\r\n type: null,\r\n value: ''\r\n };\r\n properties.virtualHostClass = {\r\n type: null,\r\n value: ''\r\n };\r\n }\r\n }\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) { }\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event, __args__) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n extraObj['$' + index] = event.detail ? event.detail.__args__ || __args__ : __args__;\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n\r\n // fixed 用户直接触发 mpInstance.triggerEvent\r\n const __args__ = isPlainObject(event.detail)\r\n ? event.detail.__args__ || [event.detail]\r\n : [event.detail];\r\n\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return __args__\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event, __args__);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\r\n const path = this.route || this.is;\r\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nfunction getEventChannel (id) {\r\n if (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n }\r\n return eventChannelStack.shift()\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n const has = center[vueId];\r\n if (!has) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return has\r\n };\r\n\r\n Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n const data = center[vueId];\r\n if (data) {\r\n const object = data[name] || {};\r\n return key ? object[key] : object\r\n } else {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n const object = center[vueId] = center[vueId] || {};\r\n object[name] = value;\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n }\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\r\n\r\n initHooks(appOptions, hooks);\r\n initUnknownHooks(appOptions, vm.$options);\r\n\r\n return appOptions\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}, needVueOptions) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file, options),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (needVueOptions) {\r\n return [componentOptions, vueOptions, VueComponent]\r\n }\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions, needVueOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n }, needVueOptions)\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions) {\r\n const [pageOptions, vueOptions] = parseComponent(vuePageOptions, true);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vueOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n {\r\n initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady']);\r\n }\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions)\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const isArray = Array.isArray;\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst defaultDelimiters = ['{', '}'];\r\nclass BaseFormatter {\r\n constructor() {\r\n this._caches = Object.create(null);\r\n }\r\n interpolate(message, values, delimiters = defaultDelimiters) {\r\n if (!values) {\r\n return [message];\r\n }\r\n let tokens = this._caches[message];\r\n if (!tokens) {\r\n tokens = parse(message, delimiters);\r\n this._caches[message] = tokens;\r\n }\r\n return compile(tokens, values);\r\n }\r\n}\r\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\r\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\r\nfunction parse(format, [startDelimiter, endDelimiter]) {\r\n const tokens = [];\r\n let position = 0;\r\n let text = '';\r\n while (position < format.length) {\r\n let char = format[position++];\r\n if (char === startDelimiter) {\r\n if (text) {\r\n tokens.push({ type: 'text', value: text });\r\n }\r\n text = '';\r\n let sub = '';\r\n char = format[position++];\r\n while (char !== undefined && char !== endDelimiter) {\r\n sub += char;\r\n char = format[position++];\r\n }\r\n const isClosed = char === endDelimiter;\r\n const type = RE_TOKEN_LIST_VALUE.test(sub)\r\n ? 'list'\r\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\r\n ? 'named'\r\n : 'unknown';\r\n tokens.push({ value: sub, type });\r\n }\r\n // else if (char === '%') {\r\n // // when found rails i18n syntax, skip text capture\r\n // if (format[position] !== '{') {\r\n // text += char\r\n // }\r\n // }\r\n else {\r\n text += char;\r\n }\r\n }\r\n text && tokens.push({ type: 'text', value: text });\r\n return tokens;\r\n}\r\nfunction compile(tokens, values) {\r\n const compiled = [];\r\n let index = 0;\r\n const mode = isArray(values)\r\n ? 'list'\r\n : isObject(values)\r\n ? 'named'\r\n : 'unknown';\r\n if (mode === 'unknown') {\r\n return compiled;\r\n }\r\n while (index < tokens.length) {\r\n const token = tokens[index];\r\n switch (token.type) {\r\n case 'text':\r\n compiled.push(token.value);\r\n break;\r\n case 'list':\r\n compiled.push(values[parseInt(token.value, 10)]);\r\n break;\r\n case 'named':\r\n if (mode === 'named') {\r\n compiled.push(values[token.value]);\r\n }\r\n else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\r\n }\r\n }\r\n break;\r\n case 'unknown':\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Detect 'unknown' type of token!`);\r\n }\r\n break;\r\n }\r\n index++;\r\n }\r\n return compiled;\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst defaultFormatter = new BaseFormatter();\r\nfunction include(str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1);\r\n}\r\nfunction startsWith(str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0);\r\n}\r\nfunction normalizeLocale(locale, messages) {\r\n if (!locale) {\r\n return;\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale;\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS;\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n return LOCALE_ZH_HANS;\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang;\r\n }\r\n}\r\nclass I18n {\r\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\r\n this.locale = LOCALE_EN;\r\n this.fallbackLocale = LOCALE_EN;\r\n this.message = {};\r\n this.messages = {};\r\n this.watchers = [];\r\n if (fallbackLocale) {\r\n this.fallbackLocale = fallbackLocale;\r\n }\r\n this.formater = formater || defaultFormatter;\r\n this.messages = messages || {};\r\n this.setLocale(locale || LOCALE_EN);\r\n if (watcher) {\r\n this.watchLocale(watcher);\r\n }\r\n }\r\n setLocale(locale) {\r\n const oldLocale = this.locale;\r\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\r\n if (!this.messages[this.locale]) {\r\n // 可能初始化时不存在\r\n this.messages[this.locale] = {};\r\n }\r\n this.message = this.messages[this.locale];\r\n // 仅发生变化时,通知\r\n if (oldLocale !== this.locale) {\r\n this.watchers.forEach((watcher) => {\r\n watcher(this.locale, oldLocale);\r\n });\r\n }\r\n }\r\n getLocale() {\r\n return this.locale;\r\n }\r\n watchLocale(fn) {\r\n const index = this.watchers.push(fn) - 1;\r\n return () => {\r\n this.watchers.splice(index, 1);\r\n };\r\n }\r\n add(locale, message, override = true) {\r\n const curMessages = this.messages[locale];\r\n if (curMessages) {\r\n if (override) {\r\n Object.assign(curMessages, message);\r\n }\r\n else {\r\n Object.keys(message).forEach((key) => {\r\n if (!hasOwn(curMessages, key)) {\r\n curMessages[key] = message[key];\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.messages[locale] = message;\r\n }\r\n }\r\n f(message, values, delimiters) {\r\n return this.formater.interpolate(message, values, delimiters).join('');\r\n }\r\n t(key, locale, values) {\r\n let message = this.message;\r\n if (typeof locale === 'string') {\r\n locale = normalizeLocale(locale, this.messages);\r\n locale && (message = this.messages[locale]);\r\n }\r\n else {\r\n values = locale;\r\n }\r\n if (!hasOwn(message, key)) {\r\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\r\n return key;\r\n }\r\n return this.formater.interpolate(message[key], values).join('');\r\n }\r\n}\r\n\r\nfunction watchAppLocale(appVm, i18n) {\r\n // 需要保证 watch 的触发在组件渲染之前\r\n if (appVm.$watchLocale) {\r\n // vue2\r\n appVm.$watchLocale((newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n else {\r\n appVm.$watch(() => appVm.$locale, (newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n}\r\nfunction getDefaultLocale() {\r\n if (typeof uni !== 'undefined' && uni.getLocale) {\r\n return uni.getLocale();\r\n }\r\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\r\n if (typeof global !== 'undefined' && global.getLocale) {\r\n return global.getLocale();\r\n }\r\n return LOCALE_EN;\r\n}\r\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\r\n // 兼容旧版本入参\r\n if (typeof locale !== 'string') {\r\n [locale, messages] = [\r\n messages,\r\n locale,\r\n ];\r\n }\r\n if (typeof locale !== 'string') {\r\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\r\n locale = getDefaultLocale();\r\n }\r\n if (typeof fallbackLocale !== 'string') {\r\n fallbackLocale =\r\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\r\n LOCALE_EN;\r\n }\r\n const i18n = new I18n({\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n watcher,\r\n });\r\n let t = (key, values) => {\r\n if (typeof getApp !== 'function') {\r\n // app view\r\n /* eslint-disable no-func-assign */\r\n t = function (key, values) {\r\n return i18n.t(key, values);\r\n };\r\n }\r\n else {\r\n let isWatchedAppLocale = false;\r\n t = function (key, values) {\r\n const appVm = getApp().$vm;\r\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\r\n // options: {\r\n // \ttype: Array,\r\n // \tdefault () {\r\n // \t\treturn [{\r\n // \t\t\ticon: 'shop',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\r\n // \t\t}, {\r\n // \t\t\ticon: 'cart',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\r\n // \t\t}]\r\n // \t}\r\n // },\r\n if (appVm) {\r\n // 触发响应式\r\n appVm.$locale;\r\n if (!isWatchedAppLocale) {\r\n isWatchedAppLocale = true;\r\n watchAppLocale(appVm, i18n);\r\n }\r\n }\r\n return i18n.t(key, values);\r\n };\r\n }\r\n return t(key, values);\r\n };\r\n return {\r\n i18n,\r\n f(message, values, delimiters) {\r\n return i18n.f(message, values, delimiters);\r\n },\r\n t(key, values) {\r\n return t(key, values);\r\n },\r\n add(locale, message, override = true) {\r\n return i18n.add(locale, message, override);\r\n },\r\n watch(fn) {\r\n return i18n.watchLocale(fn);\r\n },\r\n getLocale() {\r\n return i18n.getLocale();\r\n },\r\n setLocale(newLocale) {\r\n return i18n.setLocale(newLocale);\r\n },\r\n };\r\n}\r\n\r\nconst isString = (val) => typeof val === 'string';\r\nlet formater;\r\nfunction hasI18nJson(jsonObj, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n return walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n return hasI18nJson(value, delimiters);\r\n }\r\n });\r\n}\r\nfunction parseI18nJson(jsonObj, values, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, values, delimiters);\r\n }\r\n }\r\n else {\r\n parseI18nJson(value, values, delimiters);\r\n }\r\n });\r\n return jsonObj;\r\n}\r\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\r\n if (!isI18nStr(jsonStr, delimiters)) {\r\n return jsonStr;\r\n }\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n const localeValues = [];\r\n Object.keys(locales).forEach((name) => {\r\n if (name !== locale) {\r\n localeValues.push({\r\n locale: name,\r\n values: locales[name],\r\n });\r\n }\r\n });\r\n localeValues.unshift({ locale, values: locales[locale] });\r\n try {\r\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\r\n }\r\n catch (e) { }\r\n return jsonStr;\r\n}\r\nfunction isI18nStr(value, delimiters) {\r\n return value.indexOf(delimiters[0]) > -1;\r\n}\r\nfunction compileStr(value, values, delimiters) {\r\n return formater.interpolate(value, values, delimiters).join('');\r\n}\r\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n // 存在国际化\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\r\n if (localeValues.length > 1) {\r\n // 格式化国际化语言\r\n const valueLocales = (jsonObj[key + 'Locales'] = {});\r\n localeValues.forEach((localValue) => {\r\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n compileJsonObj(value, localeValues, delimiters);\r\n }\r\n}\r\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n compileValue(jsonObj, key, localeValues, delimiters);\r\n });\r\n return jsonObj;\r\n}\r\nfunction walkJsonObj(jsonObj, walk) {\r\n if (isArray(jsonObj)) {\r\n for (let i = 0; i < jsonObj.length; i++) {\r\n if (walk(jsonObj, i)) {\r\n return true;\r\n }\r\n }\r\n }\r\n else if (isObject(jsonObj)) {\r\n for (const key in jsonObj) {\r\n if (walk(jsonObj, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction resolveLocale(locales) {\r\n return (locale) => {\r\n if (!locale) {\r\n return locale;\r\n }\r\n locale = normalizeLocale(locale) || locale;\r\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\r\n };\r\n}\r\nfunction resolveLocaleChain(locale) {\r\n const chain = [];\r\n const tokens = locale.split('-');\r\n while (tokens.length) {\r\n chain.push(tokens.join('-'));\r\n tokens.pop();\r\n }\r\n return chain;\r\n}\r\n\r\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\r\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * Vue.js v2.6.11\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue &&\n !value.__v_isMPComponent\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n if (isUndef(propOptions)) {\n return res\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\n }\n }\n return res\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n // fixed by xxxxxx 临时 hack 掉 uni-app 中的异步 name slot page\n if(child.asyncMeta && child.asyncMeta.data && child.asyncMeta.data.slot === 'page'){\n (slots['page'] || (slots['page'] = [])).push(child);\n }else{\n (slots.default || (slots.default = [])).push(child);\n }\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i, i, i); // fixed by xxxxxx\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i, i, i); // fixed by xxxxxx\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length, i, i++)); // fixed by xxxxxx\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i, i); // fixed by xxxxxx\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n // fixed by xxxxxx app-plus scopedSlot\n nodes = scopedSlotFn(props, this, props._i) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n callHook(componentInstance, 'onServiceCreated');\n callHook(componentInstance, 'onServiceAttached');\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag, context); // fixed by xxxxxx\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n \n // fixed by xxxxxx update properties(mp runtime)\n vm._$updateProperties && vm._$updateProperties(vm);\n \n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n {\n if(vm.mpHost === 'mp-baidu' || vm.mpHost === 'mp-kuaishou' || vm.mpHost === 'mp-xhs'){//百度、快手、小红书 observer 在 setData callback 之后触发,直接忽略该 warn\n return\n }\n //fixed by xxxxxx __next_tick_pending,uni://form-field 时不告警\n if(\n key === 'value' && \n Array.isArray(vm.$options.behaviors) &&\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\n ){\n return\n }\n if(vm._getFormData){\n return\n }\n var $parent = vm.$parent;\n while($parent){\n if($parent.__next_tick_pending){\n return \n }\n $parent = $parent.$parent;\n }\n }\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.SharedObject.target) {// fixed by xxxxxx\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n !vm._$fallback && initInjections(vm); // resolve injections before data/props \n initState(vm);\n !vm._$fallback && initProvide(vm); // resolve provide after data/props\n !vm._$fallback && callHook(vm, 'created'); \n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.11';\n\n/**\n * https://raw.githubusercontent.com/Tencent/westore/master/packages/westore/utils/diff.js\n */\nvar ARRAYTYPE = '[object Array]';\nvar OBJECTTYPE = '[object Object]';\nvar NULLTYPE = '[object Null]';\nvar UNDEFINEDTYPE = '[object Undefined]';\n// const FUNCTIONTYPE = '[object Function]'\n\nfunction diff(current, pre) {\n var result = {};\n syncKeys(current, pre);\n _diff(current, pre, '', result);\n return result\n}\n\nfunction syncKeys(current, pre) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n if(Object.keys(current).length >= Object.keys(pre).length){\n for (var key in pre) {\n var currentValue = current[key];\n if (currentValue === undefined) {\n current[key] = null;\n } else {\n syncKeys(currentValue, pre[key]);\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach(function (item, index) {\n syncKeys(current[index], item);\n });\n }\n }\n}\n\nfunction nullOrUndefined(currentType, preType) {\n if(\n (currentType === NULLTYPE || currentType === UNDEFINEDTYPE) && \n (preType === NULLTYPE || preType === UNDEFINEDTYPE)\n ) {\n return false\n }\n return true\n}\n\nfunction _diff(current, pre, path, result) {\n if (current === pre) { return }\n var rootCurrentType = type(current);\n var rootPreType = type(pre);\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current);\n } else {\n var loop = function ( key ) {\n var currentValue = current[key];\n var preValue = pre[key];\n var currentType = type(currentValue);\n var preType = type(preValue);\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue !== pre[key] && nullOrUndefined(currentType, preType)) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n currentValue.forEach(function (item, index) {\n _diff(item, preValue[index], (path == '' ? '' : path + \".\") + key + '[' + index + ']', result);\n });\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + \".\") + key, currentValue);\n } else {\n for (var subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + \".\") + key + '.' + subKey, result);\n }\n }\n }\n };\n\n for (var key in current) loop( key );\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current);\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current);\n } else {\n current.forEach(function (item, index) {\n _diff(item, pre[index], path + '[' + index + ']', result);\n });\n }\n }\n } else {\n setResult(result, path, current);\n }\n}\n\nfunction setResult(result, k, v) {\n // if (type(v) != FUNCTIONTYPE) {\n result[k] = v;\n // }\n}\n\nfunction type(obj) {\n return Object.prototype.toString.call(obj)\n}\n\n/* */\n\nfunction flushCallbacks$1(vm) {\n if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {\n if (process.env.VUE_APP_DEBUG) {\n var mpInstance = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n ']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');\n }\n var copies = vm.__next_tick_callbacks.slice(0);\n vm.__next_tick_callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n}\n\nfunction hasRenderWatcher(vm) {\n return queue.find(function (watcher) { return vm._watcher === watcher; })\n}\n\nfunction nextTick$1(vm, cb) {\n //1.nextTick 之前 已 setData 且 setData 还未回调完成\n //2.nextTick 之前存在 render watcher\n if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {\n if(process.env.VUE_APP_DEBUG){\n var mpInstance = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +\n ']:nextVueTick');\n }\n return nextTick(cb, vm)\n }else{\n if(process.env.VUE_APP_DEBUG){\n var mpInstance$1 = vm.$scope;\n console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +\n ']:nextMPTick');\n }\n }\n var _resolve;\n if (!vm.__next_tick_callbacks) {\n vm.__next_tick_callbacks = [];\n }\n vm.__next_tick_callbacks.push(function () {\n if (cb) {\n try {\n cb.call(vm);\n } catch (e) {\n handleError(e, vm, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(vm);\n }\n });\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nfunction clearInstance(key, value) {\n // 简易去除 Vue 和小程序组件实例\n if (value) {\n if (value._isVue || value.__v_isMPComponent) {\n return {}\n }\n }\n return value\n}\n\nfunction cloneWithData(vm) {\n // 确保当前 vm 所有数据被同步\n var ret = Object.create(null);\n var dataKeys = [].concat(\n Object.keys(vm._data || {}),\n Object.keys(vm._computedWatchers || {}));\n\n dataKeys.reduce(function(ret, key) {\n ret[key] = vm[key];\n return ret\n }, ret);\n\n // vue-composition-api\n var compositionApiState = vm.__composition_api_state__ || vm.__secret_vfa_state__;\n var rawBindings = compositionApiState && compositionApiState.rawBindings;\n if (rawBindings) {\n Object.keys(rawBindings).forEach(function (key) {\n ret[key] = vm[key];\n });\n }\n\n //TODO 需要把无用数据处理掉,比如 list=>l0 则 list 需要移除,否则多传输一份数据\n Object.assign(ret, vm.$mp.data || {});\n if (\n Array.isArray(vm.$options.behaviors) &&\n vm.$options.behaviors.indexOf('uni://form-field') !== -1\n ) { //form-field\n ret['name'] = vm.name;\n ret['value'] = vm.value;\n }\n\n return JSON.parse(JSON.stringify(ret, clearInstance))\n}\n\nvar patch = function(oldVnode, vnode) {\n var this$1 = this;\n\n if (vnode === null) { //destroy\n return\n }\n if (this.mpType === 'page' || this.mpType === 'component') {\n var mpInstance = this.$scope;\n var data = Object.create(null);\n try {\n data = cloneWithData(this);\n } catch (err) {\n console.error(err);\n }\n data.__webviewId__ = mpInstance.data.__webviewId__;\n var mpData = Object.create(null);\n Object.keys(data).forEach(function (key) { //仅同步 data 中有的数据\n mpData[key] = mpInstance.data[key];\n });\n var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);\n if (Object.keys(diffData).length) {\n if (process.env.VUE_APP_DEBUG) {\n console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +\n ']差量更新',\n JSON.stringify(diffData));\n }\n this.__next_tick_pending = true;\n mpInstance.setData(diffData, function () {\n this$1.__next_tick_pending = false;\n flushCallbacks$1(this$1);\n });\n } else {\n flushCallbacks$1(this);\n }\n }\n};\n\n/* */\n\nfunction createEmptyRender() {\n\n}\n\nfunction mountComponent$1(\n vm,\n el,\n hydrating\n) {\n if (!vm.mpType) {//main.js 中的 new Vue\n return vm\n }\n if (vm.mpType === 'app') {\n vm.$options.render = createEmptyRender;\n }\n if (!vm.$options.render) {\n vm.$options.render = createEmptyRender;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n \n !vm._$fallback && callHook(vm, 'beforeMount');\n\n var updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before() {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n return vm\n}\n\n/* */\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/* */\n\nvar MP_METHODS = ['createSelectorQuery', 'createIntersectionObserver', 'selectAllComponents', 'selectComponent'];\n\nfunction getTarget(obj, path) {\n var parts = path.split('.');\n var key = parts[0];\n if (key.indexOf('__$n') === 0) { //number index\n key = parseInt(key.replace('__$n', ''));\n }\n if (parts.length === 1) {\n return obj[key]\n }\n return getTarget(obj[key], parts.slice(1).join('.'))\n}\n\nfunction internalMixin(Vue) {\n\n Vue.config.errorHandler = function(err, vm, info) {\n Vue.util.warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n console.error(err);\n /* eslint-disable no-undef */\n var app = typeof getApp === 'function' && getApp();\n if (app && app.onError) {\n app.onError(err);\n }\n };\n\n var oldEmit = Vue.prototype.$emit;\n\n Vue.prototype.$emit = function(event) {\n if (this.$scope && event) {\n var triggerEvent = this.$scope['_triggerEvent'] || this.$scope['triggerEvent'];\n if (triggerEvent) {\n try {\n triggerEvent.call(this.$scope, event, {\n __args__: toArray(arguments, 1)\n });\n } catch (error) {\n\n }\n }\n }\n return oldEmit.apply(this, arguments)\n };\n\n Vue.prototype.$nextTick = function(fn) {\n return nextTick$1(this, fn)\n };\n\n MP_METHODS.forEach(function (method) {\n Vue.prototype[method] = function(args) {\n if (this.$scope && this.$scope[method]) {\n return this.$scope[method](args)\n }\n // mp-alipay\n if (typeof my === 'undefined') {\n return\n }\n if (method === 'createSelectorQuery') {\n /* eslint-disable no-undef */\n return my.createSelectorQuery(args)\n } else if (method === 'createIntersectionObserver') {\n /* eslint-disable no-undef */\n return my.createIntersectionObserver(args)\n }\n // TODO mp-alipay 暂不支持 selectAllComponents,selectComponent\n };\n });\n\n Vue.prototype.__init_provide = initProvide;\n\n Vue.prototype.__init_injections = initInjections;\n\n Vue.prototype.__call_hook = function(hook, args) {\n var vm = this;\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n var ret;\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n ret = invokeWithErrorHandling(handlers[i], vm, args ? [args] : null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook, args);\n }\n popTarget();\n return ret\n };\n\n Vue.prototype.__set_model = function(target, key, value, modifiers) {\n if (Array.isArray(modifiers)) {\n if (modifiers.indexOf('trim') !== -1) {\n value = value.trim();\n }\n if (modifiers.indexOf('number') !== -1) {\n value = this._n(value);\n }\n }\n if (!target) {\n target = this;\n }\n // 解决动态属性添加\n Vue.set(target, key, value);\n };\n\n Vue.prototype.__set_sync = function(target, key, value) {\n if (!target) {\n target = this;\n }\n // 解决动态属性添加\n Vue.set(target, key, value);\n };\n\n Vue.prototype.__get_orig = function(item) {\n if (isPlainObject(item)) {\n return item['$orig'] || item\n }\n return item\n };\n\n Vue.prototype.__get_value = function(dataPath, target) {\n return getTarget(target || this, dataPath)\n };\n\n\n Vue.prototype.__get_class = function(dynamicClass, staticClass) {\n return renderClass(staticClass, dynamicClass)\n };\n\n Vue.prototype.__get_style = function(dynamicStyle, staticStyle) {\n if (!dynamicStyle && !staticStyle) {\n return ''\n }\n var dynamicStyleObj = normalizeStyleBinding(dynamicStyle);\n var styleObj = staticStyle ? extend(staticStyle, dynamicStyleObj) : dynamicStyleObj;\n return Object.keys(styleObj).map(function (name) { return ((hyphenate(name)) + \":\" + (styleObj[name])); }).join(';')\n };\n\n Vue.prototype.__map = function(val, iteratee) {\n //TODO 暂不考虑 string\n var ret, i, l, keys, key;\n if (Array.isArray(val)) {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = iteratee(val[i], i);\n }\n return ret\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = Object.create(null);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[key] = iteratee(val[key], key, i);\n }\n return ret\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0, l = val; i < l; i++) {\n // 第一个参数暂时仍和小程序一致\n ret[i] = iteratee(i, i);\n }\n return ret\n }\n return []\n };\n\n}\n\n/* */\n\nvar LIFECYCLE_HOOKS$1 = [\n //App\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onUniNViewMessage',\n 'onPageNotFound',\n 'onThemeChange',\n 'onError',\n 'onUnhandledRejection',\n //Page\n 'onInit',\n 'onLoad',\n // 'onShow',\n 'onReady',\n // 'onHide',\n 'onUnload',\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onTabItemTap',\n 'onAddToFavorites',\n 'onShareTimeline',\n 'onShareAppMessage',\n 'onResize',\n 'onPageScroll',\n 'onNavigationBarButtonTap',\n 'onBackPress',\n 'onNavigationBarSearchInputChanged',\n 'onNavigationBarSearchInputConfirmed',\n 'onNavigationBarSearchInputClicked',\n //Component\n // 'onReady', // 兼容旧版本,应该移除该事件\n 'onPageShow',\n 'onPageHide',\n 'onPageResize',\n 'onUploadDouyinVideo'\n];\nfunction lifecycleMixin$1(Vue) {\n\n //fixed vue-class-component\n var oldExtend = Vue.extend;\n Vue.extend = function(extendOptions) {\n extendOptions = extendOptions || {};\n\n var methods = extendOptions.methods;\n if (methods) {\n Object.keys(methods).forEach(function (methodName) {\n if (LIFECYCLE_HOOKS$1.indexOf(methodName)!==-1) {\n extendOptions[methodName] = methods[methodName];\n delete methods[methodName];\n }\n });\n }\n\n return oldExtend.call(this, extendOptions)\n };\n\n var strategies = Vue.config.optionMergeStrategies;\n var mergeHook = strategies.created;\n LIFECYCLE_HOOKS$1.forEach(function (hook) {\n strategies[hook] = mergeHook;\n });\n\n Vue.prototype.__lifecycle_hooks__ = LIFECYCLE_HOOKS$1;\n}\n\n/* */\n\n// install platform patch function\nVue.prototype.__patch__ = patch;\n\n// public mount method\nVue.prototype.$mount = function(\n el ,\n hydrating \n) {\n return mountComponent$1(this, el, hydrating)\n};\n\nlifecycleMixin$1(Vue);\ninternalMixin(Vue);\n\n/* */\n\nexport default Vue;\n","import { getToken } from '@/utils/auth'\r\n\r\n// 白名单\r\nconst whiteList = [\r\n '/', // 注意入口页必须直接写 '/'\r\n { pattern: /^\\/pages\\/list.*/ }, // 支持正则表达式\r\n '/pages/home/home',\r\n '/pages/logo/index',\r\n '/pages/login/login',\r\n { pattern: /^\\/pages\\/login\\/*/ }\r\n]\r\n\r\nexport default async function() {\r\n const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']\r\n // 用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器\r\n list.forEach(item => {\r\n uni.addInterceptor(item, {\r\n invoke(e) {\r\n // 获取要跳转的页面路径(url去掉\"?\"和\"?\"后的参数)\r\n const url = e.url.split('?')[0]\r\n // console.log('url', url)\r\n\r\n // 判断当前窗口是白名单,如果是则不重定向路由\r\n let pass\r\n if (whiteList) {\r\n pass = whiteList.some((item) => {\r\n if (typeof (item) === 'object' && item.pattern) {\r\n return item.pattern.test(url)\r\n }\r\n return url === item\r\n })\r\n }\r\n\r\n // 不是白名单并且没有token\r\n if (!pass && !getToken()) {\r\n uni.showToast({\r\n \ttitle: '请先登录',\r\n \ticon: 'none'\r\n })\r\n\t\t setTimeout(()=>{\r\n\t\t\t uni.navigateTo({\r\n\t\t\t \turl: \"/pages/logo/index\"\r\n\t\t\t })\r\n\t\t },1000)\r\n return false\r\n }\r\n return e\r\n },\r\n fail(err) { // 失败回调拦截\r\n console.log(err)\r\n }\r\n })\r\n })\r\n}","// TODO(Babel 8): Remove this file.\n\nvar runtime = require('@babel/runtime/helpers/regeneratorRuntime')()\nmodule.exports = runtime\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const TokenKey = 'Admin-Token'\n\nexport function getToken() {\n return uni.getStorageSync(TokenKey)\n}\n\nexport function setToken(token) {\n return uni.setStorageSync(TokenKey, token)\n}\n\nexport function removeToken() {\n return uni.removeStorageSync(TokenKey)\n}","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode, /* vue-cli only */\n components, // fixed by xxxxxx auto components\n renderjs // fixed by xxxxxx renderjs\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // fixed by xxxxxx auto components\n if (components) {\n if (!options.components) {\n options.components = {}\n }\n var hasOwn = Object.prototype.hasOwnProperty\n for (var name in components) {\n if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {\n options.components[name] = components[name]\n }\n }\n }\n // fixed by xxxxxx renderjs\n if (renderjs) {\n if(typeof renderjs.beforeCreate === 'function'){\n\t\t\trenderjs.beforeCreate = [renderjs.beforeCreate]\n\t\t}\n (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {\n this[renderjs.__module] = this\n });\n (options.mixins || (options.mixins = [])).push(renderjs)\n }\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","// 看到此报错,是因为没有配置vue.config.js的【transpileDependencies】,详见:https://www.uviewui.com/components/npmSetting.html#_5-cli模式额外配置\nconst pleaseSetTranspileDependencies = {}, babelTest = pleaseSetTranspileDependencies?.test\n\n\n\n// 引入全局mixin\nimport mixin from './libs/mixin/mixin.js'\n// 小程序特有的mixin\nimport mpMixin from './libs/mixin/mpMixin.js'\n// 全局挂载引入http相关请求拦截插件\nimport Request from './libs/luch-request'\n\n// 路由封装\nimport route from './libs/util/route.js'\n// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制\nimport colorGradient from './libs/function/colorGradient.js'\n\n// 规则检验\nimport test from './libs/function/test.js'\n// 防抖方法\nimport debounce from './libs/function/debounce.js'\n// 节流方法\nimport throttle from './libs/function/throttle.js'\n// 公共文件写入的方法\nimport index from './libs/function/index.js'\n\n// 配置信息\nimport config from './libs/config/config.js'\n// props配置信息\nimport props from './libs/config/props.js'\n// 各个需要fixed的地方的z-index配置文件\nimport zIndex from './libs/config/zIndex.js'\n// 关于颜色的配置,特殊场景使用\nimport color from './libs/config/color.js'\n// 平台\nimport platform from './libs/function/platform'\n\nconst $u = {\n route,\n date: index.timeFormat, // 另名date\n colorGradient: colorGradient.colorGradient,\n hexToRgb: colorGradient.hexToRgb,\n rgbToHex: colorGradient.rgbToHex,\n colorToRgba: colorGradient.colorToRgba,\n test,\n type: ['primary', 'success', 'error', 'warning', 'info'],\n http: new Request(),\n config, // uView配置信息相关,比如版本号\n zIndex,\n debounce,\n throttle,\n mixin,\n mpMixin,\n props,\n ...index,\n color,\n platform\n}\n\n// $u挂载到uni对象上\nuni.$u = $u\n\nconst install = (Vue) => {\n // 时间格式化,同时两个名称,date和timeFormat\n Vue.filter('timeFormat', (timestamp, format) => uni.$u.timeFormat(timestamp, format))\n Vue.filter('date', (timestamp, format) => uni.$u.timeFormat(timestamp, format))\n // 将多久以前的方法,注入到全局过滤器\n Vue.filter('timeFrom', (timestamp, format) => uni.$u.timeFrom(timestamp, format))\n // 同时挂载到uni和Vue.prototype中\n\n // 只有vue,挂载到Vue.prototype才有意义,因为nvue中全局Vue.prototype和Vue.mixin是无效的\n Vue.prototype.$u = $u\n Vue.mixin(mixin)\n\n}\n\nexport default {\n install\n}\n","module.exports = {\n // 定义每个组件都可能需要用到的外部样式以及类名\n props: {\n // 每个组件都有的父组件传递的样式,可以为字符串或者对象形式\n customStyle: {\n type: [Object, String],\n default: () => ({})\n },\n customClass: {\n type: String,\n default: ''\n },\n // 跳转的页面路径\n url: {\n type: String,\n default: ''\n },\n // 页面跳转的类型\n linkType: {\n type: String,\n default: 'navigateTo'\n }\n },\n data() {\n return {}\n },\n onLoad() {\n // getRect挂载到$u上,因为这方法需要使用in(this),所以无法把它独立成一个单独的文件导出\n this.$u.getRect = this.$uGetRect\n },\n created() {\n // 组件当中,只有created声明周期,为了能在组件使用,故也在created中将方法挂载到$u\n this.$u.getRect = this.$uGetRect\n },\n computed: {\n // 在2.x版本中,将会把$u挂载到uni对象下,导致在模板中无法使用uni.$u.xxx形式\n // 所以这里通过computed计算属性将其附加到this.$u上,就可以在模板或者js中使用uni.$u.xxx\n // 只在nvue环境通过此方式引入完整的$u,其他平台会出现性能问题,非nvue则按需引入(主要原因是props过大)\n $u() {\n\n // 在非nvue端,移除props,http,mixin等对象,避免在小程序setData时数据过大影响性能\n return uni.$u.deepMerge(uni.$u, {\n props: undefined,\n http: undefined,\n mixin: undefined\n })\n\n\n\n\n },\n /**\n * 生成bem规则类名\n * 由于微信小程序,H5,nvue之间绑定class的差异,无法通过:class=\"[bem()]\"的形式进行同用\n * 故采用如下折中做法,最后返回的是数组(一般平台)或字符串(支付宝和字节跳动平台),类似['a', 'b', 'c']或'a b c'的形式\n * @param {String} name 组件名称\n * @param {Array} fixed 一直会存在的类名\n * @param {Array} change 会根据变量值为true或者false而出现或者隐藏的类名\n * @returns {Array|string}\n */\n bem() {\n return function (name, fixed, change) {\n // 类名前缀\n const prefix = `u-${name}--`\n const classes = {}\n if (fixed) {\n fixed.map((item) => {\n // 这里的类名,会一直存在\n classes[prefix + this[item]] = true\n })\n }\n if (change) {\n change.map((item) => {\n // 这里的类名,会根据this[item]的值为true或者false,而进行添加或者移除某一个类\n this[item] ? (classes[prefix + item] = this[item]) : (delete classes[prefix + item])\n })\n }\n return Object.keys(classes)\n // 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有\",\",而导致失效\n\n\n\n }\n }\n },\n methods: {\n // 跳转某一个页面\n openPage(urlKey = 'url') {\n const url = this[urlKey]\n if (url) {\n // 执行类似uni.navigateTo的方法\n uni[this.linkType]({\n url\n })\n }\n },\n // 查询节点信息\n // 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21)\n // 解决办法为在组件根部再套一个没有任何作用的view元素\n $uGetRect(selector, all) {\n return new Promise((resolve) => {\n uni.createSelectorQuery()\n .in(this)[all ? 'selectAll' : 'select'](selector)\n .boundingClientRect((rect) => {\n if (all && Array.isArray(rect) && rect.length) {\n resolve(rect)\n }\n if (!all && rect) {\n resolve(rect)\n }\n })\n .exec()\n })\n },\n getParentData(parentName = '') {\n // 避免在created中去定义parent变量\n if (!this.parent) this.parent = {}\n // 这里的本质原理是,通过获取父组件实例(也即类似u-radio的父组件u-radio-group的this)\n // 将父组件this中对应的参数,赋值给本组件(u-radio的this)的parentData对象中对应的属性\n // 之所以需要这么做,是因为所有端中,头条小程序不支持通过this.parent.xxx去监听父组件参数的变化\n // 此处并不会自动更新子组件的数据,而是依赖父组件u-radio-group去监听data的变化,手动调用更新子组件的方法去重新获取\n this.parent = uni.$u.$parent.call(this, parentName)\n if (this.parent.children) {\n // 如果父组件的children不存在本组件的实例,才将本实例添加到父组件的children中\n this.parent.children.indexOf(this) === -1 && this.parent.children.push(this)\n }\n if (this.parent && this.parentData) {\n // 历遍parentData中的属性,将parent中的同名属性赋值给parentData\n Object.keys(this.parentData).map((key) => {\n this.parentData[key] = this.parent[key]\n })\n }\n },\n // 阻止事件冒泡\n preventEvent(e) {\n e && typeof (e.stopPropagation) === 'function' && e.stopPropagation()\n },\n // 空操作\n noop(e) {\n this.preventEvent(e)\n }\n },\n onReachBottom() {\n uni.$emit('uOnReachBottom')\n },\n beforeDestroy() {\n // 判断当前页面是否存在parent和chldren,一般在checkbox和checkbox-group父子联动的场景会有此情况\n // 组件销毁时,移除子组件在父组件children数组中的实例,释放资源,避免数据混乱\n if (this.parent && uni.$u.test.array(this.parent.children)) {\n // 组件销毁时,移除父组件中的children数组中对应的实例\n const childrenList = this.parent.children\n childrenList.map((child, index) => {\n // 如果相等,则移除\n if (child === this) {\n childrenList.splice(index, 1)\n }\n })\n }\n }\n}\n","export default {\n\n // 将自定义节点设置成虚拟的,更加接近Vue组件的表现,能更好的使用flex属性\n options: {\n virtualHost: true\n }\n\n}\n","import Request from './core/Request'\r\n\r\nexport default Request\r\n","/**\r\n * @Class Request\r\n * @description luch-request http请求插件\r\n * @version 3.0.7\r\n * @Author lu-ch\r\n * @Date 2021-09-04\r\n * @Email webwork.s@qq.com\r\n * 文档: https://www.quanzhan.co/luch-request/\r\n * github: https://github.com/lei-mu/luch-request\r\n * DCloud: http://ext.dcloud.net.cn/plugin?id=392\r\n * HBuilderX: beat-3.0.4 alpha-3.0.4\r\n */\r\n\r\nimport dispatchRequest from './dispatchRequest'\r\nimport InterceptorManager from './InterceptorManager'\r\nimport mergeConfig from './mergeConfig'\r\nimport defaults from './defaults'\r\nimport { isPlainObject } from '../utils'\r\nimport clone from '../utils/clone'\r\n\r\nexport default class Request {\r\n /**\r\n * @param {Object} arg - 全局配置\r\n * @param {String} arg.baseURL - 全局根路径\r\n * @param {Object} arg.header - 全局header\r\n * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式\r\n * @param {String} arg.dataType = [json] - 全局默认的dataType\r\n * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持\r\n * @param {Object} arg.custom - 全局默认的自定义参数\r\n * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序\r\n * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+)\r\n * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+)\r\n * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+)\r\n * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300\r\n */\r\n constructor(arg = {}) {\r\n if (!isPlainObject(arg)) {\r\n arg = {}\r\n console.warn('设置全局参数必须接收一个Object')\r\n }\r\n this.config = clone({ ...defaults, ...arg })\r\n this.interceptors = {\r\n request: new InterceptorManager(),\r\n response: new InterceptorManager()\r\n }\r\n }\r\n\r\n /**\r\n * @Function\r\n * @param {Request~setConfigCallback} f - 设置全局默认配置\r\n */\r\n setConfig(f) {\r\n this.config = f(this.config)\r\n }\r\n\r\n middleware(config) {\r\n config = mergeConfig(this.config, config)\r\n const chain = [dispatchRequest, undefined]\r\n let promise = Promise.resolve(config)\r\n\r\n this.interceptors.request.forEach((interceptor) => {\r\n chain.unshift(interceptor.fulfilled, interceptor.rejected)\r\n })\r\n\r\n this.interceptors.response.forEach((interceptor) => {\r\n chain.push(interceptor.fulfilled, interceptor.rejected)\r\n })\r\n\r\n while (chain.length) {\r\n promise = promise.then(chain.shift(), chain.shift())\r\n }\r\n\r\n return promise\r\n }\r\n\r\n /**\r\n * @Function\r\n * @param {Object} config - 请求配置项\r\n * @prop {String} options.url - 请求路径\r\n * @prop {Object} options.data - 请求参数\r\n * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型\r\n * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse\r\n * @prop {Object} [options.header = config.header] - 请求header\r\n * @prop {Object} [options.method = config.method] - 请求方法\r\n * @returns {Promise<unknown>}\r\n */\r\n request(config = {}) {\r\n return this.middleware(config)\r\n }\r\n\r\n get(url, options = {}) {\r\n return this.middleware({\r\n url,\r\n method: 'GET',\r\n ...options\r\n })\r\n }\r\n\r\n post(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'POST',\r\n ...options\r\n })\r\n }\r\n\r\n\r\n put(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'PUT',\r\n ...options\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n delete(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'DELETE',\r\n ...options\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n connect(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'CONNECT',\r\n ...options\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n head(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'HEAD',\r\n ...options\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n options(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'OPTIONS',\r\n ...options\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n trace(url, data, options = {}) {\r\n return this.middleware({\r\n url,\r\n data,\r\n method: 'TRACE',\r\n ...options\r\n })\r\n }\r\n\r\n\r\n\r\n upload(url, config = {}) {\r\n config.url = url\r\n config.method = 'UPLOAD'\r\n return this.middleware(config)\r\n }\r\n\r\n download(url, config = {}) {\r\n config.url = url\r\n config.method = 'DOWNLOAD'\r\n return this.middleware(config)\r\n }\r\n}\r\n\r\n/**\r\n * setConfig回调\r\n * @return {Object} - 返回操作后的config\r\n * @callback Request~setConfigCallback\r\n * @param {Object} config - 全局默认config\r\n */\r\n","import adapter from '../adapters/index'\r\n\r\nexport default (config) => adapter(config)\r\n","import buildURL from '../helpers/buildURL'\r\nimport buildFullPath from '../core/buildFullPath'\r\nimport settle from '../core/settle'\r\nimport { isUndefined } from '../utils'\r\n\r\n/**\r\n * 返回可选值存在的配置\r\n * @param {Array} keys - 可选值数组\r\n * @param {Object} config2 - 配置\r\n * @return {{}} - 存在的配置项\r\n */\r\nconst mergeKeys = (keys, config2) => {\r\n const config = {}\r\n keys.forEach((prop) => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n }\r\n })\r\n return config\r\n}\r\nexport default (config) => new Promise((resolve, reject) => {\r\n const fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params)\r\n const _config = {\r\n url: fullPath,\r\n header: config.header,\r\n complete: (response) => {\r\n config.fullPath = fullPath\r\n response.config = config\r\n try {\r\n // 对可能字符串不是json 的情况容错\r\n if (typeof response.data === 'string') {\r\n response.data = JSON.parse(response.data)\r\n }\r\n // eslint-disable-next-line no-empty\r\n } catch (e) {\r\n }\r\n settle(resolve, reject, response)\r\n }\r\n }\r\n let requestTask\r\n if (config.method === 'UPLOAD') {\r\n delete _config.header['content-type']\r\n delete _config.header['Content-Type']\r\n const otherConfig = {\r\n\r\n\r\n\r\n filePath: config.filePath,\r\n name: config.name\r\n }\r\n const optionalKeys = [\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n 'formData'\r\n ]\r\n requestTask = uni.uploadFile({ ..._config, ...otherConfig, ...mergeKeys(optionalKeys, config) })\r\n } else if (config.method === 'DOWNLOAD') {\r\n\r\n\r\n\r\n\r\n\r\n requestTask = uni.downloadFile(_config)\r\n } else {\r\n const optionalKeys = [\r\n 'data',\r\n 'method',\r\n\r\n 'timeout',\r\n\r\n 'dataType',\r\n\r\n 'responseType',\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n ]\r\n requestTask = uni.request({ ..._config, ...mergeKeys(optionalKeys, config) })\r\n }\r\n if (config.getTask) {\r\n config.getTask(requestTask, config)\r\n }\r\n})\r\n","'use strict'\r\n\r\nimport * as utils from '../utils'\r\n\r\nfunction encode(val) {\r\n return encodeURIComponent(val)\r\n .replace(/%40/gi, '@')\r\n .replace(/%3A/gi, ':')\r\n .replace(/%24/g, '$')\r\n .replace(/%2C/gi, ',')\r\n .replace(/%20/g, '+')\r\n .replace(/%5B/gi, '[')\r\n .replace(/%5D/gi, ']')\r\n}\r\n\r\n/**\r\n * Build a URL by appending params to the end\r\n *\r\n * @param {string} url The base of the url (e.g., http://www.google.com)\r\n * @param {object} [params] The params to be appended\r\n * @returns {string} The formatted url\r\n */\r\nexport default function buildURL(url, params) {\r\n /* eslint no-param-reassign:0 */\r\n if (!params) {\r\n return url\r\n }\r\n\r\n let serializedParams\r\n if (utils.isURLSearchParams(params)) {\r\n serializedParams = params.toString()\r\n } else {\r\n const parts = []\r\n\r\n utils.forEach(params, (val, key) => {\r\n if (val === null || typeof val === 'undefined') {\r\n return\r\n }\r\n\r\n if (utils.isArray(val)) {\r\n key = `${key}[]`\r\n } else {\r\n val = [val]\r\n }\r\n\r\n utils.forEach(val, (v) => {\r\n if (utils.isDate(v)) {\r\n v = v.toISOString()\r\n } else if (utils.isObject(v)) {\r\n v = JSON.stringify(v)\r\n }\r\n parts.push(`${encode(key)}=${encode(v)}`)\r\n })\r\n })\r\n\r\n serializedParams = parts.join('&')\r\n }\r\n\r\n if (serializedParams) {\r\n const hashmarkIndex = url.indexOf('#')\r\n if (hashmarkIndex !== -1) {\r\n url = url.slice(0, hashmarkIndex)\r\n }\r\n\r\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams\r\n }\r\n\r\n return url\r\n}\r\n","'use strict'\r\n\r\n// utils is a library of generic helper functions non-specific to axios\r\n\r\nconst { toString } = Object.prototype\r\n\r\n/**\r\n * Determine if a value is an Array\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Array, otherwise false\r\n */\r\nexport function isArray(val) {\r\n return toString.call(val) === '[object Array]'\r\n}\r\n\r\n/**\r\n * Determine if a value is an Object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is an Object, otherwise false\r\n */\r\nexport function isObject(val) {\r\n return val !== null && typeof val === 'object'\r\n}\r\n\r\n/**\r\n * Determine if a value is a Date\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a Date, otherwise false\r\n */\r\nexport function isDate(val) {\r\n return toString.call(val) === '[object Date]'\r\n}\r\n\r\n/**\r\n * Determine if a value is a URLSearchParams object\r\n *\r\n * @param {Object} val The value to test\r\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\r\n */\r\nexport function isURLSearchParams(val) {\r\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams\r\n}\r\n\r\n/**\r\n * Iterate over an Array or an Object invoking a function for each item.\r\n *\r\n * If `obj` is an Array callback will be called passing\r\n * the value, index, and complete array for each item.\r\n *\r\n * If 'obj' is an Object callback will be called passing\r\n * the value, key, and complete object for each property.\r\n *\r\n * @param {Object|Array} obj The object to iterate\r\n * @param {Function} fn The callback to invoke for each item\r\n */\r\nexport function forEach(obj, fn) {\r\n // Don't bother if no value provided\r\n if (obj === null || typeof obj === 'undefined') {\r\n return\r\n }\r\n\r\n // Force an array if not already something iterable\r\n if (typeof obj !== 'object') {\r\n /* eslint no-param-reassign:0 */\r\n obj = [obj]\r\n }\r\n\r\n if (isArray(obj)) {\r\n // Iterate over array values\r\n for (let i = 0, l = obj.length; i < l; i++) {\r\n fn.call(null, obj[i], i, obj)\r\n }\r\n } else {\r\n // Iterate over object keys\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n fn.call(null, obj[key], key, obj)\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 是否为boolean 值\r\n * @param val\r\n * @returns {boolean}\r\n */\r\nexport function isBoolean(val) {\r\n return typeof val === 'boolean'\r\n}\r\n\r\n/**\r\n * 是否为真正的对象{} new Object\r\n * @param {any} obj - 检测的对象\r\n * @returns {boolean}\r\n */\r\nexport function isPlainObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]'\r\n}\r\n\r\n/**\r\n * Function equal to merge with the difference being that no reference\r\n * to original objects is kept.\r\n *\r\n * @see merge\r\n * @param {Object} obj1 Object to merge\r\n * @returns {Object} Result of all merge properties\r\n */\r\nexport function deepMerge(/* obj1, obj2, obj3, ... */) {\r\n const result = {}\r\n function assignValue(val, key) {\r\n if (typeof result[key] === 'object' && typeof val === 'object') {\r\n result[key] = deepMerge(result[key], val)\r\n } else if (typeof val === 'object') {\r\n result[key] = deepMerge({}, val)\r\n } else {\r\n result[key] = val\r\n }\r\n }\r\n for (let i = 0, l = arguments.length; i < l; i++) {\r\n forEach(arguments[i], assignValue)\r\n }\r\n return result\r\n}\r\n\r\nexport function isUndefined(val) {\r\n return typeof val === 'undefined'\r\n}\r\n","'use strict'\r\n\r\nimport isAbsoluteURL from '../helpers/isAbsoluteURL'\r\nimport combineURLs from '../helpers/combineURLs'\r\n\r\n/**\r\n * Creates a new URL by combining the baseURL with the requestedURL,\r\n * only when the requestedURL is not already an absolute URL.\r\n * If the requestURL is absolute, this function returns the requestedURL untouched.\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} requestedURL Absolute or relative URL to combine\r\n * @returns {string} The combined full path\r\n */\r\nexport default function buildFullPath(baseURL, requestedURL) {\r\n if (baseURL && !isAbsoluteURL(requestedURL)) {\r\n return combineURLs(baseURL, requestedURL)\r\n }\r\n return requestedURL\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Determines whether the specified URL is absolute\r\n *\r\n * @param {string} url The URL to test\r\n * @returns {boolean} True if the specified URL is absolute, otherwise false\r\n */\r\nexport default function isAbsoluteURL(url) {\r\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\r\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\r\n // by any combination of letters, digits, plus, period, or hyphen.\r\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url)\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Creates a new URL by combining the specified URLs\r\n *\r\n * @param {string} baseURL The base URL\r\n * @param {string} relativeURL The relative URL\r\n * @returns {string} The combined URL\r\n */\r\nexport default function combineURLs(baseURL, relativeURL) {\r\n return relativeURL\r\n ? `${baseURL.replace(/\\/+$/, '')}/${relativeURL.replace(/^\\/+/, '')}`\r\n : baseURL\r\n}\r\n","/**\r\n * Resolve or reject a Promise based on response status.\r\n *\r\n * @param {Function} resolve A function that resolves the promise.\r\n * @param {Function} reject A function that rejects the promise.\r\n * @param {object} response The response.\r\n */\r\nexport default function settle(resolve, reject, response) {\r\n const { validateStatus } = response.config\r\n const status = response.statusCode\r\n if (status && (!validateStatus || validateStatus(status))) {\r\n resolve(response)\r\n } else {\r\n reject(response)\r\n }\r\n}\r\n","'use strict'\r\n\r\nfunction InterceptorManager() {\r\n this.handlers = []\r\n}\r\n\r\n/**\r\n * Add a new interceptor to the stack\r\n *\r\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\r\n * @param {Function} rejected The function to handle `reject` for a `Promise`\r\n *\r\n * @return {Number} An ID used to remove interceptor later\r\n */\r\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\r\n this.handlers.push({\r\n fulfilled,\r\n rejected\r\n })\r\n return this.handlers.length - 1\r\n}\r\n\r\n/**\r\n * Remove an interceptor from the stack\r\n *\r\n * @param {Number} id The ID that was returned by `use`\r\n */\r\nInterceptorManager.prototype.eject = function eject(id) {\r\n if (this.handlers[id]) {\r\n this.handlers[id] = null\r\n }\r\n}\r\n\r\n/**\r\n * Iterate over all the registered interceptors\r\n *\r\n * This method is particularly useful for skipping over any\r\n * interceptors that may have become `null` calling `eject`.\r\n *\r\n * @param {Function} fn The function to call for each interceptor\r\n */\r\nInterceptorManager.prototype.forEach = function forEach(fn) {\r\n this.handlers.forEach((h) => {\r\n if (h !== null) {\r\n fn(h)\r\n }\r\n })\r\n}\r\n\r\nexport default InterceptorManager\r\n","import { deepMerge, isUndefined } from '../utils'\r\n\r\n/**\r\n * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局\r\n * @param {Array} keys - 配置项\r\n * @param {Object} globalsConfig - 当前的全局配置\r\n * @param {Object} config2 - 局部配置\r\n * @return {{}}\r\n */\r\nconst mergeKeys = (keys, globalsConfig, config2) => {\r\n const config = {}\r\n keys.forEach((prop) => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n } else if (!isUndefined(globalsConfig[prop])) {\r\n config[prop] = globalsConfig[prop]\r\n }\r\n })\r\n return config\r\n}\r\n/**\r\n *\r\n * @param globalsConfig - 当前实例的全局配置\r\n * @param config2 - 当前的局部配置\r\n * @return - 合并后的配置\r\n */\r\nexport default (globalsConfig, config2 = {}) => {\r\n const method = config2.method || globalsConfig.method || 'GET'\r\n let config = {\r\n baseURL: globalsConfig.baseURL || '',\r\n method,\r\n url: config2.url || '',\r\n params: config2.params || {},\r\n custom: { ...(globalsConfig.custom || {}), ...(config2.custom || {}) },\r\n header: deepMerge(globalsConfig.header || {}, config2.header || {})\r\n }\r\n const defaultToConfig2Keys = ['getTask', 'validateStatus']\r\n config = { ...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2) }\r\n\r\n // eslint-disable-next-line no-empty\r\n if (method === 'DOWNLOAD') {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n } else if (method === 'UPLOAD') {\r\n delete config.header['content-type']\r\n delete config.header['Content-Type']\r\n const uploadKeys = [\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n 'filePath',\r\n 'name',\r\n\r\n\r\n\r\n 'formData'\r\n ]\r\n uploadKeys.forEach((prop) => {\r\n if (!isUndefined(config2[prop])) {\r\n config[prop] = config2[prop]\r\n }\r\n })\r\n\r\n\r\n\r\n\r\n\r\n } else {\r\n const defaultsKeys = [\r\n 'data',\r\n\r\n 'timeout',\r\n\r\n 'dataType',\r\n\r\n 'responseType',\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n ]\r\n config = { ...config, ...mergeKeys(defaultsKeys, globalsConfig, config2) }\r\n }\r\n\r\n return config\r\n}\r\n","/**\r\n * 默认的全局配置\r\n */\r\n\r\nexport default {\r\n baseURL: '',\r\n header: {},\r\n method: 'GET',\r\n dataType: 'json',\r\n\r\n responseType: 'text',\r\n\r\n custom: {},\r\n\r\n timeout: 60000,\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n validateStatus: function validateStatus(status) {\r\n return status >= 200 && status < 300\r\n }\r\n}\r\n","/* eslint-disable */\r\nvar clone = (function() {\r\n 'use strict';\r\n\r\n function _instanceof(obj, type) {\r\n return type != null && obj instanceof type;\r\n }\r\n\r\n var nativeMap;\r\n try {\r\n nativeMap = Map;\r\n } catch(_) {\r\n // maybe a reference error because no `Map`. Give it a dummy value that no\r\n // value will ever be an instanceof.\r\n nativeMap = function() {};\r\n }\r\n\r\n var nativeSet;\r\n try {\r\n nativeSet = Set;\r\n } catch(_) {\r\n nativeSet = function() {};\r\n }\r\n\r\n var nativePromise;\r\n try {\r\n nativePromise = Promise;\r\n } catch(_) {\r\n nativePromise = function() {};\r\n }\r\n\r\n /**\r\n * Clones (copies) an Object using deep copying.\r\n *\r\n * This function supports circular references by default, but if you are certain\r\n * there are no circular references in your object, you can save some CPU time\r\n * by calling clone(obj, false).\r\n *\r\n * Caution: if `circular` is false and `parent` contains circular references,\r\n * your program may enter an infinite loop and crash.\r\n *\r\n * @param `parent` - the object to be cloned\r\n * @param `circular` - set to true if the object to be cloned may contain\r\n * circular references. (optional - true by default)\r\n * @param `depth` - set to a number if the object is only to be cloned to\r\n * a particular depth. (optional - defaults to Infinity)\r\n * @param `prototype` - sets the prototype to be used when cloning an object.\r\n * (optional - defaults to parent prototype).\r\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\r\n * should be cloned as well. Non-enumerable properties on the prototype\r\n * chain will be ignored. (optional - false by default)\r\n */\r\n function clone(parent, circular, depth, prototype, includeNonEnumerable) {\r\n if (typeof circular === 'object') {\r\n depth = circular.depth;\r\n prototype = circular.prototype;\r\n includeNonEnumerable = circular.includeNonEnumerable;\r\n circular = circular.circular;\r\n }\r\n // maintain two arrays for circular references, where corresponding parents\r\n // and children have the same index\r\n var allParents = [];\r\n var allChildren = [];\r\n\r\n var useBuffer = typeof Buffer != 'undefined';\r\n\r\n if (typeof circular == 'undefined')\r\n circular = true;\r\n\r\n if (typeof depth == 'undefined')\r\n depth = Infinity;\r\n\r\n // recurse this function so we don't reset allParents and allChildren\r\n function _clone(parent, depth) {\r\n // cloning null always returns null\r\n if (parent === null)\r\n return null;\r\n\r\n if (depth === 0)\r\n return parent;\r\n\r\n var child;\r\n var proto;\r\n if (typeof parent != 'object') {\r\n return parent;\r\n }\r\n\r\n if (_instanceof(parent, nativeMap)) {\r\n child = new nativeMap();\r\n } else if (_instanceof(parent, nativeSet)) {\r\n child = new nativeSet();\r\n } else if (_instanceof(parent, nativePromise)) {\r\n child = new nativePromise(function (resolve, reject) {\r\n parent.then(function(value) {\r\n resolve(_clone(value, depth - 1));\r\n }, function(err) {\r\n reject(_clone(err, depth - 1));\r\n });\r\n });\r\n } else if (clone.__isArray(parent)) {\r\n child = [];\r\n } else if (clone.__isRegExp(parent)) {\r\n child = new RegExp(parent.source, __getRegExpFlags(parent));\r\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\r\n } else if (clone.__isDate(parent)) {\r\n child = new Date(parent.getTime());\r\n } else if (useBuffer && Buffer.isBuffer(parent)) {\r\n if (Buffer.from) {\r\n // Node.js >= 5.10.0\r\n child = Buffer.from(parent);\r\n } else {\r\n // Older Node.js versions\r\n child = new Buffer(parent.length);\r\n parent.copy(child);\r\n }\r\n return child;\r\n } else if (_instanceof(parent, Error)) {\r\n child = Object.create(parent);\r\n } else {\r\n if (typeof prototype == 'undefined') {\r\n proto = Object.getPrototypeOf(parent);\r\n child = Object.create(proto);\r\n }\r\n else {\r\n child = Object.create(prototype);\r\n proto = prototype;\r\n }\r\n }\r\n\r\n if (circular) {\r\n var index = allParents.indexOf(parent);\r\n\r\n if (index != -1) {\r\n return allChildren[index];\r\n }\r\n allParents.push(parent);\r\n allChildren.push(child);\r\n }\r\n\r\n if (_instanceof(parent, nativeMap)) {\r\n parent.forEach(function(value, key) {\r\n var keyChild = _clone(key, depth - 1);\r\n var valueChild = _clone(value, depth - 1);\r\n child.set(keyChild, valueChild);\r\n });\r\n }\r\n if (_instanceof(parent, nativeSet)) {\r\n parent.forEach(function(value) {\r\n var entryChild = _clone(value, depth - 1);\r\n child.add(entryChild);\r\n });\r\n }\r\n\r\n for (var i in parent) {\r\n var attrs = Object.getOwnPropertyDescriptor(parent, i);\r\n if (attrs) {\r\n child[i] = _clone(parent[i], depth - 1);\r\n }\r\n\r\n try {\r\n var objProperty = Object.getOwnPropertyDescriptor(parent, i);\r\n if (objProperty.set === 'undefined') {\r\n // no setter defined. Skip cloning this property\r\n continue;\r\n }\r\n child[i] = _clone(parent[i], depth - 1);\r\n } catch(e){\r\n if (e instanceof TypeError) {\r\n // when in strict mode, TypeError will be thrown if child[i] property only has a getter\r\n // we can't do anything about this, other than inform the user that this property cannot be set.\r\n continue\r\n } else if (e instanceof ReferenceError) {\r\n //this may happen in non strict mode\r\n continue\r\n }\r\n }\r\n\r\n }\r\n\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(parent);\r\n for (var i = 0; i < symbols.length; i++) {\r\n // Don't need to worry about cloning a symbol because it is a primitive,\r\n // like a number or string.\r\n var symbol = symbols[i];\r\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\r\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\r\n continue;\r\n }\r\n child[symbol] = _clone(parent[symbol], depth - 1);\r\n Object.defineProperty(child, symbol, descriptor);\r\n }\r\n }\r\n\r\n if (includeNonEnumerable) {\r\n var allPropertyNames = Object.getOwnPropertyNames(parent);\r\n for (var i = 0; i < allPropertyNames.length; i++) {\r\n var propertyName = allPropertyNames[i];\r\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\r\n if (descriptor && descriptor.enumerable) {\r\n continue;\r\n }\r\n child[propertyName] = _clone(parent[propertyName], depth - 1);\r\n Object.defineProperty(child, propertyName, descriptor);\r\n }\r\n }\r\n\r\n return child;\r\n }\r\n\r\n return _clone(parent, depth);\r\n }\r\n\r\n /**\r\n * Simple flat clone using prototype, accepts only objects, usefull for property\r\n * override on FLAT configuration object (no nested props).\r\n *\r\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\r\n * works.\r\n */\r\n clone.clonePrototype = function clonePrototype(parent) {\r\n if (parent === null)\r\n return null;\r\n\r\n var c = function () {};\r\n c.prototype = parent;\r\n return new c();\r\n };\r\n\r\n// private utility functions\r\n\r\n function __objToStr(o) {\r\n return Object.prototype.toString.call(o);\r\n }\r\n clone.__objToStr = __objToStr;\r\n\r\n function __isDate(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\r\n }\r\n clone.__isDate = __isDate;\r\n\r\n function __isArray(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\r\n }\r\n clone.__isArray = __isArray;\r\n\r\n function __isRegExp(o) {\r\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\r\n }\r\n clone.__isRegExp = __isRegExp;\r\n\r\n function __getRegExpFlags(re) {\r\n var flags = '';\r\n if (re.global) flags += 'g';\r\n if (re.ignoreCase) flags += 'i';\r\n if (re.multiline) flags += 'm';\r\n return flags;\r\n }\r\n clone.__getRegExpFlags = __getRegExpFlags;\r\n\r\n return clone;\r\n})();\r\n\r\nexport default clone\r\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\r\n * 路由跳转方法,该方法相对于直接使用uni.xxx的好处是使用更加简单快捷\r\n * 并且带有路由拦截功能\r\n */\r\n\r\nclass Router {\r\n\tconstructor() {\r\n\t\t// 原始属性定义\r\n\t\tthis.config = {\r\n\t\t\ttype: 'navigateTo',\r\n\t\t\turl: '',\r\n\t\t\tdelta: 1, // navigateBack页面后退时,回退的层数\r\n\t\t\tparams: {}, // 传递的参数\r\n\t\t\tanimationType: 'pop-in', // 窗口动画,只在APP有效\r\n\t\t\tanimationDuration: 300, // 窗口动画持续时间,单位毫秒,只在APP有效\r\n\t\t\tintercept: false // 是否需要拦截\r\n\t\t}\r\n\t\t// 因为route方法是需要对外赋值给另外的对象使用,同时route内部有使用this,会导致route失去上下文\r\n\t\t// 这里在构造函数中进行this绑定\r\n\t\tthis.route = this.route.bind(this)\r\n\t}\r\n\r\n\t// 判断url前面是否有\"/\",如果没有则加上,否则无法跳转\r\n\taddRootPath(url) {\r\n\t\treturn url[0] === '/' ? url : `/${url}`\r\n\t}\r\n\r\n\t// 整合路由参数\r\n\tmixinParam(url, params) {\r\n\t\turl = url && this.addRootPath(url)\r\n\r\n\t\t// 使用正则匹配,主要依据是判断是否有\"/\",\"?\",\"=\"等,如“/page/index/index?name=mary\"\r\n\t\t// 如果有url中有get参数,转换后无需带上\"?\"\r\n\t\tlet query = ''\r\n\t\tif (/.*\\/.*\\?.*=.*/.test(url)) {\r\n\t\t\t// object对象转为get类型的参数\r\n\t\t\tquery = uni.$u.queryParams(params, false)\r\n\t\t\t// 因为已有get参数,所以后面拼接的参数需要带上\"&\"隔开\r\n\t\t\treturn url += `&${query}`\r\n\t\t}\r\n\t\t// 直接拼接参数,因为此处url中没有后面的query参数,也就没有\"?/&\"之类的符号\r\n\t\tquery = uni.$u.queryParams(params)\r\n\t\treturn url += query\r\n\t}\r\n\r\n\t// 对外的方法名称\r\n\tasync route(options = {}, params = {}) {\r\n\t\t// 合并用户的配置和内部的默认配置\r\n\t\tlet mergeConfig = {}\r\n\r\n\t\tif (typeof options === 'string') {\r\n\t\t\t// 如果options为字符串,则为route(url, params)的形式\r\n\t\t\tmergeConfig.url = this.mixinParam(options, params)\r\n\t\t\tmergeConfig.type = 'navigateTo'\r\n\t\t} else {\r\n\t\t\tmergeConfig = uni.$u.deepMerge(this.config, options)\r\n\t\t\t// 否则正常使用mergeConfig中的url和params进行拼接\r\n\t\t\tmergeConfig.url = this.mixinParam(options.url, options.params)\r\n\t\t}\r\n\r\n\t\t// 如果本次跳转的路径和本页面路径一致,不执行跳转,防止用户快速点击跳转按钮,造成多次跳转同一个页面的问题\r\n\t\tif (mergeConfig.url === uni.$u.page()) return\r\n\r\n\t\tif (params.intercept) {\r\n\t\t\tthis.config.intercept = params.intercept\r\n\t\t}\r\n\t\t// params参数也带给拦截器\r\n\t\tmergeConfig.params = params\r\n\t\t// 合并内外部参数\r\n\t\tmergeConfig = uni.$u.deepMerge(this.config, mergeConfig)\r\n\t\t// 判断用户是否定义了拦截器\r\n\t\tif (typeof uni.$u.routeIntercept === 'function') {\r\n\t\t\t// 定一个promise,根据用户执行resolve(true)或者resolve(false)来决定是否进行路由跳转\r\n\t\t\tconst isNext = await new Promise((resolve, reject) => {\r\n\t\t\t\tuni.$u.routeIntercept(mergeConfig, resolve)\r\n\t\t\t})\r\n\t\t\t// 如果isNext为true,则执行路由跳转\r\n\t\t\tisNext && this.openPage(mergeConfig)\r\n\t\t} else {\r\n\t\t\tthis.openPage(mergeConfig)\r\n\t\t}\r\n\t}\r\n\r\n\t// 执行路由跳转\r\n\topenPage(config) {\r\n\t\t// 解构参数\r\n\t\tconst {\r\n\t\t\turl,\r\n\t\t\ttype,\r\n\t\t\tdelta,\r\n\t\t\tanimationType,\r\n\t\t\tanimationDuration\r\n\t\t} = config\r\n\t\tif (config.type == 'navigateTo' || config.type == 'to') {\r\n\t\t\tuni.navigateTo({\r\n\t\t\t\turl,\r\n\t\t\t\tanimationType,\r\n\t\t\t\tanimationDuration\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (config.type == 'redirectTo' || config.type == 'redirect') {\r\n\t\t\tuni.redirectTo({\r\n\t\t\t\turl\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (config.type == 'switchTab' || config.type == 'tab') {\r\n\t\t\tuni.switchTab({\r\n\t\t\t\turl\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (config.type == 'reLaunch' || config.type == 'launch') {\r\n\t\t\tuni.reLaunch({\r\n\t\t\t\turl\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (config.type == 'navigateBack' || config.type == 'back') {\r\n\t\t\tuni.navigateBack({\r\n\t\t\t\tdelta\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default (new Router()).route\r\n","/**\r\n * 求两个颜色之间的渐变值\r\n * @param {string} startColor 开始的颜色\r\n * @param {string} endColor 结束的颜色\r\n * @param {number} step 颜色等分的份额\r\n * */\r\nfunction colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) {\r\n const startRGB = hexToRgb(startColor, false) // 转换为rgb数组模式\r\n const startR = startRGB[0]\r\n const startG = startRGB[1]\r\n const startB = startRGB[2]\r\n\r\n const endRGB = hexToRgb(endColor, false)\r\n const endR = endRGB[0]\r\n const endG = endRGB[1]\r\n const endB = endRGB[2]\r\n\r\n const sR = (endR - startR) / step // 总差值\r\n const sG = (endG - startG) / step\r\n const sB = (endB - startB) / step\r\n const colorArr = []\r\n for (let i = 0; i < step; i++) {\r\n // 计算每一步的hex值\r\n let hex = rgbToHex(`rgb(${Math.round((sR * i + startR))},${Math.round((sG * i + startG))},${Math.round((sB\r\n\t\t\t* i + startB))})`)\r\n // 确保第一个颜色值为startColor的值\r\n if (i === 0) hex = rgbToHex(startColor)\r\n // 确保最后一个颜色值为endColor的值\r\n if (i === step - 1) hex = rgbToHex(endColor)\r\n colorArr.push(hex)\r\n }\r\n return colorArr\r\n}\r\n\r\n// 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)\r\nfunction hexToRgb(sColor, str = true) {\r\n const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/\r\n sColor = String(sColor).toLowerCase()\r\n if (sColor && reg.test(sColor)) {\r\n if (sColor.length === 4) {\r\n let sColorNew = '#'\r\n for (let i = 1; i < 4; i += 1) {\r\n sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))\r\n }\r\n sColor = sColorNew\r\n }\r\n // 处理六位的颜色值\r\n const sColorChange = []\r\n for (let i = 1; i < 7; i += 2) {\r\n sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))\r\n }\r\n if (!str) {\r\n return sColorChange\r\n }\r\n return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`\r\n } if (/^(rgb|RGB)/.test(sColor)) {\r\n const arr = sColor.replace(/(?:\\(|\\)|rgb|RGB)*/g, '').split(',')\r\n return arr.map((val) => Number(val))\r\n }\r\n return sColor\r\n}\r\n\r\n// 将rgb表示方式转换为hex表示方式\r\nfunction rgbToHex(rgb) {\r\n const _this = rgb\r\n const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/\r\n if (/^(rgb|RGB)/.test(_this)) {\r\n const aColor = _this.replace(/(?:\\(|\\)|rgb|RGB)*/g, '').split(',')\r\n let strHex = '#'\r\n for (let i = 0; i < aColor.length; i++) {\r\n let hex = Number(aColor[i]).toString(16)\r\n hex = String(hex).length == 1 ? `${0}${hex}` : hex // 保证每个rgb的值为2位\r\n if (hex === '0') {\r\n hex += hex\r\n }\r\n strHex += hex\r\n }\r\n if (strHex.length !== 7) {\r\n strHex = _this\r\n }\r\n return strHex\r\n } if (reg.test(_this)) {\r\n const aNum = _this.replace(/#/, '').split('')\r\n if (aNum.length === 6) {\r\n return _this\r\n } if (aNum.length === 3) {\r\n let numHex = '#'\r\n for (let i = 0; i < aNum.length; i += 1) {\r\n numHex += (aNum[i] + aNum[i])\r\n }\r\n return numHex\r\n }\r\n } else {\r\n return _this\r\n }\r\n}\r\n\r\n/**\r\n* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串\r\n* sHex为传入的十六进制的色值\r\n* alpha为rgba的透明度\r\n*/\r\nfunction colorToRgba(color, alpha) {\r\n color = rgbToHex(color)\r\n // 十六进制颜色值的正则表达式\r\n const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/\r\n /* 16进制颜色转为RGB格式 */\r\n let sColor = String(color).toLowerCase()\r\n if (sColor && reg.test(sColor)) {\r\n if (sColor.length === 4) {\r\n let sColorNew = '#'\r\n for (let i = 1; i < 4; i += 1) {\r\n sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))\r\n }\r\n sColor = sColorNew\r\n }\r\n // 处理六位的颜色值\r\n const sColorChange = []\r\n for (let i = 1; i < 7; i += 2) {\r\n sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))\r\n }\r\n // return sColorChange.join(',')\r\n return `rgba(${sColorChange.join(',')},${alpha})`\r\n }\r\n\r\n return sColor\r\n}\r\n\r\nexport default {\r\n colorGradient,\r\n hexToRgb,\r\n rgbToHex,\r\n colorToRgba\r\n}\r\n","/**\r\n * 验证电子邮箱格式\r\n */\r\nfunction email(value) {\r\n return /^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证手机格式\r\n */\r\nfunction mobile(value) {\r\n return /^1([3589]\\d|4[5-9]|6[1-2,4-7]|7[0-8])\\d{8}$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证URL格式\r\n */\r\nfunction url(value) {\r\n return /^((https|http|ftp|rtsp|mms):\\/\\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\\/?)|(\\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\\/?)$/\r\n .test(value)\r\n}\r\n\r\n/**\r\n * 验证日期格式\r\n */\r\nfunction date(value) {\r\n if (!value) return false\r\n // 判断是否数值或者字符串数值(意味着为时间戳),转为数值,否则new Date无法识别字符串时间戳\r\n if (number(value)) value = +value\r\n return !/Invalid|NaN/.test(new Date(value).toString())\r\n}\r\n\r\n/**\r\n * 验证ISO类型的日期格式\r\n */\r\nfunction dateISO(value) {\r\n return /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证十进制数字\r\n */\r\nfunction number(value) {\r\n return /^[\\+-]?(\\d+\\.?\\d*|\\.\\d+|\\d\\.\\d+e\\+\\d+)$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证字符串\r\n */\r\nfunction string(value) {\r\n return typeof value === 'string'\r\n}\r\n\r\n/**\r\n * 验证整数\r\n */\r\nfunction digits(value) {\r\n return /^\\d+$/.test(value)\r\n}\r\n\r\n/**\r\n * 验证身份证号码\r\n */\r\nfunction idCard(value) {\r\n return /^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$/.test(\r\n value\r\n )\r\n}\r\n\r\n/**\r\n * 是否车牌号\r\n */\r\nfunction carNo(value) {\r\n // 新能源车牌\r\n const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/\r\n // 旧车牌\r\n const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/\r\n if (value.length === 7) {\r\n return creg.test(value)\r\n } if (value.length === 8) {\r\n return xreg.test(value)\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * 金额,只允许2位小数\r\n */\r\nfunction amount(value) {\r\n // 金额,只允许保留两位小数\r\n return /^[1-9]\\d*(,\\d{3})*(\\.\\d{1,2})?$|^0\\.\\d{1,2}$/.test(value)\r\n}\r\n\r\n/**\r\n * 中文\r\n */\r\nfunction chinese(value) {\r\n const reg = /^[\\u4e00-\\u9fa5]+$/gi\r\n return reg.test(value)\r\n}\r\n\r\n/**\r\n * 只能输入字母\r\n */\r\nfunction letter(value) {\r\n return /^[a-zA-Z]*$/.test(value)\r\n}\r\n\r\n/**\r\n * 只能是字母或者数字\r\n */\r\nfunction enOrNum(value) {\r\n // 英文或者数字\r\n const reg = /^[0-9a-zA-Z]*$/g\r\n return reg.test(value)\r\n}\r\n\r\n/**\r\n * 验证是否包含某个值\r\n */\r\nfunction contains(value, param) {\r\n return value.indexOf(param) >= 0\r\n}\r\n\r\n/**\r\n * 验证一个值范围[min, max]\r\n */\r\nfunction range(value, param) {\r\n return value >= param[0] && value <= param[1]\r\n}\r\n\r\n/**\r\n * 验证一个长度范围[min, max]\r\n */\r\nfunction rangeLength(value, param) {\r\n return value.length >= param[0] && value.length <= param[1]\r\n}\r\n\r\n/**\r\n * 是否固定电话\r\n */\r\nfunction landline(value) {\r\n const reg = /^\\d{3,4}-\\d{7,8}(-\\d{3,4})?$/\r\n return reg.test(value)\r\n}\r\n\r\n/**\r\n * 判断是否为空\r\n */\r\nfunction empty(value) {\r\n switch (typeof value) {\r\n case 'undefined':\r\n return true\r\n case 'string':\r\n if (value.replace(/(^[ \\t\\n\\r]*)|([ \\t\\n\\r]*$)/g, '').length == 0) return true\r\n break\r\n case 'boolean':\r\n if (!value) return true\r\n break\r\n case 'number':\r\n if (value === 0 || isNaN(value)) return true\r\n break\r\n case 'object':\r\n if (value === null || value.length === 0) return true\r\n for (const i in value) {\r\n return false\r\n }\r\n return true\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * 是否json字符串\r\n */\r\nfunction jsonString(value) {\r\n if (typeof value === 'string') {\r\n try {\r\n const obj = JSON.parse(value)\r\n if (typeof obj === 'object' && obj) {\r\n return true\r\n }\r\n return false\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * 是否数组\r\n */\r\nfunction array(value) {\r\n if (typeof Array.isArray === 'function') {\r\n return Array.isArray(value)\r\n }\r\n return Object.prototype.toString.call(value) === '[object Array]'\r\n}\r\n\r\n/**\r\n * 是否对象\r\n */\r\nfunction object(value) {\r\n return Object.prototype.toString.call(value) === '[object Object]'\r\n}\r\n\r\n/**\r\n * 是否短信验证码\r\n */\r\nfunction code(value, len = 6) {\r\n return new RegExp(`^\\\\d{${len}}$`).test(value)\r\n}\r\n\r\n/**\r\n * 是否函数方法\r\n * @param {Object} value\r\n */\r\nfunction func(value) {\r\n return typeof value === 'function'\r\n}\r\n\r\n/**\r\n * 是否promise对象\r\n * @param {Object} value\r\n */\r\nfunction promise(value) {\r\n return object(value) && func(value.then) && func(value.catch)\r\n}\r\n\r\n/** 是否图片格式\r\n * @param {Object} value\r\n */\r\nfunction image(value) {\r\n const newValue = value.split('?')[0]\r\n const IMAGE_REGEXP = /\\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i\r\n return IMAGE_REGEXP.test(newValue)\r\n}\r\n\r\n/**\r\n * 是否视频格式\r\n * @param {Object} value\r\n */\r\nfunction video(value) {\r\n const VIDEO_REGEXP = /\\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i\r\n return VIDEO_REGEXP.test(value)\r\n}\r\n\r\n/**\r\n * 是否为正则对象\r\n * @param {Object}\r\n * @return {Boolean}\r\n */\r\nfunction regExp(o) {\r\n return o && Object.prototype.toString.call(o) === '[object RegExp]'\r\n}\r\n\r\nexport default {\r\n email,\r\n mobile,\r\n url,\r\n date,\r\n dateISO,\r\n number,\r\n digits,\r\n idCard,\r\n carNo,\r\n amount,\r\n chinese,\r\n letter,\r\n enOrNum,\r\n contains,\r\n range,\r\n rangeLength,\r\n empty,\r\n isEmpty: empty,\r\n jsonString,\r\n landline,\r\n object,\r\n array,\r\n code,\r\n func,\r\n promise,\r\n video,\r\n image,\r\n regExp,\r\n string\r\n}\r\n","let timeout = null\r\n\r\n/**\r\n * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数\r\n *\r\n * @param {Function} func 要执行的回调函数\r\n * @param {Number} wait 延时的时间\r\n * @param {Boolean} immediate 是否立即执行\r\n * @return null\r\n */\r\nfunction debounce(func, wait = 500, immediate = false) {\r\n // 清除定时器\r\n if (timeout !== null) clearTimeout(timeout)\r\n // 立即执行,此类情况一般用不到\r\n if (immediate) {\r\n const callNow = !timeout\r\n timeout = setTimeout(() => {\r\n timeout = null\r\n }, wait)\r\n if (callNow) typeof func === 'function' && func()\r\n } else {\r\n // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法\r\n timeout = setTimeout(() => {\r\n typeof func === 'function' && func()\r\n }, wait)\r\n }\r\n}\r\n\r\nexport default debounce\r\n","let timer; let\r\n flag\r\n/**\r\n * 节流原理:在一定时间内,只能触发一次\r\n *\r\n * @param {Function} func 要执行的回调函数\r\n * @param {Number} wait 延时的时间\r\n * @param {Boolean} immediate 是否立即执行\r\n * @return null\r\n */\r\nfunction throttle(func, wait = 500, immediate = true) {\r\n if (immediate) {\r\n if (!flag) {\r\n flag = true\r\n // 如果是立即执行,则在wait毫秒内开始时执行\r\n typeof func === 'function' && func()\r\n timer = setTimeout(() => {\r\n flag = false\r\n }, wait)\r\n }\r\n } else if (!flag) {\r\n flag = true\r\n // 如果是非立即执行,则在wait毫秒内的结束处执行\r\n timer = setTimeout(() => {\r\n flag = false\r\n typeof func === 'function' && func()\r\n }, wait)\r\n }\r\n}\r\nexport default throttle\r\n","import test from './test.js'\r\nimport { round } from './digit.js'\r\n/**\r\n * @description 如果value小于min,取min;如果value大于max,取max\r\n * @param {number} min \r\n * @param {number} max \r\n * @param {number} value\r\n */\r\nfunction range(min = 0, max = 0, value = 0) {\r\n\treturn Math.max(min, Math.min(max, Number(value)))\r\n}\r\n\r\n/**\r\n * @description 用于获取用户传递值的px值 如果用户传递了\"xxpx\"或者\"xxrpx\",取出其数值部分,如果是\"xxxrpx\"还需要用过uni.upx2px进行转换\r\n * @param {number|string} value 用户传递值的px值\r\n * @param {boolean} unit \r\n * @returns {number|string}\r\n */\r\nfunction getPx(value, unit = false) {\r\n\tif (test.number(value)) {\r\n\t\treturn unit ? `${value}px` : Number(value)\r\n\t}\r\n\t// 如果带有rpx,先取出其数值部分,再转为px值\r\n\tif (/(rpx|upx)$/.test(value)) {\r\n\t\treturn unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value)))\r\n\t}\r\n\treturn unit ? `${parseInt(value)}px` : parseInt(value)\r\n}\r\n\r\n/**\r\n * @description 进行延时,以达到可以简写代码的目的 比如: await uni.$u.sleep(20)将会阻塞20ms\r\n * @param {number} value 堵塞时间 单位ms 毫秒\r\n * @returns {Promise} 返回promise\r\n */\r\nfunction sleep(value = 30) {\r\n\treturn new Promise((resolve) => {\r\n\t\tsetTimeout(() => {\r\n\t\t\tresolve()\r\n\t\t}, value)\r\n\t})\r\n}\r\n/**\r\n * @description 运行期判断平台\r\n * @returns {string} 返回所在平台(小写) \r\n * @link 运行期判断平台 https://uniapp.dcloud.io/frame?id=判断平台\r\n */\r\nfunction os() {\r\n\treturn uni.getSystemInfoSync().platform.toLowerCase()\r\n}\r\n/**\r\n * @description 获取系统信息同步接口\r\n * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync \r\n */\r\nfunction sys() {\r\n\treturn uni.getSystemInfoSync()\r\n}\r\n\r\n/**\r\n * @description 取一个区间数\r\n * @param {Number} min 最小值\r\n * @param {Number} max 最大值\r\n */\r\nfunction random(min, max) {\r\n\tif (min >= 0 && max > 0 && max >= min) {\r\n\t\tconst gab = max - min + 1\r\n\t\treturn Math.floor(Math.random() * gab + min)\r\n\t}\r\n\treturn 0\r\n}\r\n\r\n/**\r\n * @param {Number} len uuid的长度\r\n * @param {Boolean} firstU 将返回的首字母置为\"u\"\r\n * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制\r\n */\r\nfunction guid(len = 32, firstU = true, radix = null) {\r\n\tconst chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')\r\n\tconst uuid = []\r\n\tradix = radix || chars.length\r\n\r\n\tif (len) {\r\n\t\t// 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位\r\n\t\tfor (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]\r\n\t} else {\r\n\t\tlet r\r\n\t\t// rfc4122标准要求返回的uuid中,某些位为固定的字符\r\n\t\tuuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'\r\n\t\tuuid[14] = '4'\r\n\r\n\t\tfor (let i = 0; i < 36; i++) {\r\n\t\t\tif (!uuid[i]) {\r\n\t\t\t\tr = 0 | Math.random() * 16\r\n\t\t\t\tuuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class\r\n\tif (firstU) {\r\n\t\tuuid.shift()\r\n\t\treturn `u${uuid.join('')}`\r\n\t}\r\n\treturn uuid.join('')\r\n}\r\n\r\n/**\r\n* @description 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法\r\n this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx\r\n 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name\r\n 值(默认为undefined),就是查找最顶层的$parent\r\n* @param {string|undefined} name 父组件的参数名\r\n*/\r\nfunction $parent(name = undefined) {\r\n\tlet parent = this.$parent\r\n\t// 通过while历遍,这里主要是为了H5需要多层解析的问题\r\n\twhile (parent) {\r\n\t\t// 父组件\r\n\t\tif (parent.$options && parent.$options.name !== name) {\r\n\t\t\t// 如果组件的name不相等,继续上一级寻找\r\n\t\t\tparent = parent.$parent\r\n\t\t} else {\r\n\t\t\treturn parent\r\n\t\t}\r\n\t}\r\n\treturn false\r\n}\r\n\r\n/**\r\n * @description 样式转换\r\n * 对象转字符串,或者字符串转对象\r\n * @param {object | string} customStyle 需要转换的目标\r\n * @param {String} target 转换的目的,object-转为对象,string-转为字符串\r\n * @returns {object|string}\r\n */\r\nfunction addStyle(customStyle, target = 'object') {\r\n\t// 字符串转字符串,对象转对象情形,直接返回\r\n\tif (test.empty(customStyle) || typeof(customStyle) === 'object' && target === 'object' || target === 'string' &&\r\n\t\ttypeof(customStyle) === 'string') {\r\n\t\treturn customStyle\r\n\t}\r\n\t// 字符串转对象\r\n\tif (target === 'object') {\r\n\t\t// 去除字符串样式中的两端空格(中间的空格不能去掉,比如padding: 20px 0如果去掉了就错了),空格是无用的\r\n\t\tcustomStyle = trim(customStyle)\r\n\t\t// 根据\";\"将字符串转为数组形式\r\n\t\tconst styleArray = customStyle.split(';')\r\n\t\tconst style = {}\r\n\t\t// 历遍数组,拼接成对象\r\n\t\tfor (let i = 0; i < styleArray.length; i++) {\r\n\t\t\t// 'font-size:20px;color:red;',如此最后字符串有\";\"的话,会导致styleArray最后一个元素为空字符串,这里需要过滤\r\n\t\t\tif (styleArray[i]) {\r\n\t\t\t\tconst item = styleArray[i].split(':')\r\n\t\t\t\tstyle[trim(item[0])] = trim(item[1])\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn style\r\n\t}\r\n\t// 这里为对象转字符串形式\r\n\tlet string = ''\r\n\tfor (const i in customStyle) {\r\n\t\t// 驼峰转为中划线的形式,否则css内联样式,无法识别驼峰样式属性名\r\n\t\tconst key = i.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n\t\tstring += `${key}:${customStyle[i]};`\r\n\t}\r\n\t// 去除两端空格\r\n\treturn trim(string)\r\n}\r\n\r\n/**\r\n * @description 添加单位,如果有rpx,upx,%,px等单位结尾或者值为auto,直接返回,否则加上px单位结尾\r\n * @param {string|number} value 需要添加单位的值\r\n * @param {string} unit 添加的单位名 比如px\r\n */\r\nfunction addUnit(value = 'auto', unit = uni?.$u?.config?.unit ?? 'px') {\r\n\tvalue = String(value)\r\n\t// 用uView内置验证规则中的number判断是否为数值\r\n\treturn test.number(value) ? `${value}${unit}` : value\r\n}\r\n\r\n/**\r\n * @description 深度克隆\r\n * @param {object} obj 需要深度克隆的对象\r\n * @returns {*} 克隆后的对象或者原值(不是对象)\r\n */\r\nfunction deepClone(obj) {\r\n\t// 对常见的“非”值,直接返回原来值\r\n\tif ([null, undefined, NaN, false].includes(obj)) return obj\r\n\tif (typeof obj !== 'object' && typeof obj !== 'function') {\r\n\t\t// 原始类型直接返回\r\n\t\treturn obj\r\n\t}\r\n\tconst o = test.array(obj) ? [] : {}\r\n\tfor (const i in obj) {\r\n\t\tif (obj.hasOwnProperty(i)) {\r\n\t\t\to[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i]\r\n\t\t}\r\n\t}\r\n\treturn o\r\n}\r\n\r\n/**\r\n * @description JS对象深度合并\r\n * @param {object} target 需要拷贝的对象\r\n * @param {object} source 拷贝的来源对象\r\n * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象)\r\n */\r\nfunction deepMerge(target = {}, source = {}) {\r\n\ttarget = deepClone(target)\r\n\tif (typeof target !== 'object' || typeof source !== 'object') return false\r\n\tfor (const prop in source) {\r\n\t\tif (!source.hasOwnProperty(prop)) continue\r\n\t\tif (prop in target) {\r\n\t\t\tif (typeof target[prop] !== 'object') {\r\n\t\t\t\ttarget[prop] = source[prop]\r\n\t\t\t} else if (typeof source[prop] !== 'object') {\r\n\t\t\t\ttarget[prop] = source[prop]\r\n\t\t\t} else if (target[prop].concat && source[prop].concat) {\r\n\t\t\t\ttarget[prop] = target[prop].concat(source[prop])\r\n\t\t\t} else {\r\n\t\t\t\ttarget[prop] = deepMerge(target[prop], source[prop])\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\ttarget[prop] = source[prop]\r\n\t\t}\r\n\t}\r\n\treturn target\r\n}\r\n\r\n/**\r\n * @description error提示\r\n * @param {*} err 错误内容\r\n */\r\nfunction error(err) {\r\n\t// 开发环境才提示,生产环境不会提示\r\n\tif (process.env.NODE_ENV === 'development') {\r\n\t\tconsole.error(`uView提示:${err}`)\r\n\t}\r\n}\r\n\r\n/**\r\n * @description 打乱数组\r\n * @param {array} array 需要打乱的数组\r\n * @returns {array} 打乱后的数组\r\n */\r\nfunction randomArray(array = []) {\r\n\t// 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0\r\n\treturn array.sort(() => Math.random() - 0.5)\r\n}\r\n\r\n// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序\r\n// 所以这里做一个兼容polyfill的兼容处理\r\nif (!String.prototype.padStart) {\r\n\t// 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解\r\n\tString.prototype.padStart = function(maxLength, fillString = ' ') {\r\n\t\tif (Object.prototype.toString.call(fillString) !== '[object String]') {\r\n\t\t\tthrow new TypeError(\r\n\t\t\t\t'fillString must be String'\r\n\t\t\t)\r\n\t\t}\r\n\t\tconst str = this\r\n\t\t// 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉\r\n\t\tif (str.length >= maxLength) return String(str)\r\n\r\n\t\tconst fillLength = maxLength - str.length\r\n\t\tlet times = Math.ceil(fillLength / fillString.length)\r\n\t\twhile (times >>= 1) {\r\n\t\t\tfillString += fillString\r\n\t\t\tif (times === 1) {\r\n\t\t\t\tfillString += fillString\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn fillString.slice(0, fillLength) + str\r\n\t}\r\n}\r\n\r\n/**\r\n * @description 格式化时间\r\n * @param {String|Number} dateTime 需要格式化的时间戳\r\n * @param {String} fmt 格式化规则 yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合 默认yyyy-mm-dd\r\n * @returns {string} 返回格式化后的字符串\r\n */\r\n function timeFormat(dateTime = null, formatStr = 'yyyy-mm-dd') {\r\n let date\r\n\t// 若传入时间为假值,则取当前时间\r\n if (!dateTime) {\r\n date = new Date()\r\n }\r\n // 若为unix秒时间戳,则转为毫秒时间戳(逻辑有点奇怪,但不敢改,以保证历史兼容)\r\n else if (/^\\d{10}$/.test(dateTime?.toString().trim())) {\r\n date = new Date(dateTime * 1000)\r\n }\r\n // 若用户传入字符串格式时间戳,new Date无法解析,需做兼容\r\n else if (typeof dateTime === 'string' && /^\\d+$/.test(dateTime.trim())) {\r\n date = new Date(Number(dateTime))\r\n }\r\n\t// 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间\r\n\t// 处理 '2022-07-10 01:02:03',跳过 '2022-07-10T01:02:03'\r\n\telse if (typeof dateTime === 'string' && dateTime.includes('-') && !dateTime.includes('T')) {\r\n\t\tdate = new Date(dateTime.replace(/-/g, '/'))\r\n\t}\r\n\t// 其他都认为符合 RFC 2822 规范\r\n\telse {\r\n\t\tdate = new Date(dateTime)\r\n\t}\r\n\r\n\tconst timeSource = {\r\n\t\t'y': date.getFullYear().toString(), // 年\r\n\t\t'm': (date.getMonth() + 1).toString().padStart(2, '0'), // 月\r\n\t\t'd': date.getDate().toString().padStart(2, '0'), // 日\r\n\t\t'h': date.getHours().toString().padStart(2, '0'), // 时\r\n\t\t'M': date.getMinutes().toString().padStart(2, '0'), // 分\r\n\t\t's': date.getSeconds().toString().padStart(2, '0') // 秒\r\n\t\t// 有其他格式化字符需求可以继续添加,必须转化成字符串\r\n\t}\r\n\r\n for (const key in timeSource) {\r\n const [ret] = new RegExp(`${key}+`).exec(formatStr) || []\r\n if (ret) {\r\n // 年可能只需展示两位\r\n const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0\r\n formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))\r\n }\r\n }\r\n\r\n return formatStr\r\n}\r\n\r\n/**\r\n * @description 时间戳转为多久之前\r\n * @param {String|Number} timestamp 时间戳\r\n * @param {String|Boolean} format \r\n * 格式化规则如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;\r\n * 如果为布尔值false,无论什么时间,都返回多久以前的格式\r\n * @returns {string} 转化后的内容\r\n */\r\nfunction timeFrom(timestamp = null, format = 'yyyy-mm-dd') {\r\n\tif (timestamp == null) timestamp = Number(new Date())\r\n\ttimestamp = parseInt(timestamp)\r\n\t// 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)\r\n\tif (timestamp.toString().length == 10) timestamp *= 1000\r\n\tlet timer = (new Date()).getTime() - timestamp\r\n\ttimer = parseInt(timer / 1000)\r\n\t// 如果小于5分钟,则返回\"刚刚\",其他以此类推\r\n\tlet tips = ''\r\n\tswitch (true) {\r\n\t\tcase timer < 300:\r\n\t\t\ttips = '刚刚'\r\n\t\t\tbreak\r\n\t\tcase timer >= 300 && timer < 3600:\r\n\t\t\ttips = `${parseInt(timer / 60)}分钟前`\r\n\t\t\tbreak\r\n\t\tcase timer >= 3600 && timer < 86400:\r\n\t\t\ttips = `${parseInt(timer / 3600)}小时前`\r\n\t\t\tbreak\r\n\t\tcase timer >= 86400 && timer < 2592000:\r\n\t\t\ttips = `${parseInt(timer / 86400)}天前`\r\n\t\t\tbreak\r\n\t\tdefault:\r\n\t\t\t// 如果format为false,则无论什么时间戳,都显示xx之前\r\n\t\t\tif (format === false) {\r\n\t\t\t\tif (timer >= 2592000 && timer < 365 * 86400) {\r\n\t\t\t\t\ttips = `${parseInt(timer / (86400 * 30))}个月前`\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttips = `${parseInt(timer / (86400 * 365))}年前`\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttips = timeFormat(timestamp, format)\r\n\t\t\t}\r\n\t}\r\n\treturn tips\r\n}\r\n\r\n/**\r\n * @description 去除空格\r\n * @param String str 需要去除空格的字符串\r\n * @param String pos both(左右)|left|right|all 默认both\r\n */\r\nfunction trim(str, pos = 'both') {\r\n\tstr = String(str)\r\n\tif (pos == 'both') {\r\n\t\treturn str.replace(/^\\s+|\\s+$/g, '')\r\n\t}\r\n\tif (pos == 'left') {\r\n\t\treturn str.replace(/^\\s*/, '')\r\n\t}\r\n\tif (pos == 'right') {\r\n\t\treturn str.replace(/(\\s*$)/g, '')\r\n\t}\r\n\tif (pos == 'all') {\r\n\t\treturn str.replace(/\\s+/g, '')\r\n\t}\r\n\treturn str\r\n}\r\n\r\n/**\r\n * @description 对象转url参数\r\n * @param {object} data,对象\r\n * @param {Boolean} isPrefix,是否自动加上\"?\"\r\n * @param {string} arrayFormat 规则 indices|brackets|repeat|comma\r\n */\r\nfunction queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {\r\n\tconst prefix = isPrefix ? '?' : ''\r\n\tconst _result = []\r\n\tif (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets'\r\n\tfor (const key in data) {\r\n\t\tconst value = data[key]\r\n\t\t// 去掉为空的参数\r\n\t\tif (['', undefined, null].indexOf(value) >= 0) {\r\n\t\t\tcontinue\r\n\t\t}\r\n\t\t// 如果值为数组,另行处理\r\n\t\tif (value.constructor === Array) {\r\n\t\t\t// e.g. {ids: [1, 2, 3]}\r\n\t\t\tswitch (arrayFormat) {\r\n\t\t\t\tcase 'indices':\r\n\t\t\t\t\t// 结果: ids[0]=1&ids[1]=2&ids[2]=3\r\n\t\t\t\t\tfor (let i = 0; i < value.length; i++) {\r\n\t\t\t\t\t\t_result.push(`${key}[${i}]=${value[i]}`)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'brackets':\r\n\t\t\t\t\t// 结果: ids[]=1&ids[]=2&ids[]=3\r\n\t\t\t\t\tvalue.forEach((_value) => {\r\n\t\t\t\t\t\t_result.push(`${key}[]=${_value}`)\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'repeat':\r\n\t\t\t\t\t// 结果: ids=1&ids=2&ids=3\r\n\t\t\t\t\tvalue.forEach((_value) => {\r\n\t\t\t\t\t\t_result.push(`${key}=${_value}`)\r\n\t\t\t\t\t})\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'comma':\r\n\t\t\t\t\t// 结果: ids=1,2,3\r\n\t\t\t\t\tlet commaStr = ''\r\n\t\t\t\t\tvalue.forEach((_value) => {\r\n\t\t\t\t\t\tcommaStr += (commaStr ? ',' : '') + _value\r\n\t\t\t\t\t})\r\n\t\t\t\t\t_result.push(`${key}=${commaStr}`)\r\n\t\t\t\t\tbreak\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvalue.forEach((_value) => {\r\n\t\t\t\t\t\t_result.push(`${key}[]=${_value}`)\r\n\t\t\t\t\t})\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t_result.push(`${key}=${value}`)\r\n\t\t}\r\n\t}\r\n\treturn _result.length ? prefix + _result.join('&') : ''\r\n}\r\n\r\n/**\r\n * 显示消息提示框\r\n * @param {String} title 提示的内容,长度与 icon 取值有关。\r\n * @param {Number} duration 提示的延迟时间,单位毫秒,默认:2000\r\n */\r\nfunction toast(title, duration = 2000) {\r\n\tuni.showToast({\r\n\t\ttitle: String(title),\r\n\t\ticon: 'none',\r\n\t\tduration\r\n\t})\r\n}\r\n\r\n/**\r\n * @description 根据主题type值,获取对应的图标\r\n * @param {String} type 主题名称,primary|info|error|warning|success\r\n * @param {boolean} fill 是否使用fill填充实体的图标\r\n */\r\nfunction type2icon(type = 'success', fill = false) {\r\n\t// 如果非预置值,默认为success\r\n\tif (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success'\r\n\tlet iconName = ''\r\n\t// 目前(2019-12-12),info和primary使用同一个图标\r\n\tswitch (type) {\r\n\t\tcase 'primary':\r\n\t\t\ticonName = 'info-circle'\r\n\t\t\tbreak\r\n\t\tcase 'info':\r\n\t\t\ticonName = 'info-circle'\r\n\t\t\tbreak\r\n\t\tcase 'error':\r\n\t\t\ticonName = 'close-circle'\r\n\t\t\tbreak\r\n\t\tcase 'warning':\r\n\t\t\ticonName = 'error-circle'\r\n\t\t\tbreak\r\n\t\tcase 'success':\r\n\t\t\ticonName = 'checkmark-circle'\r\n\t\t\tbreak\r\n\t\tdefault:\r\n\t\t\ticonName = 'checkmark-circle'\r\n\t}\r\n\t// 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的\r\n\tif (fill) iconName += '-fill'\r\n\treturn iconName\r\n}\r\n\r\n/**\r\n * @description 数字格式化\r\n * @param {number|string} number 要格式化的数字\r\n * @param {number} decimals 保留几位小数\r\n * @param {string} decimalPoint 小数点符号\r\n * @param {string} thousandsSeparator 千分位符号\r\n * @returns {string} 格式化后的数字\r\n */\r\nfunction priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') {\r\n\tnumber = (`${number}`).replace(/[^0-9+-Ee.]/g, '')\r\n\tconst n = !isFinite(+number) ? 0 : +number\r\n\tconst prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)\r\n\tconst sep = (typeof thousandsSeparator === 'undefined') ? ',' : thousandsSeparator\r\n\tconst dec = (typeof decimalPoint === 'undefined') ? '.' : decimalPoint\r\n\tlet s = ''\r\n\r\n\ts = (prec ? round(n, prec) + '' : `${Math.round(n)}`).split('.')\r\n\tconst re = /(-?\\d+)(\\d{3})/\r\n\twhile (re.test(s[0])) {\r\n\t\ts[0] = s[0].replace(re, `$1${sep}$2`)\r\n\t}\r\n\t\r\n\tif ((s[1] || '').length < prec) {\r\n\t\ts[1] = s[1] || ''\r\n\t\ts[1] += new Array(prec - s[1].length + 1).join('0')\r\n\t}\r\n\treturn s.join(dec)\r\n}\r\n\r\n/**\r\n * @description 获取duration值\r\n * 如果带有ms或者s直接返回,如果大于一定值,认为是ms单位,小于一定值,认为是s单位\r\n * 比如以30位阈值,那么300大于30,可以理解为用户想要的是300ms,而不是想花300s去执行一个动画\r\n * @param {String|number} value 比如: \"1s\"|\"100ms\"|1|100\r\n * @param {boolean} unit 提示: 如果是false 默认返回number\r\n * @return {string|number} \r\n */\r\nfunction getDuration(value, unit = true) {\r\n\tconst valueNum = parseInt(value)\r\n\tif (unit) {\r\n\t\tif (/s$/.test(value)) return value\r\n\t\treturn value > 30 ? `${value}ms` : `${value}s`\r\n\t}\r\n\tif (/ms$/.test(value)) return valueNum\r\n\tif (/s$/.test(value)) return valueNum > 30 ? valueNum : valueNum * 1000\r\n\treturn valueNum\r\n}\r\n\r\n/**\r\n * @description 日期的月或日补零操作\r\n * @param {String} value 需要补零的值\r\n */\r\nfunction padZero(value) {\r\n\treturn `00${value}`.slice(-2)\r\n}\r\n\r\n/**\r\n * @description 在u-form的子组件内容发生变化,或者失去焦点时,尝试通知u-form执行校验方法\r\n * @param {*} instance\r\n * @param {*} event\r\n */\r\nfunction formValidate(instance, event) {\r\n\tconst formItem = uni.$u.$parent.call(instance, 'u-form-item')\r\n\tconst form = uni.$u.$parent.call(instance, 'u-form')\r\n\t// 如果发生变化的input或者textarea等,其父组件中有u-form-item或者u-form等,就执行form的validate方法\r\n\t// 同时将form-item的pros传递给form,让其进行精确对象验证\r\n\tif (formItem && form) {\r\n\t\tform.validateField(formItem.prop, () => {}, event)\r\n\t}\r\n}\r\n\r\n/**\r\n * @description 获取某个对象下的属性,用于通过类似'a.b.c'的形式去获取一个对象的的属性的形式\r\n * @param {object} obj 对象\r\n * @param {string} key 需要获取的属性字段\r\n * @returns {*}\r\n */\r\nfunction getProperty(obj, key) {\r\n\tif (!obj) {\r\n\t\treturn\r\n\t}\r\n\tif (typeof key !== 'string' || key === '') {\r\n\t\treturn ''\r\n\t}\r\n\tif (key.indexOf('.') !== -1) {\r\n\t\tconst keys = key.split('.')\r\n\t\tlet firstObj = obj[keys[0]] || {}\r\n\r\n\t\tfor (let i = 1; i < keys.length; i++) {\r\n\t\t\tif (firstObj) {\r\n\t\t\t\tfirstObj = firstObj[keys[i]]\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn firstObj\r\n\t}\r\n\treturn obj[key]\r\n}\r\n\r\n/**\r\n * @description 设置对象的属性值,如果'a.b.c'的形式进行设置\r\n * @param {object} obj 对象\r\n * @param {string} key 需要设置的属性\r\n * @param {string} value 设置的值\r\n */\r\nfunction setProperty(obj, key, value) {\r\n\tif (!obj) {\r\n\t\treturn\r\n\t}\r\n\t// 递归赋值\r\n\tconst inFn = function(_obj, keys, v) {\r\n\t\t// 最后一个属性key\r\n\t\tif (keys.length === 1) {\r\n\t\t\t_obj[keys[0]] = v\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// 0~length-1个key\r\n\t\twhile (keys.length > 1) {\r\n\t\t\tconst k = keys[0]\r\n\t\t\tif (!_obj[k] || (typeof _obj[k] !== 'object')) {\r\n\t\t\t\t_obj[k] = {}\r\n\t\t\t}\r\n\t\t\tconst key = keys.shift()\r\n\t\t\t// 自调用判断是否存在属性,不存在则自动创建对象\r\n\t\t\tinFn(_obj[k], keys, v)\r\n\t\t}\r\n\t}\r\n\r\n\tif (typeof key !== 'string' || key === '') {\r\n\r\n\t} else if (key.indexOf('.') !== -1) { // 支持多层级赋值操作\r\n\t\tconst keys = key.split('.')\r\n\t\tinFn(obj, keys, value)\r\n\t} else {\r\n\t\tobj[key] = value\r\n\t}\r\n}\r\n\r\n/**\r\n * @description 获取当前页面路径\r\n */\r\nfunction page() {\r\n\tconst pages = getCurrentPages()\r\n\t// 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组\r\n\treturn `/${pages[pages.length - 1]?.route ?? ''}`\r\n}\r\n\r\n/**\r\n * @description 获取当前路由栈实例数组\r\n */\r\nfunction pages() {\r\n\tconst pages = getCurrentPages()\r\n\treturn pages\r\n}\r\n\r\n/**\r\n * @description 修改uView内置属性值\r\n * @param {object} props 修改内置props属性\r\n * @param {object} config 修改内置config属性\r\n * @param {object} color 修改内置color属性\r\n * @param {object} zIndex 修改内置zIndex属性\r\n */\r\nfunction setConfig({\r\n\tprops = {},\r\n\tconfig = {},\r\n\tcolor = {},\r\n\tzIndex = {}\r\n}) {\r\n\tconst {\r\n\t\tdeepMerge,\r\n\t} = uni.$u\r\n\tuni.$u.config = deepMerge(uni.$u.config, config)\r\n\tuni.$u.props = deepMerge(uni.$u.props, props)\r\n\tuni.$u.color = deepMerge(uni.$u.color, color)\r\n\tuni.$u.zIndex = deepMerge(uni.$u.zIndex, zIndex)\r\n}\r\n\r\nexport default {\r\n\trange,\r\n\tgetPx,\r\n\tsleep,\r\n\tos,\r\n\tsys,\r\n\trandom,\r\n\tguid,\r\n\t$parent,\r\n\taddStyle,\r\n\taddUnit,\r\n\tdeepClone,\r\n\tdeepMerge,\r\n\terror,\r\n\trandomArray,\r\n\ttimeFormat,\r\n\ttimeFrom,\r\n\ttrim,\r\n\tqueryParams,\r\n\ttoast,\r\n\ttype2icon,\r\n\tpriceFormat,\r\n\tgetDuration,\r\n\tpadZero,\r\n\tformValidate,\r\n\tgetProperty,\r\n\tsetProperty,\r\n\tpage,\r\n\tpages,\r\n\tsetConfig\r\n}\r\n","let _boundaryCheckingState = true; // 是否进行越界检查的全局开关\n\n/**\n * 把错误的数据转正\n * @private\n * @example strip(0.09999999999999998)=0.1\n */\nfunction strip(num, precision = 15) {\n return +parseFloat(Number(num).toPrecision(precision));\n}\n\n/**\n * Return digits length of a number\n * @private\n * @param {*number} num Input number\n */\nfunction digitLength(num) {\n // Get digit length of e\n const eSplit = num.toString().split(/[eE]/);\n const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);\n return len > 0 ? len : 0;\n}\n\n/**\n * 把小数转成整数,如果是小数则放大成整数\n * @private\n * @param {*number} num 输入数\n */\nfunction float2Fixed(num) {\n if (num.toString().indexOf('e') === -1) {\n return Number(num.toString().replace('.', ''));\n }\n const dLen = digitLength(num);\n return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num);\n}\n\n/**\n * 检测数字是否越界,如果越界给出提示\n * @private\n * @param {*number} num 输入数\n */\nfunction checkBoundary(num) {\n if (_boundaryCheckingState) {\n if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) {\n console.warn(`${num} 超出了精度限制,结果可能不正确`);\n }\n }\n}\n\n/**\n * 把递归操作扁平迭代化\n * @param {number[]} arr 要操作的数字数组\n * @param {function} operation 迭代操作\n * @private\n */\nfunction iteratorOperation(arr, operation) {\n const [num1, num2, ...others] = arr;\n let res = operation(num1, num2);\n\n others.forEach((num) => {\n res = operation(res, num);\n });\n\n return res;\n}\n\n/**\n * 高精度乘法\n * @export\n */\nexport function times(...nums) {\n if (nums.length > 2) {\n return iteratorOperation(nums, times);\n }\n\n const [num1, num2] = nums;\n const num1Changed = float2Fixed(num1);\n const num2Changed = float2Fixed(num2);\n const baseNum = digitLength(num1) + digitLength(num2);\n const leftValue = num1Changed * num2Changed;\n\n checkBoundary(leftValue);\n\n return leftValue / Math.pow(10, baseNum);\n}\n\n/**\n * 高精度加法\n * @export\n */\nexport function plus(...nums) {\n if (nums.length > 2) {\n return iteratorOperation(nums, plus);\n }\n\n const [num1, num2] = nums;\n // 取最大的小数位\n const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));\n // 把小数都转为整数然后再计算\n return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;\n}\n\n/**\n * 高精度减法\n * @export\n */\nexport function minus(...nums) {\n if (nums.length > 2) {\n return iteratorOperation(nums, minus);\n }\n\n const [num1, num2] = nums;\n const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));\n return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;\n}\n\n/**\n * 高精度除法\n * @export\n */\nexport function divide(...nums) {\n if (nums.length > 2) {\n return iteratorOperation(nums, divide);\n }\n\n const [num1, num2] = nums;\n const num1Changed = float2Fixed(num1);\n const num2Changed = float2Fixed(num2);\n checkBoundary(num1Changed);\n checkBoundary(num2Changed);\n // 重要,这里必须用strip进行修正\n return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));\n}\n\n/**\n * 四舍五入\n * @export\n */\nexport function round(num, ratio) {\n const base = Math.pow(10, ratio);\n let result = divide(Math.round(Math.abs(times(num, base))), base);\n if (num < 0 && result !== 0) {\n result = times(result, -1);\n }\n // 位数不足则补0\n return result;\n}\n\n/**\n * 是否进行边界检查,默认开启\n * @param flag 标记开关,true 为开启,false 为关闭,默认为 true\n * @export\n */\nexport function enableBoundaryChecking(flag = true) {\n _boundaryCheckingState = flag;\n}\n\n\nexport default {\n times,\n plus,\n minus,\n divide,\n round,\n enableBoundaryChecking,\n};\n\n","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 此版本发布于2022-00-24\nconst version = '2.0.34'\n\n// 开发环境才提示,生产环境不会提示\nif (process.env.NODE_ENV === 'development') {\n\tconsole.log(`\\n %c uView V${version} %c https://uviewui.com/ \\n\\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px;');\n}\n\nexport default {\n v: version,\n version,\n // 主题名称\n type: [\n 'primary',\n 'success',\n 'info',\n 'error',\n 'warning'\n ],\n // 颜色部分,本来可以通过scss的:export导出供js使用,但是奈何nvue不支持\n color: {\n 'u-primary': '#2979ff',\n 'u-warning': '#ff9900',\n 'u-success': '#19be6b',\n 'u-error': '#fa3534',\n 'u-info': '#909399',\n 'u-main-color': '#303133',\n 'u-content-color': '#606266',\n 'u-tips-color': '#909399',\n 'u-light-color': '#c0c4cc'\n },\n\t// 默认单位,可以通过配置为rpx,那么在用于传入组件大小参数为数值时,就默认为rpx\n\tunit: 'px'\n}\n","/**\r\n * 此文件的作用为统一配置所有组件的props参数\r\n * 借此用户可以全局覆盖组件的props默认值\r\n * 无需在每个引入组件的页面中都配置一次\r\n */\r\nimport config from './config'\r\n\r\nimport actionSheet from './props/actionSheet.js'\r\nimport album from './props/album.js'\r\nimport alert from './props/alert.js'\r\nimport avatar from './props/avatar'\r\nimport avatarGroup from './props/avatarGroup'\r\nimport backtop from './props/backtop'\r\nimport badge from './props/badge'\r\nimport button from './props/button'\r\nimport calendar from './props/calendar'\r\nimport carKeyboard from './props/carKeyboard'\r\nimport cell from './props/cell'\r\nimport cellGroup from './props/cellGroup'\r\nimport checkbox from './props/checkbox'\r\nimport checkboxGroup from './props/checkboxGroup'\r\nimport circleProgress from './props/circleProgress'\r\nimport code from './props/code'\r\nimport codeInput from './props/codeInput'\r\nimport col from './props/col'\r\nimport collapse from './props/collapse'\r\nimport collapseItem from './props/collapseItem'\r\nimport columnNotice from './props/columnNotice'\r\nimport countDown from './props/countDown'\r\nimport countTo from './props/countTo'\r\nimport datetimePicker from './props/datetimePicker'\r\nimport divider from './props/divider'\r\nimport empty from './props/empty'\r\nimport form from './props/form'\r\nimport formItem from './props/formItem'\r\nimport gap from './props/gap'\r\nimport grid from './props/grid'\r\nimport gridItem from './props/gridItem'\r\nimport icon from './props/icon'\r\nimport image from './props/image'\r\nimport indexAnchor from './props/indexAnchor'\r\nimport indexList from './props/indexList'\r\nimport input from './props/input'\r\nimport keyboard from './props/keyboard'\r\nimport line from './props/line'\r\nimport lineProgress from './props/lineProgress'\r\nimport link from './props/link'\r\nimport list from './props/list'\r\nimport listItem from './props/listItem'\r\nimport loadingIcon from './props/loadingIcon'\r\nimport loadingPage from './props/loadingPage'\r\nimport loadmore from './props/loadmore'\r\nimport modal from './props/modal'\r\nimport navbar from './props/navbar'\r\nimport noNetwork from './props/noNetwork'\r\nimport noticeBar from './props/noticeBar'\r\nimport notify from './props/notify'\r\nimport numberBox from './props/numberBox'\r\nimport numberKeyboard from './props/numberKeyboard'\r\nimport overlay from './props/overlay'\r\nimport parse from './props/parse'\r\nimport picker from './props/picker'\r\nimport popup from './props/popup'\r\nimport radio from './props/radio'\r\nimport radioGroup from './props/radioGroup'\r\nimport rate from './props/rate'\r\nimport readMore from './props/readMore'\r\nimport row from './props/row'\r\nimport rowNotice from './props/rowNotice'\r\nimport scrollList from './props/scrollList'\r\nimport search from './props/search'\r\nimport section from './props/section'\r\nimport skeleton from './props/skeleton'\r\nimport slider from './props/slider'\r\nimport statusBar from './props/statusBar'\r\nimport steps from './props/steps'\r\nimport stepsItem from './props/stepsItem'\r\nimport sticky from './props/sticky'\r\nimport subsection from './props/subsection'\r\nimport swipeAction from './props/swipeAction'\r\nimport swipeActionItem from './props/swipeActionItem'\r\nimport swiper from './props/swiper'\r\nimport swipterIndicator from './props/swipterIndicator'\r\nimport _switch from './props/switch'\r\nimport tabbar from './props/tabbar'\r\nimport tabbarItem from './props/tabbarItem'\r\nimport tabs from './props/tabs'\r\nimport tag from './props/tag'\r\nimport text from './props/text'\r\nimport textarea from './props/textarea'\r\nimport toast from './props/toast'\r\nimport toolbar from './props/toolbar'\r\nimport tooltip from './props/tooltip'\r\nimport transition from './props/transition'\r\nimport upload from './props/upload'\r\n\r\nconst {\r\n color\r\n} = config\r\n\r\nexport default {\r\n ...actionSheet,\r\n ...album,\r\n ...alert,\r\n ...avatar,\r\n ...avatarGroup,\r\n ...backtop,\r\n ...badge,\r\n ...button,\r\n ...calendar,\r\n ...carKeyboard,\r\n ...cell,\r\n ...cellGroup,\r\n ...checkbox,\r\n ...checkboxGroup,\r\n ...circleProgress,\r\n ...code,\r\n ...codeInput,\r\n ...col,\r\n ...collapse,\r\n ...collapseItem,\r\n ...columnNotice,\r\n ...countDown,\r\n ...countTo,\r\n ...datetimePicker,\r\n ...divider,\r\n ...empty,\r\n ...form,\r\n ...formItem,\r\n ...gap,\r\n ...grid,\r\n ...gridItem,\r\n ...icon,\r\n ...image,\r\n ...indexAnchor,\r\n ...indexList,\r\n ...input,\r\n ...keyboard,\r\n ...line,\r\n ...lineProgress,\r\n ...link,\r\n ...list,\r\n ...listItem,\r\n ...loadingIcon,\r\n ...loadingPage,\r\n ...loadmore,\r\n ...modal,\r\n ...navbar,\r\n ...noNetwork,\r\n ...noticeBar,\r\n ...notify,\r\n ...numberBox,\r\n ...numberKeyboard,\r\n ...overlay,\r\n ...parse,\r\n ...picker,\r\n ...popup,\r\n ...radio,\r\n ...radioGroup,\r\n ...rate,\r\n ...readMore,\r\n ...row,\r\n ...rowNotice,\r\n ...scrollList,\r\n ...search,\r\n ...section,\r\n ...skeleton,\r\n ...slider,\r\n ...statusBar,\r\n ...steps,\r\n ...stepsItem,\r\n ...sticky,\r\n ...subsection,\r\n ...swipeAction,\r\n ...swipeActionItem,\r\n ...swiper,\r\n ...swipterIndicator,\r\n ..._switch,\r\n ...tabbar,\r\n ...tabbarItem,\r\n ...tabs,\r\n ...tag,\r\n ...text,\r\n ...textarea,\r\n ...toast,\r\n ...toolbar,\r\n ...tooltip,\r\n ...transition,\r\n ...upload\r\n}\r\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:44:35\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/actionSheet.js\n */\nexport default {\n // action-sheet组件\n actionSheet: {\n show: false,\n title: '',\n description: '',\n actions: () => [],\n index: '',\n cancelText: '',\n closeOnClickAction: true,\n safeAreaInsetBottom: true,\n openType: '',\n closeOnClickOverlay: true,\n round: 0\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:47:24\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/album.js\n */\nexport default {\n // album 组件\n album: {\n urls: () => [],\n keyName: '',\n singleSize: 180,\n multipleSize: 70,\n space: 6,\n singleMode: 'scaleToFill',\n multipleMode: 'aspectFill',\n maxCount: 9,\n previewFullImage: true,\n rowCount: 3,\n showMore: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:48:53\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/alert.js\n */\nexport default {\n // alert警告组件\n alert: {\n title: '',\n type: 'warning',\n description: '',\n closable: false,\n showIcon: false,\n effect: 'light',\n center: false,\n fontSize: 14\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:49:22\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/avatar.js\n */\nexport default {\n // avatar 组件\n avatar: {\n src: '',\n shape: 'circle',\n size: 40,\n mode: 'scaleToFill',\n text: '',\n bgColor: '#c0c4cc',\n color: '#ffffff',\n fontSize: 18,\n icon: '',\n mpAvatar: false,\n randomBgColor: false,\n defaultUrl: '',\n colorIndex: '',\n name: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:49:55\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/avatarGroup.js\n */\nexport default {\n // avatarGroup 组件\n avatarGroup: {\n urls: () => [],\n maxCount: 5,\n shape: 'circle',\n mode: 'scaleToFill',\n showMore: true,\n size: 40,\n keyName: '',\n gap: 0.5,\n\t\textraValue: 0\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:50:18\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/backtop.js\n */\nexport default {\n // backtop组件\n backtop: {\n mode: 'circle',\n icon: 'arrow-upward',\n text: '',\n duration: 100,\n scrollTop: 0,\n top: 400,\n bottom: 100,\n right: 20,\n zIndex: 9,\n iconStyle: () => ({\n color: '#909399',\n fontSize: '19px'\n })\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-23 19:51:50\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/badge.js\n */\nexport default {\n // 徽标数组件\n badge: {\n isDot: false,\n value: '',\n show: true,\n max: 999,\n type: 'error',\n showZero: false,\n bgColor: null,\n color: null,\n shape: 'circle',\n numberType: 'overflow',\n offset: () => [],\n inverted: false,\n absolute: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:51:27\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/button.js\n */\nexport default {\n // button组件\n button: {\n hairline: false,\n type: 'info',\n size: 'normal',\n shape: 'square',\n plain: false,\n disabled: false,\n loading: false,\n loadingText: '',\n loadingMode: 'spinner',\n loadingSize: 15,\n openType: '',\n formType: '',\n appParameter: '',\n hoverStopPropagation: true,\n lang: 'en',\n sessionFrom: '',\n sendMessageTitle: '',\n sendMessagePath: '',\n sendMessageImg: '',\n showMessageCard: false,\n dataName: '',\n throttleTime: 0,\n hoverStartTime: 0,\n hoverStayTime: 200,\n text: '',\n icon: '',\n iconColor: '',\n color: ''\n }\n}\n","/*\r\n * @Author : LQ\r\n * @Description :\r\n * @version : 1.0\r\n * @Date : 2021-08-20 16:44:21\r\n * @LastAuthor : LQ\r\n * @lastTime : 2021-08-20 16:52:43\r\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/calendar.js\r\n */\r\nexport default {\r\n // calendar 组件\r\n calendar: {\r\n title: '日期选择',\r\n showTitle: true,\r\n showSubtitle: true,\r\n mode: 'single',\r\n startText: '开始',\r\n endText: '结束',\r\n customList: () => [],\r\n color: '#3c9cff',\r\n minDate: 0,\r\n maxDate: 0,\r\n defaultDate: null,\r\n maxCount: Number.MAX_SAFE_INTEGER, // Infinity\r\n rowHeight: 56,\r\n formatter: null,\r\n showLunar: false,\r\n showMark: true,\r\n confirmText: '确定',\r\n confirmDisabledText: '确定',\r\n show: false,\r\n closeOnClickOverlay: false,\r\n readonly: false,\r\n showConfirm: true,\r\n maxRange: Number.MAX_SAFE_INTEGER, // Infinity\r\n rangePrompt: '',\r\n showRangePrompt: true,\r\n allowSameDay: false,\r\n\t\tround: 0,\r\n\t\tmonthNum: 3\r\n }\r\n}\r\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:53:20\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/carKeyboard.js\n */\nexport default {\n // 车牌号键盘\n carKeyboard: {\n random: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-23 20:53:09\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/cell.js\n */\nexport default {\n\t// cell组件的props\n\tcell: {\n\t\tcustomClass: '',\n\t\ttitle: '',\n\t\tlabel: '',\n\t\tvalue: '',\n\t\ticon: '',\n\t\tdisabled: false,\n\t\tborder: true,\n\t\tcenter: false,\n\t\turl: '',\n\t\tlinkType: 'navigateTo',\n\t\tclickable: false,\n\t\tisLink: false,\n\t\trequired: false,\n\t\tarrowDirection: '',\n\t\ticonStyle: {},\n\t\trightIconStyle: {},\n\t\trightIcon: 'arrow-right',\n\t\ttitleStyle: {},\n\t\tsize: '',\n\t\tstop: true,\n\t\tname: ''\n\t}\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:54:16\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/cellGroup.js\n */\nexport default {\n // cell-group组件的props\n cellGroup: {\n title: '',\n border: true,\n customStyle: {}\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-23 21:06:59\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/checkbox.js\n */\nexport default {\n // checkbox组件\n checkbox: {\n name: '',\n shape: '',\n size: '',\n checkbox: false,\n disabled: '',\n activeColor: '',\n inactiveColor: '',\n iconSize: '',\n iconColor: '',\n label: '',\n labelSize: '',\n labelColor: '',\n labelDisabled: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:54:47\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/checkboxGroup.js\n */\nexport default {\n // checkbox-group组件\n checkboxGroup: {\n name: '',\n value: () => [],\n shape: 'square',\n disabled: false,\n activeColor: '#2979ff',\n inactiveColor: '#c8c9cc',\n size: 18,\n placement: 'row',\n labelSize: 14,\n labelColor: '#303133',\n labelDisabled: false,\n iconColor: '#ffffff',\n iconSize: 12,\n iconPlacement: 'left',\n borderBottom: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:55:02\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/circleProgress.js\n */\nexport default {\n // circleProgress 组件\n circleProgress: {\n percentage: 30\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:55:27\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/code.js\n */\n\nexport default {\n // code 组件\n code: {\n seconds: 60,\n startText: '获取验证码',\n changeText: 'X秒重新获取',\n endText: '重新获取',\n keepRunning: false,\n uniqueKey: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:55:58\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/codeInput.js\n */\nexport default {\n // codeInput 组件\n codeInput: {\n\t\tadjustPosition: true,\n maxlength: 6,\n dot: false,\n mode: 'box',\n hairline: false,\n space: 10,\n value: '',\n focus: false,\n bold: false,\n color: '#606266',\n fontSize: 18,\n size: 35,\n disabledKeyboard: false,\n borderColor: '#c9cacc',\n\t\tdisabledDot: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:56:12\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/col.js\n */\nexport default {\n // col 组件\n col: {\n span: 12,\n offset: 0,\n justify: 'start',\n align: 'stretch',\n textAlign: 'left'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:56:30\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/collapse.js\n */\nexport default {\n // collapse 组件\n collapse: {\n value: null,\n accordion: false,\n border: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:56:42\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/collapseItem.js\n */\nexport default {\n // collapseItem 组件\n collapseItem: {\n title: '',\n value: '',\n label: '',\n disabled: false,\n isLink: true,\n clickable: true,\n border: true,\n align: 'left',\n name: '',\n icon: '',\n duration: 300\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:57:16\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/columnNotice.js\n */\nexport default {\n // columnNotice 组件\n columnNotice: {\n text: '',\n icon: 'volume',\n mode: '',\n color: '#f9ae3d',\n bgColor: '#fdf6ec',\n fontSize: 14,\n speed: 80,\n step: false,\n duration: 1500,\n disableTouch: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:11:29\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/countDown.js\n */\nexport default {\n // u-count-down 计时器组件\n countDown: {\n time: 0,\n format: 'HH:mm:ss',\n autoStart: true,\n millisecond: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:57:32\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/countTo.js\n */\nexport default {\n // countTo 组件\n countTo: {\n startVal: 0,\n endVal: 0,\n duration: 2000,\n autoplay: true,\n decimals: 0,\n useEasing: true,\n decimal: '.',\n color: '#606266',\n fontSize: 22,\n bold: false,\n separator: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:57:48\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/datetimePicker.js\n */\nexport default {\n // datetimePicker 组件\n datetimePicker: {\n show: false,\n showToolbar: true,\n value: '',\n title: '',\n mode: 'datetime',\n maxDate: new Date(new Date().getFullYear() + 10, 0, 1).getTime(),\n minDate: new Date(new Date().getFullYear() - 10, 0, 1).getTime(),\n minHour: 0,\n maxHour: 23,\n minMinute: 0,\n maxMinute: 59,\n filter: null,\n formatter: null,\n loading: false,\n itemHeight: 44,\n cancelText: '取消',\n confirmText: '确认',\n cancelColor: '#909193',\n confirmColor: '#3c9cff',\n visibleItemCount: 5,\n closeOnClickOverlay: false,\n defaultIndex: () => []\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:58:03\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/divider.js\n */\nexport default {\n // divider组件\n divider: {\n dashed: false,\n hairline: true,\n dot: false,\n textPosition: 'center',\n text: '',\n textSize: 14,\n textColor: '#909399',\n lineColor: '#dcdfe6'\n }\n\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:03:27\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/empty.js\n */\nexport default {\n // empty组件\n empty: {\n icon: '',\n text: '',\n textColor: '#c0c4cc',\n textSize: 14,\n iconColor: '#c0c4cc',\n iconSize: 90,\n mode: 'data',\n width: 160,\n height: 160,\n show: true,\n marginTop: 0\n }\n\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:03:49\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/form.js\n */\nexport default {\n // form 组件\n form: {\n model: () => ({}),\n rules: () => ({}),\n errorType: 'message',\n borderBottom: true,\n labelPosition: 'left',\n labelWidth: 45,\n labelAlign: 'left',\n labelStyle: () => ({})\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:04:32\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/formItem.js\n */\nexport default {\n // formItem 组件\n formItem: {\n label: '',\n prop: '',\n borderBottom: '',\n labelPosition: '',\n labelWidth: '',\n rightIcon: '',\n leftIcon: '',\n required: false,\n leftIconStyle: '',\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:05:25\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/gap.js\n */\nexport default {\n // gap组件\n gap: {\n bgColor: 'transparent',\n height: 20,\n marginTop: 0,\n marginBottom: 0,\n customStyle: {}\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:05:57\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/grid.js\n */\nexport default {\n // grid组件\n grid: {\n col: 3,\n border: false,\n align: 'left'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:06:13\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/gridItem.js\n */\nexport default {\n // grid-item组件\n gridItem: {\n name: null,\n bgColor: 'transparent'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 18:00:14\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/icon.js\n */\nimport config from '../config'\n\nconst {\n color\n} = config\nexport default {\n // icon组件\n icon: {\n name: '',\n color: color['u-content-color'],\n size: '16px',\n bold: false,\n index: '',\n hoverClass: '',\n customPrefix: 'uicon',\n label: '',\n labelPos: 'right',\n labelSize: '15px',\n labelColor: color['u-content-color'],\n space: '3px',\n imgMode: '',\n width: '',\n height: '',\n top: 0,\n stop: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:01:51\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/image.js\n */\nexport default {\n // image组件\n image: {\n src: '',\n mode: 'aspectFill',\n width: '300',\n height: '225',\n shape: 'square',\n radius: 0,\n lazyLoad: true,\n showMenuByLongpress: true,\n loadingIcon: 'photo',\n errorIcon: 'error-circle',\n showLoading: true,\n showError: true,\n fade: true,\n webp: false,\n duration: 500,\n bgColor: '#f3f4f6'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:13:15\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/indexAnchor.js\n */\nexport default {\n // indexAnchor 组件\n indexAnchor: {\n text: '',\n color: '#606266',\n size: 14,\n bgColor: '#dedede',\n height: 32\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:13:35\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/indexList.js\n */\nexport default {\n // indexList 组件\n indexList: {\n inactiveColor: '#606266',\n activeColor: '#5677fc',\n indexList: () => [],\n sticky: true,\n customNavHeight: 0\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:13:55\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/input.js\n */\nexport default {\n\t// index 组件\n\tinput: {\n\t\tvalue: '',\n\t\ttype: 'text',\n\t\tfixed: false,\n\t\tdisabled: false,\n\t\tdisabledColor: '#f5f7fa',\n\t\tclearable: false,\n\t\tpassword: false,\n\t\tmaxlength: -1,\n\t\tplaceholder: null,\n\t\tplaceholderClass: 'input-placeholder',\n\t\tplaceholderStyle: 'color: #c0c4cc',\n\t\tshowWordLimit: false,\n\t\tconfirmType: 'done',\n\t\tconfirmHold: false,\n\t\tholdKeyboard: false,\n\t\tfocus: false,\n\t\tautoBlur: false,\n\t\tdisableDefaultPadding: false,\n\t\tcursor: -1,\n\t\tcursorSpacing: 30,\n\t\tselectionStart: -1,\n\t\tselectionEnd: -1,\n\t\tadjustPosition: true,\n\t\tinputAlign: 'left',\n\t\tfontSize: '15px',\n\t\tcolor: '#303133',\n\t\tprefixIcon: '',\n\t\tprefixIconStyle: '',\n\t\tsuffixIcon: '',\n\t\tsuffixIconStyle: '',\n\t\tborder: 'surround',\n\t\treadonly: false,\n\t\tshape: 'square',\n\t\tformatter: null\n\t}\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:07:49\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/keyboard.js\n */\nexport default {\n // 键盘组件\n keyboard: {\n mode: 'number',\n dotDisabled: false,\n tooltip: true,\n showTips: true,\n tips: '',\n showCancel: true,\n showConfirm: true,\n random: false,\n safeAreaInsetBottom: true,\n closeOnClickOverlay: true,\n show: false,\n overlay: true,\n zIndex: 10075,\n cancelText: '取消',\n confirmText: '确定',\n autoChange: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:04:49\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/line.js\n */\nexport default {\n // line组件\n line: {\n color: '#d6d7d9',\n length: '100%',\n direction: 'row',\n hairline: true,\n margin: 0,\n dashed: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:14:11\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/lineProgress.js\n */\nexport default {\n // lineProgress 组件\n lineProgress: {\n activeColor: '#19be6b',\n inactiveColor: '#ececec',\n percentage: 0,\n showText: true,\n height: 12\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:45:36\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/link.js\n */\nimport config from '../config'\n\nconst {\n color\n} = config\nexport default {\n // link超链接组件props参数\n link: {\n color: color['u-primary'],\n fontSize: 15,\n underLine: false,\n href: '',\n mpTips: '链接已复制,请在浏览器打开',\n lineColor: '',\n text: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:14:53\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/list.js\n */\nexport default {\n // list 组件\n list: {\n showScrollbar: false,\n lowerThreshold: 50,\n upperThreshold: 0,\n scrollTop: 0,\n offsetAccuracy: 10,\n enableFlex: false,\n pagingEnabled: false,\n scrollable: true,\n scrollIntoView: '',\n scrollWithAnimation: false,\n enableBackToTop: false,\n height: 0,\n width: 0,\n preLoadScreen: 1\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:15:40\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/listItem.js\n */\nexport default {\n // listItem 组件\n listItem: {\n anchor: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:45:47\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/loadingIcon.js\n */\nimport config from '../config'\n\nconst {\n color\n} = config\nexport default {\n // loading-icon加载中图标组件\n loadingIcon: {\n show: true,\n color: color['u-tips-color'],\n textColor: color['u-tips-color'],\n vertical: false,\n mode: 'spinner',\n size: 24,\n textSize: 15,\n text: '',\n timingFunction: 'ease-in-out',\n duration: 1200,\n inactiveColor: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:00:23\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/loadingPage.js\n */\nexport default {\n // loading-page组件\n loadingPage: {\n loadingText: '正在加载',\n image: '',\n loadingMode: 'circle',\n loading: false,\n bgColor: '#ffffff',\n color: '#C8C8C8',\n fontSize: 19,\n iconSize: 28,\n loadingColor: '#C8C8C8'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:15:26\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/loadmore.js\n */\nexport default {\n // loadmore 组件\n loadmore: {\n status: 'loadmore',\n bgColor: 'transparent',\n icon: true,\n fontSize: 14,\n\t\ticonSize: 17,\n color: '#606266',\n loadingIcon: 'spinner',\n loadmoreText: '加载更多',\n loadingText: '正在加载...',\n nomoreText: '没有更多了',\n isDot: false,\n iconColor: '#b7b7b7',\n marginTop: 10,\n marginBottom: 10,\n height: 'auto',\n line: false,\n\t\tlineColor: '#E6E8EB',\n\t\tdashed: false,\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:15:59\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/modal.js\n */\nexport default {\n // modal 组件\n modal: {\n show: false,\n title: '',\n content: '',\n confirmText: '确认',\n cancelText: '取消',\n showConfirmButton: true,\n showCancelButton: false,\n confirmColor: '#2979ff',\n cancelColor: '#606266',\n buttonReverse: false,\n zoom: true,\n asyncClose: false,\n closeOnClickOverlay: false,\n negativeTop: 0,\n width: '650rpx',\n confirmButtonShape: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:16:18\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/navbar.js\n */\nimport color from '../color'\nexport default {\n // navbar 组件\n navbar: {\n safeAreaInsetTop: true,\n placeholder: false,\n fixed: true,\n border: false,\n leftIcon: 'arrow-left',\n leftText: '',\n rightText: '',\n rightIcon: '',\n title: '',\n bgColor: '#ffffff',\n titleWidth: '400rpx',\n height: '44px',\n\t\tleftIconSize: 20,\n\t\tleftIconColor: color.mainColor,\n\t\tautoBack: false,\n\t\ttitleStyle: ''\n }\n\n}\n","// 为了让用户能够自定义主题,会逐步弃用此文件,各颜色通过css提供\r\n// 为了给某些特殊场景使用和向后兼容,无需删除此文件(2020-06-20)\r\nconst color = {\r\n primary: '#3c9cff',\r\n info: '#909399',\r\n default: '#909399',\r\n warning: '#f9ae3d',\r\n error: '#f56c6c',\r\n success: '#5ac725',\r\n mainColor: '#303133',\r\n contentColor: '#606266',\r\n tipsColor: '#909399',\r\n lightColor: '#c0c4cc',\r\n borderColor: '#e4e7ed'\r\n}\r\n\r\nexport default color\r\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:16:39\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/noNetwork.js\n */\nexport default {\n // noNetwork\n noNetwork: {\n tips: '哎呀,网络信号丢失',\n zIndex: '',\n image: 'data:image/png;base64,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'\n }\n\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:17:13\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/noticeBar.js\n */\nexport default {\n // noticeBar\n noticeBar: {\n text: () => [],\n direction: 'row',\n step: false,\n icon: 'volume',\n mode: '',\n color: '#f9ae3d',\n bgColor: '#fdf6ec',\n speed: 80,\n fontSize: 14,\n duration: 2000,\n disableTouch: true,\n url: '',\n linkType: 'navigateTo'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:10:21\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/notify.js\n */\nexport default {\n // notify组件\n notify: {\n top: 0,\n type: 'primary',\n color: '#ffffff',\n bgColor: '',\n message: '',\n duration: 3000,\n fontSize: 15,\n safeAreaInsetTop: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:11:46\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/numberBox.js\n */\nexport default {\n // 步进器组件\n numberBox: {\n name: '',\n value: 0,\n min: 1,\n max: Number.MAX_SAFE_INTEGER,\n step: 1,\n integer: false,\n disabled: false,\n disabledInput: false,\n asyncChange: false,\n inputWidth: 35,\n showMinus: true,\n showPlus: true,\n decimalLength: null,\n longPress: true,\n color: '#323233',\n buttonSize: 30,\n bgColor: '#EBECEE',\n cursorSpacing: 100,\n disableMinus: false,\n disablePlus: false,\n iconStyle: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:08:05\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/numberKeyboard.js\n */\nexport default {\n // 数字键盘\n numberKeyboard: {\n mode: 'number',\n dotDisabled: false,\n random: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:06:50\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/overlay.js\n */\nexport default {\n // overlay组件\n overlay: {\n show: false,\n zIndex: 10070,\n duration: 300,\n opacity: 0.5\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:17:33\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/parse.js\n */\nexport default {\n // parse\n parse: {\n copyLink: true,\n errorImg: '',\n lazyLoad: false,\n loadingImg: '',\n pauseVideo: true,\n previewImg: true,\n setTitle: true,\n showImgMenu: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:18:20\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/picker.js\n */\nexport default {\n // picker\n picker: {\n show: false,\n showToolbar: true,\n title: '',\n columns: () => [],\n loading: false,\n itemHeight: 44,\n cancelText: '取消',\n confirmText: '确定',\n cancelColor: '#909193',\n confirmColor: '#3c9cff',\n visibleItemCount: 5,\n keyName: 'text',\n closeOnClickOverlay: false,\n defaultIndex: () => [],\n\t\timmediateChange: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:06:33\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/popup.js\n */\nexport default {\n // popup组件\n popup: {\n show: false,\n overlay: true,\n mode: 'bottom',\n duration: 300,\n closeable: false,\n overlayStyle: () => {},\n closeOnClickOverlay: true,\n zIndex: 10075,\n safeAreaInsetBottom: true,\n safeAreaInsetTop: false,\n closeIconPos: 'top-right',\n round: 0,\n zoom: true,\n bgColor: '',\n overlayOpacity: 0.5\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:02:34\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/radio.js\n */\nexport default {\n // radio组件\n radio: {\n name: '',\n shape: '',\n disabled: '',\n labelDisabled: '',\n activeColor: '',\n inactiveColor: '',\n iconSize: '',\n labelSize: '',\n label: '',\n labelColor: '',\n size: '',\n iconColor: '',\n placement: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:03:12\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/radioGroup.js\n */\nexport default {\n // radio-group组件\n radioGroup: {\n value: '',\n disabled: false,\n shape: 'circle',\n activeColor: '#2979ff',\n inactiveColor: '#c8c9cc',\n name: '',\n size: 18,\n placement: 'row',\n label: '',\n labelColor: '#303133',\n labelSize: 14,\n labelDisabled: false,\n iconColor: '#ffffff',\n iconSize: 12,\n borderBottom: false,\n iconPlacement: 'left'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:05:09\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/rate.js\n */\nexport default {\n // rate组件\n rate: {\n value: 1,\n count: 5,\n disabled: false,\n size: 18,\n inactiveColor: '#b2b2b2',\n activeColor: '#FA3534',\n gutter: 4,\n minCount: 1,\n allowHalf: false,\n activeIcon: 'star-fill',\n inactiveIcon: 'star',\n touchable: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:18:41\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/readMore.js\n */\nexport default {\n // readMore\n readMore: {\n showHeight: 400,\n toggle: false,\n closeText: '展开阅读全文',\n openText: '收起',\n color: '#2979ff',\n fontSize: 14,\n textIndent: '2em',\n name: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:18:58\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/row.js\n */\nexport default {\n // row\n row: {\n gutter: 0,\n justify: 'start',\n align: 'center'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:19:13\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/rowNotice.js\n */\nexport default {\n // rowNotice\n rowNotice: {\n text: '',\n icon: 'volume',\n mode: '',\n color: '#f9ae3d',\n bgColor: '#fdf6ec',\n fontSize: 14,\n speed: 80\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:19:28\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/scrollList.js\n */\nexport default {\n // scrollList\n scrollList: {\n indicatorWidth: 50,\n indicatorBarWidth: 20,\n indicator: true,\n indicatorColor: '#f2f2f2',\n indicatorActiveColor: '#3c9cff',\n indicatorStyle: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:19:45\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/search.js\n */\nexport default {\n // search\n search: {\n shape: 'round',\n bgColor: '#f2f2f2',\n placeholder: '请输入关键字',\n clearabled: true,\n focus: false,\n showAction: true,\n actionStyle: () => ({}),\n actionText: '搜索',\n inputAlign: 'left',\n inputStyle: () => ({}),\n disabled: false,\n borderColor: 'transparent',\n searchIconColor: '#909399',\n searchIconSize: 22,\n color: '#606266',\n placeholderColor: '#909399',\n searchIcon: 'search',\n margin: '0',\n animation: false,\n value: '',\n maxlength: '-1',\n height: 32,\n label: null\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:07:33\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/section.js\n */\nexport default {\n // u-section组件\n section: {\n title: '',\n subTitle: '更多',\n right: true,\n fontSize: 15,\n bold: true,\n color: '#303133',\n subColor: '#909399',\n showLine: true,\n lineColor: '',\n arrow: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:20:14\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/skeleton.js\n */\nexport default {\n // skeleton\n skeleton: {\n loading: true,\n animate: true,\n rows: 0,\n rowsWidth: '100%',\n rowsHeight: 18,\n title: true,\n titleWidth: '50%',\n titleHeight: 18,\n avatar: false,\n avatarSize: 32,\n avatarShape: 'circle'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:08:25\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/slider.js\n */\nexport default {\n // slider组件\n slider: {\n value: 0,\n blockSize: 18,\n min: 0,\n max: 100,\n step: 1,\n activeColor: '#2979ff',\n inactiveColor: '#c0c4cc',\n blockColor: '#ffffff',\n showValue: false,\n\t\tdisabled:false,\n blockStyle: () => {}\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:20:39\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/statusBar.js\n */\nexport default {\n // statusBar\n statusBar: {\n bgColor: 'transparent'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:12:37\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/steps.js\n */\nexport default {\n // steps组件\n steps: {\n direction: 'row',\n current: 0,\n activeColor: '#3c9cff',\n inactiveColor: '#969799',\n activeIcon: '',\n inactiveIcon: '',\n dot: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:12:55\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/stepsItem.js\n */\nexport default {\n // steps-item组件\n stepsItem: {\n title: '',\n desc: '',\n iconSize: 17,\n error: false\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:01:30\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/sticky.js\n */\nexport default {\n // sticky组件\n sticky: {\n offsetTop: 0,\n customNavHeight: 0,\n disabled: false,\n bgColor: 'transparent',\n zIndex: '',\n index: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:12:20\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/subsection.js\n */\nexport default {\n // subsection组件\n subsection: {\n list: [],\n current: 0,\n activeColor: '#3c9cff',\n inactiveColor: '#303133',\n mode: 'button',\n fontSize: 12,\n bold: true,\n bgColor: '#eeeeef',\n\t\tkeyName: 'name'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:00:42\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/swipeAction.js\n */\nexport default {\n // swipe-action组件\n swipeAction: {\n autoClose: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:01:13\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/swipeActionItem.js\n */\nexport default {\n // swipeActionItem 组件\n swipeActionItem: {\n show: false,\n name: '',\n disabled: false,\n threshold: 20,\n autoClose: true,\n options: [],\n duration: 300\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:21:38\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/swiper.js\n */\nexport default {\n // swiper 组件\n swiper: {\n list: () => [],\n indicator: false,\n indicatorActiveColor: '#FFFFFF',\n indicatorInactiveColor: 'rgba(255, 255, 255, 0.35)',\n indicatorStyle: '',\n indicatorMode: 'line',\n autoplay: true,\n current: 0,\n currentItemId: '',\n interval: 3000,\n duration: 300,\n circular: false,\n previousMargin: 0,\n nextMargin: 0,\n acceleration: false,\n displayMultipleItems: 1,\n easingFunction: 'default',\n keyName: 'url',\n imgMode: 'aspectFill',\n height: 130,\n bgColor: '#f3f4f6',\n radius: 4,\n loading: false,\n showTitle: false\n }\n\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:22:07\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/swiperIndicator.js\n */\nexport default {\n // swiperIndicator 组件\n swiperIndicator: {\n length: 0,\n current: 0,\n indicatorActiveColor: '',\n indicatorInactiveColor: '',\n\t\tindicatorMode: 'line'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:22:24\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/switch.js\n */\nexport default {\n // switch\n switch: {\n loading: false,\n disabled: false,\n size: 25,\n activeColor: '#2979ff',\n inactiveColor: '#ffffff',\n value: false,\n activeValue: true,\n inactiveValue: false,\n asyncChange: false,\n space: 0\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:22:40\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/tabbar.js\n */\nexport default {\n // tabbar\n tabbar: {\n value: null,\n safeAreaInsetBottom: true,\n border: true,\n zIndex: 1,\n activeColor: '#1989fa',\n inactiveColor: '#7d7e80',\n fixed: true,\n placeholder: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:22:55\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/tabbarItem.js\n */\nexport default {\n //\n tabbarItem: {\n name: null,\n icon: '',\n badge: null,\n dot: false,\n text: '',\n badgeStyle: 'top: 6px;right:2px;'\n }\n}\n","/*\r\n * @Author : LQ\r\n * @Description :\r\n * @version : 1.0\r\n * @Date : 2021-08-20 16:44:21\r\n * @LastAuthor : LQ\r\n * @lastTime : 2021-08-20 17:23:14\r\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/tabs.js\r\n */\r\nexport default {\r\n //\r\n tabs: {\r\n duration: 300,\r\n list: () => [],\r\n lineColor: '#3c9cff',\r\n activeStyle: () => ({\r\n color: '#303133'\r\n }),\r\n inactiveStyle: () => ({\r\n color: '#606266'\r\n }),\r\n lineWidth: 20,\r\n lineHeight: 3,\r\n lineBgSize: 'cover',\r\n itemStyle: () => ({\r\n height: '44px'\r\n }),\r\n scrollable: true,\r\n\t\tcurrent: 0,\r\n\t\tkeyName: 'name'\r\n }\r\n}\r\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:23:37\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/tag.js\n */\nexport default {\n // tag 组件\n tag: {\n type: 'primary',\n disabled: false,\n size: 'medium',\n shape: 'square',\n text: '',\n bgColor: '',\n color: '',\n borderColor: '',\n closeColor: '#C6C7CB',\n name: '',\n plainFill: false,\n plain: false,\n closable: false,\n show: true,\n icon: ''\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:23:58\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/text.js\n */\nexport default {\n // text 组件\n text: {\n type: '',\n show: true,\n text: '',\n prefixIcon: '',\n suffixIcon: '',\n mode: '',\n href: '',\n format: '',\n call: false,\n openType: '',\n bold: false,\n block: false,\n lines: '',\n color: '#303133',\n size: 15,\n iconStyle: () => ({\n fontSize: '15px'\n }),\n decoration: 'none',\n margin: 0,\n lineHeight: '',\n align: 'left',\n wordWrap: 'normal'\n }\n\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:24:32\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/textarea.js\n */\nexport default {\n\t// textarea 组件\n\ttextarea: {\n\t\tvalue: '',\n\t\tplaceholder: '',\n\t\tplaceholderClass: 'textarea-placeholder',\n\t\tplaceholderStyle: 'color: #c0c4cc',\n\t\theight: 70,\n\t\tconfirmType: 'done',\n\t\tdisabled: false,\n\t\tcount: false,\n\t\tfocus: false,\n\t\tautoHeight: false,\n\t\tfixed: false,\n\t\tcursorSpacing: 0,\n\t\tcursor: '',\n\t\tshowConfirmBar: true,\n\t\tselectionStart: -1,\n\t\tselectionEnd: -1,\n\t\tadjustPosition: true,\n\t\tdisableDefaultPadding: false,\n\t\tholdKeyboard: false,\n\t\tmaxlength: 140,\n\t\tborder: 'surround',\n\t\tformatter: null\n\t}\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:07:07\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/toast.js\n */\nexport default {\n // toast组件\n toast: {\n zIndex: 10090,\n loading: false,\n text: '',\n icon: '',\n type: '',\n loadingMode: '',\n show: '',\n overlay: false,\n position: 'center',\n params: () => {},\n duration: 2000,\n isTab: false,\n url: '',\n callback: null,\n back: false\n }\n\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:24:55\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/toolbar.js\n */\nexport default {\n // toolbar 组件\n toolbar: {\n show: true,\n cancelText: '取消',\n confirmText: '确认',\n cancelColor: '#909193',\n confirmColor: '#3c9cff',\n title: ''\n }\n\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:25:14\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/tooltip.js\n */\nexport default {\n // tooltip 组件\n tooltip: {\n text: '',\n copyText: '',\n size: 14,\n color: '#606266',\n bgColor: 'transparent',\n direction: 'top',\n zIndex: 10071,\n showCopy: true,\n buttons: () => [],\n overlay: true,\n showToast: true\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 16:59:00\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/transition.js\n */\nexport default {\n // transition动画组件的props\n transition: {\n show: false,\n mode: 'fade',\n duration: '300',\n timingFunction: 'ease-out'\n }\n}\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-20 16:44:21\n * @LastAuthor : LQ\n * @lastTime : 2021-08-20 17:09:50\n * @FilePath : /u-view2.0/uview-ui/libs/config/props/upload.js\n */\nexport default {\n\t// upload组件\n\tupload: {\n\t\taccept: 'image',\n\t\tcapture: () => ['album', 'camera'],\n\t\tcompressed: true,\n\t\tcamera: 'back',\n\t\tmaxDuration: 60,\n\t\tuploadIcon: 'camera-fill',\n\t\tuploadIconColor: '#D3D4D6',\n\t\tuseBeforeRead: false,\n\t\tpreviewFullImage: true,\n\t\tmaxCount: 52,\n\t\tdisabled: false,\n\t\timageMode: 'aspectFill',\n\t\tname: '',\n\t\tsizeType: () => ['original', 'compressed'],\n\t\tmultiple: false,\n\t\tdeletable: true,\n\t\tmaxSize: Number.MAX_VALUE,\n\t\tfileList: () => [],\n\t\tuploadText: '',\n\t\twidth: 80,\n\t\theight: 80,\n\t\tpreviewImage: true\n\t}\n}\n","// uniapp在H5中各API的z-index值如下:\r\n/**\r\n * actionsheet: 999\r\n * modal: 999\r\n * navigate: 998\r\n * tabbar: 998\r\n * toast: 999\r\n */\r\n\r\nexport default {\r\n toast: 10090,\r\n noNetwork: 10080,\r\n // popup包含popup,actionsheet,keyboard,picker的值\r\n popup: 10075,\r\n mask: 10070,\r\n navbar: 980,\r\n topTips: 975,\r\n sticky: 970,\r\n indexListSticky: 965\r\n}\r\n","/**\n * 注意:\n * 此部分内容,在vue-cli模式下,需要在vue.config.js加入如下内容才有效:\n * module.exports = {\n * transpileDependencies: ['uview-v2']\n * }\n */\n\nlet platform = 'none'\n\n\n\n\n\n\nplatform = 'vue2'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nplatform = 'weixin'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nplatform = 'mp'\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nexport default platform\n","import fly from '@/utils/request.js'\r\n\r\nexport function getNewInform(data){\r\n\treturn fly.get('/system/notice/newInform',{number:data}).then(res=>res)\r\n}\r\n\r\nexport function getNewNotice(){\r\n\treturn fly.get('/system/notice/newNotice',{number:data}).then(res=>res)\r\n}\r\n\r\nexport function getNoticeDetail(id){\r\n\treturn fly.get(`/system/notice/${id}`).then(res=>res)\r\n}","import baseUrl from '@/utils/baseurl.js'\r\nimport { getToken } from '@/utils/auth';\r\nimport errorCode from '@/utils/errorCode';\r\nlet Fly = require(\"flyio/dist/npm/wx\")\r\nlet fly = new Fly\r\n\r\n//设置超时\r\nfly.config.timeout = 30000;\r\n//设置请求基地址\r\nfly.config.baseURL = baseUrl;\r\n\r\nfly.interceptors.request.use((config) => {\r\n // 在发送请求之前做些什么\r\n\t// if(isLoading){\r\n\t// \tconsole.log(isLoading,222)\r\n\t// \tuni.showLoading({\r\n\t// \t\ttitle: \"加载中\",\r\n\t// \t\tmask: true,\r\n\t// \t})\r\n\t// }\r\n\tconst isToken = (config.headers || {}).isToken === false\r\n\tif (getToken() && !isToken) {\r\n\t\tconfig.headers['Authorization'] = `Bearer ${getToken()}`;\r\n\t}\r\n return config\r\n}, function(error) {\r\n // 对请求错误做些什么\r\n\t// if(isLoading){\r\n\t// \tuni.hideLoading();\r\n\t// }\r\n\tuni.showToast({\r\n\t\ttitle: error,\r\n\t\ticon:'none'\r\n\t});\r\n return Promise.reject(error)\r\n})\r\n\r\n// 添加响应拦截器\r\nfly.interceptors.response.use((res) => {\r\n // 对响应数据做些事\r\n\tconst { code, msg, data } = res.data\r\n\tconst rescode = code || 200;\r\n\t// 获取错误信息\r\n\tconst resmsg = errorCode[rescode] || msg || errorCode['default']\r\n\t// 二进制数据则直接返回\r\n\t// if(isLoading){\r\n\t// \tuni.hideLoading();\r\n\t// }\r\n\tif(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){\r\n\t return resmsg\r\n\t}\r\n\tif (rescode === 401) {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\twx.showModal({\r\n\t\t title: '系统提示',\r\n\t\t content: '请先进行登录',\r\n\t\t mask:true,\r\n\t\t success (res) {\r\n\t\t if (res.confirm) {\r\n\t\t uni.reLaunch({\r\n\t\t \turl:\"/pages/logo/index\"\r\n\t\t }) \r\n\t\t } else if (res.cancel) {\r\n\t\t console.log('用户点击取消')\r\n\t\t }\r\n\t\t }\r\n\t\t})\r\n\r\n\t} else if (rescode === 500) {\r\n\t\tuni.showToast({\r\n\t\t\ttitle: resmsg,\r\n\t\t\ticon:'none'\r\n\t\t});\r\n\t\treturn Promise.reject(new Error(resmsg))\r\n\t} else if (rescode !== 200) {\r\n\t\tuni.showToast({\r\n\t\t\ttitle: resmsg,\r\n\t\t\ticon:'none'\r\n\t\t});\r\n\t\treturn Promise.reject('error')\r\n\t} else {\r\n\t\treturn data\r\n\t}\r\n}, (error) => {\r\n\tconst { message } = error.message\r\n\tuni.showToast({\r\n\t\ttitle: message,\r\n\t\tduration: 5*1000,\r\n\t\ticon:'none'\r\n\t});\r\n return Promise.reject(error);\r\n})\r\nexport default fly;","let devUrl = 'http://192.168.0.100:80/dev-api';\nlet prodUrl = 'http://localhost:8089/prod-api';\nlet baseUrl = process.env.NODE_ENV === 'development' ? devUrl : prodUrl;\n\nexport default baseUrl;\n","export default {\n '401': '认证失败,无法访问系统资源',\n '403': '当前操作没有权限',\n '404': '访问资源不存在',\n 'default': '系统未知错误,请反馈给管理员'\n}","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 13);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = {\n type: function type(ob) {\n return Object.prototype.toString.call(ob).slice(8, -1).toLowerCase();\n },\n isObject: function isObject(ob, real) {\n if (real) {\n return this.type(ob) === \"object\";\n } else {\n return ob && (typeof ob === 'undefined' ? 'undefined' : _typeof(ob)) === 'object';\n }\n },\n isFormData: function isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n },\n trim: function trim(str) {\n return str.replace(/(^\\s*)|(\\s*$)/g, '');\n },\n encode: function encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n },\n formatParams: function formatParams(data) {\n var str = \"\";\n var first = true;\n var that = this;\n if (!this.isObject(data)) {\n return data;\n }\n\n function _encode(sub, path) {\n var encode = that.encode;\n var type = that.type(sub);\n if (type == \"array\") {\n sub.forEach(function (e, i) {\n if (!that.isObject(e)) i = \"\";\n _encode(e, path + ('%5B' + i + '%5D'));\n });\n } else if (type == \"object\") {\n for (var key in sub) {\n if (path) {\n _encode(sub[key], path + \"%5B\" + encode(key) + \"%5D\");\n } else {\n _encode(sub[key], encode(key));\n }\n }\n } else {\n if (!first) {\n str += \"&\";\n }\n first = false;\n str += path + \"=\" + encode(sub);\n }\n }\n\n _encode(data, \"\");\n return str;\n },\n\n // Do not overwrite existing attributes\n merge: function merge(a, b) {\n for (var key in b) {\n if (!a.hasOwnProperty(key)) {\n a[key] = b[key];\n } else if (this.isObject(b[key], 1) && this.isObject(a[key], 1)) {\n this.merge(a[key], b[key]);\n }\n }\n return a;\n }\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction KEEP(_,cb){cb();}\n\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n * author: wendu\n * email: 824783146@qq.com\n **/\n\nvar util = __webpack_require__(0);\nvar isBrowser = typeof document !== \"undefined\";\n\n//EngineWrapper can help generating a http engine quickly through a adapter\nfunction EngineWrapper(adapter) {\n var AjaxEngine = function () {\n function AjaxEngine() {\n _classCallCheck(this, AjaxEngine);\n\n this.requestHeaders = {};\n this.readyState = 0;\n this.timeout = 0; // 0 stands for no timeout\n this.responseURL = \"\";\n this.responseHeaders = {};\n }\n\n _createClass(AjaxEngine, [{\n key: \"_call\",\n value: function _call(name) {\n this[name] && this[name].apply(this, [].splice.call(arguments, 1));\n }\n }, {\n key: \"_changeReadyState\",\n value: function _changeReadyState(state) {\n this.readyState = state;\n this._call(\"onreadystatechange\");\n }\n }, {\n key: \"open\",\n value: function open(method, url) {\n this.method = method;\n if (!url) {\n url = location.href;\n } else {\n url = util.trim(url);\n if (url.indexOf(\"http\") !== 0) {\n // Normalize the request url\n if (isBrowser) {\n var t = document.createElement(\"a\");\n t.href = url;\n url = t.href;\n }\n }\n }\n this.responseURL = url;\n this._changeReadyState(1);\n }\n }, {\n key: \"send\",\n value: function send(arg) {\n var _this = this;\n\n arg = arg || null;\n var self = this;\n if (adapter) {\n var request = {\n method: self.method,\n url: self.responseURL,\n headers: self.requestHeaders || {},\n body: arg\n };\n util.merge(request, self._options || {});\n if (request.method === \"GET\") {\n request.body = null;\n }\n self._changeReadyState(3);\n var timer = void 0;\n self.timeout = self.timeout || 0;\n if (self.timeout > 0) {\n timer = setTimeout(function () {\n if (self.readyState === 3) {\n _this._call(\"onloadend\");\n self._changeReadyState(0);\n self._call(\"ontimeout\");\n }\n }, self.timeout);\n }\n request.timeout = self.timeout;\n adapter(request, function (response) {\n\n function getAndDelete(key) {\n var t = response[key];\n delete response[key];\n return t;\n }\n\n // If the request has already timeout, return\n if (self.readyState !== 3) return;\n clearTimeout(timer);\n\n // Make sure the type of status is integer\n self.status = getAndDelete(\"statusCode\") - 0;\n\n var responseText = getAndDelete(\"responseText\");\n var statusMessage = getAndDelete(\"statusMessage\");\n\n // Network error, set the status code 0\n if (!self.status) {\n self.statusText = responseText;\n self._call(\"onerror\", { msg: statusMessage });\n } else {\n // Parsing the response headers to array in a object, because\n // there may be multiple values with the same header name\n var responseHeaders = getAndDelete(\"headers\");\n var headers = {};\n for (var field in responseHeaders) {\n var value = responseHeaders[field];\n var key = field.toLowerCase();\n // Is array\n if ((typeof value === \"undefined\" ? \"undefined\" : _typeof(value)) === \"object\") {\n headers[key] = value;\n } else {\n headers[key] = headers[key] || [];\n headers[key].push(value);\n }\n }\n var cookies = headers[\"set-cookie\"];\n if (isBrowser && cookies) {\n cookies.forEach(function (e) {\n // Remove the http-Only property of the cookie\n // so that JavaScript can operate it.\n document.cookie = e.replace(/;\\s*httpOnly/ig, \"\");\n });\n }\n self.responseHeaders = headers;\n // Set the fields of engine from response\n self.statusText = statusMessage || \"\";\n self.response = self.responseText = responseText;\n self._response = response;\n self._changeReadyState(4);\n self._call(\"onload\");\n }\n self._call(\"onloadend\");\n });\n } else {\n console.error(\"Ajax require adapter\");\n }\n }\n }, {\n key: \"setRequestHeader\",\n value: function setRequestHeader(key, value) {\n this.requestHeaders[util.trim(key)] = value;\n }\n }, {\n key: \"getResponseHeader\",\n value: function getResponseHeader(key) {\n return (this.responseHeaders[key.toLowerCase()] || \"\").toString() || null;\n }\n }, {\n key: \"getAllResponseHeaders\",\n value: function getAllResponseHeaders() {\n var str = \"\";\n for (var key in this.responseHeaders) {\n str += key + \":\" + this.getResponseHeader(key) + \"\\r\\n\";\n }\n return str || null;\n }\n }, {\n key: \"abort\",\n value: function abort(msg) {\n this._changeReadyState(0);\n this._call(\"onerror\", { msg: msg });\n this._call(\"onloadend\");\n }\n }], [{\n key: \"setAdapter\",\n value: function setAdapter(requestAdapter) {\n adapter = requestAdapter;\n }\n }]);\n\n return AjaxEngine;\n }();\n\n return AjaxEngine;\n}\n\n// learn more about keep-loader: https://github.com/wendux/keep-loader\n;\nmodule.exports = EngineWrapper;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction KEEP(_,cb){cb();}\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar utils = __webpack_require__(0);\nvar isBrowser = typeof document !== \"undefined\";\n\nvar Fly = function () {\n function Fly(engine) {\n _classCallCheck(this, Fly);\n\n this.engine = engine || XMLHttpRequest;\n\n this.default = this; //For typeScript\n\n /**\n * Add lock/unlock API for interceptor.\n *\n * Once an request/response interceptor is locked, the incoming request/response\n * will be added to a queue before they enter the interceptor, they will not be\n * continued until the interceptor is unlocked.\n *\n * @param [interceptor] either is interceptors.request or interceptors.response\n */\n function wrap(interceptor) {\n var resolve = void 0;\n var reject = void 0;\n\n function _clear() {\n interceptor.p = resolve = reject = null;\n }\n\n utils.merge(interceptor, {\n lock: function lock() {\n if (!resolve) {\n interceptor.p = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n }\n },\n unlock: function unlock() {\n if (resolve) {\n resolve();\n _clear();\n }\n },\n clear: function clear() {\n if (reject) {\n reject(\"cancel\");\n _clear();\n }\n }\n });\n }\n\n var interceptors = this.interceptors = {\n response: {\n use: function use(handler, onerror) {\n this.handler = handler;\n this.onerror = onerror;\n }\n },\n request: {\n use: function use(handler) {\n this.handler = handler;\n }\n }\n };\n\n var irq = interceptors.request;\n var irp = interceptors.response;\n wrap(irp);\n wrap(irq);\n\n this.config = {\n method: \"GET\",\n baseURL: \"\",\n headers: {},\n timeout: 0,\n params: {}, // Default Url params\n parseJson: true, // Convert response data to JSON object automatically.\n withCredentials: false\n };\n }\n\n _createClass(Fly, [{\n key: \"request\",\n value: function request(url, data, options) {\n var _this = this;\n\n var engine = new this.engine();\n var contentType = \"Content-Type\";\n var contentTypeLowerCase = contentType.toLowerCase();\n var interceptors = this.interceptors;\n var requestInterceptor = interceptors.request;\n var responseInterceptor = interceptors.response;\n var requestInterceptorHandler = requestInterceptor.handler;\n var promise = new Promise(function (resolve, reject) {\n if (utils.isObject(url)) {\n options = url;\n url = options.url;\n }\n options = options || {};\n options.headers = options.headers || {};\n\n function isPromise(p) {\n // some polyfill implementation of Promise may be not standard,\n // so, we test by duck-typing\n return p && p.then && p.catch;\n }\n\n /**\n * If the request/response interceptor has been locked,\n * the new request/response will enter a queue. otherwise, it will be performed directly.\n * @param [promise] if the promise exist, means the interceptor is locked.\n * @param [callback]\n */\n function enqueueIfLocked(promise, callback) {\n if (promise) {\n promise.then(function () {\n callback();\n });\n } else {\n callback();\n }\n }\n\n // make the http request\n function makeRequest(options) {\n data = options.body;\n // Normalize the request url\n url = utils.trim(options.url);\n var baseUrl = utils.trim(options.baseURL || \"\");\n if (!url && isBrowser && !baseUrl) url = location.href;\n if (url.indexOf(\"http\") !== 0) {\n var isAbsolute = url[0] === \"/\";\n if (!baseUrl && isBrowser) {\n var arr = location.pathname.split(\"/\");\n arr.pop();\n baseUrl = location.protocol + \"//\" + location.host + (isAbsolute ? \"\" : arr.join(\"/\"));\n }\n if (baseUrl[baseUrl.length - 1] !== \"/\") {\n baseUrl += \"/\";\n }\n url = baseUrl + (isAbsolute ? url.substr(1) : url);\n if (isBrowser) {\n\n // Normalize the url which contains the \"..\" or \".\", such as\n // \"http://xx.com/aa/bb/../../xx\" to \"http://xx.com/xx\" .\n var t = document.createElement(\"a\");\n t.href = url;\n url = t.href;\n }\n }\n\n var responseType = utils.trim(options.responseType || \"\");\n var needQuery = [\"GET\", \"HEAD\", \"DELETE\", \"OPTION\"].indexOf(options.method) !== -1;\n var dataType = utils.type(data);\n var params = options.params || {};\n\n // merge url params when the method is \"GET\" (data is object)\n if (needQuery && dataType === \"object\") {\n params = utils.merge(data, params);\n }\n // encode params to String\n params = utils.formatParams(params);\n\n // save url params\n var _params = [];\n if (params) {\n _params.push(params);\n }\n // Add data to url params when the method is \"GET\" (data is String)\n if (needQuery && data && dataType === \"string\") {\n _params.push(data);\n }\n\n // make the final url\n if (_params.length > 0) {\n url += (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + _params.join(\"&\");\n }\n\n engine.open(options.method, url);\n\n // try catch for ie >=9\n try {\n engine.withCredentials = !!options.withCredentials;\n engine.timeout = options.timeout || 0;\n if (responseType !== \"stream\") {\n engine.responseType = responseType;\n }\n } catch (e) {}\n\n var customContentType = options.headers[contentType] || options.headers[contentTypeLowerCase];\n\n // default content type\n var _contentType = \"application/x-www-form-urlencoded\";\n // If the request data is json object, transforming it to json string,\n // and set request content-type to \"json\". In browser, the data will\n // be sent as RequestBody instead of FormData\n if (utils.trim((customContentType || \"\").toLowerCase()) === _contentType) {\n data = utils.formatParams(data);\n } else if (!utils.isFormData(data) && [\"object\", \"array\"].indexOf(utils.type(data)) !== -1) {\n _contentType = 'application/json;charset=utf-8';\n data = JSON.stringify(data);\n }\n //If user doesn't set content-type, set default.\n if (!(customContentType || needQuery)) {\n options.headers[contentType] = _contentType;\n }\n\n for (var k in options.headers) {\n if (k === contentType && utils.isFormData(data)) {\n // Delete the content-type, Let the browser set it\n delete options.headers[k];\n } else {\n try {\n // In browser environment, some header fields are readonly,\n // write will cause the exception .\n engine.setRequestHeader(k, options.headers[k]);\n } catch (e) {}\n }\n }\n\n function onresult(handler, data, type) {\n enqueueIfLocked(responseInterceptor.p, function () {\n if (handler) {\n //如果失败,添加请求信息\n if (type) {\n data.request = options;\n }\n var ret = handler.call(responseInterceptor, data, Promise);\n data = ret === undefined ? data : ret;\n }\n if (!isPromise(data)) {\n data = Promise[type === 0 ? \"resolve\" : \"reject\"](data);\n }\n data.then(function (d) {\n resolve(d);\n }).catch(function (e) {\n reject(e);\n });\n });\n }\n\n function onerror(e) {\n e.engine = engine;\n onresult(responseInterceptor.onerror, e, -1);\n }\n\n function Err(msg, status) {\n this.message = msg;\n this.status = status;\n }\n\n engine.onload = function () {\n try {\n // The xhr of IE9 has not response field\n var response = engine.response || engine.responseText;\n if (response && options.parseJson && (engine.getResponseHeader(contentType) || \"\").indexOf(\"json\") !== -1\n // Some third engine implementation may transform the response text to json object automatically,\n // so we should test the type of response before transforming it\n && !utils.isObject(response)) {\n response = JSON.parse(response);\n }\n\n var headers = engine.responseHeaders;\n // In browser\n if (!headers) {\n headers = {};\n var items = (engine.getAllResponseHeaders() || \"\").split(\"\\r\\n\");\n items.pop();\n items.forEach(function (e) {\n if (!e) return;\n var key = e.split(\":\")[0];\n headers[key] = engine.getResponseHeader(key);\n });\n }\n var status = engine.status;\n var statusText = engine.statusText;\n var _data = { data: response, headers: headers, status: status, statusText: statusText };\n // The _response filed of engine is set in adapter which be called in engine-wrapper.js\n utils.merge(_data, engine._response);\n if (status >= 200 && status < 300 || status === 304) {\n _data.engine = engine;\n _data.request = options;\n onresult(responseInterceptor.handler, _data, 0);\n } else {\n var e = new Err(statusText, status);\n e.response = _data;\n onerror(e);\n }\n } catch (e) {\n onerror(new Err(e.msg, engine.status));\n }\n };\n\n engine.onerror = function (e) {\n onerror(new Err(e.msg || \"Network Error\", 0));\n };\n\n engine.ontimeout = function () {\n onerror(new Err(\"timeout [ \" + engine.timeout + \"ms ]\", 1));\n };\n engine._options = options;\n setTimeout(function () {\n engine.send(needQuery ? null : data);\n }, 0);\n }\n\n enqueueIfLocked(requestInterceptor.p, function () {\n utils.merge(options, JSON.parse(JSON.stringify(_this.config)));\n var headers = options.headers;\n headers[contentType] = headers[contentType] || headers[contentTypeLowerCase] || \"\";\n delete headers[contentTypeLowerCase];\n options.body = data || options.body;\n url = utils.trim(url || \"\");\n options.method = options.method.toUpperCase();\n options.url = url;\n var ret = options;\n if (requestInterceptorHandler) {\n ret = requestInterceptorHandler.call(requestInterceptor, options, Promise) || options;\n }\n if (!isPromise(ret)) {\n ret = Promise.resolve(ret);\n }\n ret.then(function (d) {\n //if options continue\n if (d === options) {\n makeRequest(d);\n } else {\n resolve(d);\n }\n }, function (err) {\n reject(err);\n });\n });\n });\n promise.engine = engine;\n return promise;\n }\n }, {\n key: \"all\",\n value: function all(promises) {\n return Promise.all(promises);\n }\n }, {\n key: \"spread\",\n value: function spread(callback) {\n return function (arr) {\n return callback.apply(null, arr);\n };\n }\n }]);\n\n return Fly;\n}();\n\n//For typeScript\n\n\nFly.default = Fly;\n\n[\"get\", \"post\", \"put\", \"patch\", \"head\", \"delete\"].forEach(function (e) {\n Fly.prototype[e] = function (url, data, option) {\n return this.request(url, data, utils.merge({ method: e }, option));\n };\n});\n[\"lock\", \"unlock\", \"clear\"].forEach(function (e) {\n Fly.prototype[e] = function () {\n this.interceptors.request[e]();\n };\n});\n// Learn more about keep-loader: https://github.com/wendux/keep-loader\n;\nmodule.exports = Fly;\n\n/***/ }),\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//微信小程序适配器\nmodule.exports = function (request, responseCallback) {\n var con = {\n method: request.method,\n url: request.url,\n dataType: request.dataType || undefined,\n header: request.headers,\n data: request.body || {},\n responseType: request.responseType || 'text',\n success: function success(res) {\n responseCallback({\n statusCode: res.statusCode,\n responseText: res.data,\n headers: res.header,\n statusMessage: res.errMsg\n });\n },\n fail: function fail(res) {\n responseCallback({\n statusCode: res.statusCode || 0,\n statusMessage: res.errMsg\n });\n }\n };\n wx.request(con);\n};\n\n/***/ }),\n/* 8 */,\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n//微信小程序入口\nvar _Fly = __webpack_require__(2);\nvar EngineWrapper = __webpack_require__(1);\nvar adapter = __webpack_require__(7);\nvar wxEngine = EngineWrapper(adapter);\nmodule.exports = function (engine) {\n return new _Fly(engine || wxEngine);\n};\n\n/***/ })\n/******/ ]);\n});","import fly from '@/utils/request'\r\n//扫码或者根据关键词查询\r\nexport function searchAsset(data) {\r\n\treturn fly.get('/asset/asset/search',data).then(res=>res)\r\n}\r\n//获取全部的存放地点\r\nexport function getAllPlace() {\r\n\treturn fly.get('/asset/place/all').then(res=>res)\r\n}\r\n//借用设备\r\nexport function borrowAsset(borrowDate,returnDate,data) {\r\n\treturn fly.post(`/asset/borrow/save/${borrowDate}/${returnDate}`,data).then(res=>res)\r\n}\r\n//归还设备\r\nexport function returnAsset(barCode){\r\n\treturn fly.put(`/asset/borrow/return/${barCode}`).then(res=>res)\r\n}\r\n//获取借用设备记录\r\nexport function getBorrowList(data){\r\n\treturn fly.get('/asset/borrow/recordList',data).then(res=>res)\r\n}\r\n//获取已归还的记录详细\r\nexport function getReturnDetail(id){\r\n\treturn fly.get(`/asset/borrow/record/${id}`).then(res=>res)\r\n}\r\n//统计借用设备记录\r\nexport function sumBorrow(data){\r\n\treturn fly.get('/asset/borrow/recordCount',{status:data}).then(res=>res)\r\n}\r\n//故障上报\r\nexport function reportFault(data){\r\n\treturn fly.post('/asset/fault/save',data).then(res=>res)\r\n}\r\n//管理员故障处理列表\r\nexport function getFaultReport(){\r\n\treturn fly.get('/asset/fault/list').then(res=>res)\r\n}\r\n//管理员:获取故障详细,处理故障\r\nexport function getFaultDetail(id){\r\n\treturn fly.get(`/asset/fault/${id}`).then(res=>res)\r\n}\r\n//管理:故障处理\r\nexport function handleFaultReport(data){\r\n\treturn fly.put('/asset/fault/process',data).then(res=>res)\r\n}","import fly from '@/utils/request'\r\nexport function login(username, password) {\r\n const data = {\r\n username,\r\n password\r\n }\r\n return fly.post('/login',data,{headers:{isToken:false}}).then(res => res)\r\n}\r\n// 获取用户详细信息\r\nexport function getInfo() {\r\n return fly.get('/getInfo').then(res=>res)\r\n}\r\n//修改用户信息\r\nexport function saveUserInfo(data){\r\n\treturn fly.put('/system/user/profile',data).then(res=>res)\r\n}\r\n//修改用户密码\r\nexport function savePassword(oldPwd,newPwd){\r\n\treturn fly.put('/system/user/profile/updatePwd',{\r\n\t\toldPassword:oldPwd,\r\n\t\tnewPassword:newPwd\r\n\t}).then(res=>res)\r\n}\r\n//退出\r\nexport function logout(){\r\n\treturn fly.post('/logout').then(res=>res)\r\n}\r\n","const sessionCache = {\r\n\tset(key, value) {\r\n\t\t// if (!sessionStorage) {\r\n\t\t// \treturn\r\n\t\t// }\r\n\t\tif (key != null && value != null) {\r\n\t\t\tuni.setStorageSync(key, value)\r\n\t\t}\r\n\t},\r\n\tget(key) {\r\n\t\t// if (!sessionStorage) {\r\n\t\t// \treturn null\r\n\t\t// }\r\n\t\tif (key == null) {\r\n\t\t\treturn null\r\n\t\t}\r\n\t\treturn uni.getStorageSync(key)\r\n\t},\r\n\tsetJSON(key, jsonValue) {\r\n\t\tif (jsonValue != null) {\r\n\t\t\tthis.set(key, JSON.stringify(jsonValue))\r\n\t\t}\r\n\t},\r\n\tgetJSON(key) {\r\n\t\tconst value = this.get(key)\r\n\t\tif (value != null) {\r\n\t\t\treturn JSON.parse(value)\r\n\t\t}\r\n\t},\r\n\tremove(key) {\r\n\t\tuni.removeStorageSync(key);\r\n\t}\r\n}\r\n\r\n\r\nexport default {\r\n\tsession: sessionCache,\r\n}\r\n","module.exports = \"data:image/png;base64,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AUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQaABgf8PtPt2mjRdNicAAAAASUVORK5CYII=\"","\r\n\r\nexport function dateToString(val){\r\n\tfunction addZero(num) {\r\n\t\treturn num < 10 ? \"0\" + num : num;\r\n\t}\r\n\tlet date = new Date(val)\r\n\tlet year = date.getFullYear()\r\n\tlet month = date.getMonth()+1\r\n\tlet day = date.getDate()\r\n\tlet hour = date.getHours()\r\n\tlet min = addZero(date.getMinutes())\r\n\treturn year+\"-\"+month+\"-\"+day+\" \"+hour+\":\"+min;\r\n}\r\n\r\n/**\r\n * 通用js方法封装处理\r\n */\r\n\r\n// 日期格式化\r\nexport function parseTime(time, pattern) {\r\n if (arguments.length === 0 || !time) {\r\n return null\r\n }\r\n const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'\r\n let date\r\n if (typeof time === 'object') {\r\n date = time\r\n } else {\r\n if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {\r\n time = parseInt(time)\r\n } else if (typeof time === 'string') {\r\n time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\\.[\\d]{3}/gm), '');\r\n }\r\n if ((typeof time === 'number') && (time.toString().length === 10)) {\r\n time = time * 1000\r\n }\r\n date = new Date(time)\r\n }\r\n const formatObj = {\r\n y: date.getFullYear(),\r\n m: date.getMonth() + 1,\r\n d: date.getDate(),\r\n h: date.getHours(),\r\n i: date.getMinutes(),\r\n s: date.getSeconds(),\r\n a: date.getDay()\r\n }\r\n const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\r\n let value = formatObj[key]\r\n // Note: getDay() returns 0 on Sunday\r\n if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }\r\n if (result.length > 0 && value < 10) {\r\n value = '0' + value\r\n }\r\n return value || 0\r\n })\r\n return time_str\r\n}\r\n\r\n// 表单重置\r\nexport function resetForm(refName) {\r\n if (this.$refs[refName]) {\r\n this.$refs[refName].resetFields();\r\n }\r\n}\r\n\r\n// 添加日期范围\r\nexport function addDateRange(params, dateRange, propName) {\r\n let search = params;\r\n search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {};\r\n dateRange = Array.isArray(dateRange) ? dateRange : [];\r\n if (typeof (propName) === 'undefined') {\r\n search.params['beginTime'] = dateRange[0];\r\n search.params['endTime'] = dateRange[1];\r\n } else {\r\n search.params['begin' + propName] = dateRange[0];\r\n search.params['end' + propName] = dateRange[1];\r\n }\r\n return search;\r\n}\r\n\r\n// 回显数据字典\r\nexport function selectDictLabel(datas, value) {\r\n if (value === undefined) {\r\n return \"\";\r\n }\r\n var actions = [];\r\n Object.keys(datas).some((key) => {\r\n if (datas[key].value == ('' + value)) {\r\n actions.push(datas[key].label);\r\n return true;\r\n }\r\n })\r\n if (actions.length === 0) {\r\n actions.push(value);\r\n }\r\n return actions.join('');\r\n}\r\n\r\n// 回显数据字典(字符串数组)\r\nexport function selectDictLabels(datas, value, separator) {\r\n if (value === undefined) {\r\n return \"\";\r\n }\r\n var actions = [];\r\n var currentSeparator = undefined === separator ? \",\" : separator;\r\n var temp = value.split(currentSeparator);\r\n Object.keys(value.split(currentSeparator)).some((val) => {\r\n var match = false;\r\n Object.keys(datas).some((key) => {\r\n if (datas[key].value == ('' + temp[val])) {\r\n actions.push(datas[key].label + currentSeparator);\r\n match = true;\r\n }\r\n })\r\n if (!match) {\r\n actions.push(temp[val] + currentSeparator);\r\n }\r\n })\r\n return actions.join('').substring(0, actions.join('').length - 1);\r\n}\r\n\r\n// 字符串格式化(%s )\r\nexport function sprintf(str) {\r\n var args = arguments, flag = true, i = 1;\r\n str = str.replace(/%s/g, function () {\r\n var arg = args[i++];\r\n if (typeof arg === 'undefined') {\r\n flag = false;\r\n return '';\r\n }\r\n return arg;\r\n });\r\n return flag ? str : '';\r\n}\r\n\r\n// 转换字符串,undefined,null等转化为\"\"\r\nexport function parseStrEmpty(str) {\r\n if (!str || str == \"undefined\" || str == \"null\") {\r\n return \"\";\r\n }\r\n return str;\r\n}\r\n\r\n// 数据合并\r\nexport function mergeRecursive(source, target) {\r\n for (var p in target) {\r\n try {\r\n if (target[p].constructor == Object) {\r\n source[p] = mergeRecursive(source[p], target[p]);\r\n } else {\r\n source[p] = target[p];\r\n }\r\n } catch (e) {\r\n source[p] = target[p];\r\n }\r\n }\r\n return source;\r\n};\r\n\r\n/**\r\n * 构造树型结构数据\r\n * @param {*} data 数据源\r\n * @param {*} id id字段 默认 'id'\r\n * @param {*} parentId 父节点字段 默认 'parentId'\r\n * @param {*} children 孩子节点字段 默认 'children'\r\n */\r\nexport function handleTree(data, id, parentId, children) {\r\n let config = {\r\n id: id || 'id',\r\n parentId: parentId || 'parentId',\r\n childrenList: children || 'children'\r\n };\r\n\r\n var childrenListMap = {};\r\n var nodeIds = {};\r\n var tree = [];\r\n\r\n for (let d of data) {\r\n let parentId = d[config.parentId];\r\n if (childrenListMap[parentId] == null) {\r\n childrenListMap[parentId] = [];\r\n }\r\n nodeIds[d[config.id]] = d;\r\n childrenListMap[parentId].push(d);\r\n }\r\n\r\n for (let d of data) {\r\n let parentId = d[config.parentId];\r\n if (nodeIds[parentId] == null) {\r\n tree.push(d);\r\n }\r\n }\r\n\r\n for (let t of tree) {\r\n adaptToChildrenList(t);\r\n }\r\n\r\n function adaptToChildrenList(o) {\r\n if (childrenListMap[o[config.id]] !== null) {\r\n o[config.childrenList] = childrenListMap[o[config.id]];\r\n }\r\n if (o[config.childrenList]) {\r\n for (let c of o[config.childrenList]) {\r\n adaptToChildrenList(c);\r\n }\r\n }\r\n }\r\n return tree;\r\n}\r\n\r\n/**\r\n* 参数处理\r\n* @param {*} params 参数\r\n*/\r\nexport function tansParams(params) {\r\n let result = ''\r\n for (const propName of Object.keys(params)) {\r\n const value = params[propName];\r\n var part = encodeURIComponent(propName) + \"=\";\r\n if (value !== null && value !== \"\" && typeof (value) !== \"undefined\") {\r\n if (typeof value === 'object') {\r\n for (const key of Object.keys(value)) {\r\n if (value[key] !== null && value[key] !== \"\" && typeof (value[key]) !== 'undefined') {\r\n let params = propName + '[' + key + ']';\r\n var subPart = encodeURIComponent(params) + \"=\";\r\n result += subPart + encodeURIComponent(value[key]) + \"&\";\r\n }\r\n }\r\n } else {\r\n result += part + encodeURIComponent(value) + \"&\";\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\n// 验证是否为blob格式\r\nexport async function blobValidate(data) {\r\n try {\r\n const text = await data.text();\r\n JSON.parse(text);\r\n return false;\r\n } catch (error) {\r\n return true;\r\n }\r\n}\r\n\r\n","module.exports = \"data:image/png;base64,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QBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAQEAUFAEBAEBAFBQBAQBAQBQUAQEAR6FYH/D9s59mr01yO+AAAAAElFTkSuQmCC\"","export default {\n props: {\n // 搜索框形状,round-圆形,square-方形\n shape: {\n type: String,\n default: uni.$u.props.search.shape\n },\n // 搜索框背景色,默认值#f2f2f2\n bgColor: {\n type: String,\n default: uni.$u.props.search.bgColor\n },\n // 占位提示文字\n placeholder: {\n type: String,\n default: uni.$u.props.search.placeholder\n },\n // 是否启用清除控件\n clearabled: {\n type: Boolean,\n default: uni.$u.props.search.clearabled\n },\n // 是否自动聚焦\n focus: {\n type: Boolean,\n default: uni.$u.props.search.focus\n },\n // 是否在搜索框右侧显示取消按钮\n showAction: {\n type: Boolean,\n default: uni.$u.props.search.showAction\n },\n // 右边控件的样式\n actionStyle: {\n type: Object,\n default: uni.$u.props.search.actionStyle\n },\n // 取消按钮文字\n actionText: {\n type: String,\n default: uni.$u.props.search.actionText\n },\n // 输入框内容对齐方式,可选值为 left|center|right\n inputAlign: {\n type: String,\n default: uni.$u.props.search.inputAlign\n },\n // input输入框的样式,可以定义文字颜色,大小等,对象形式\n inputStyle: {\n type: Object,\n default: uni.$u.props.search.inputStyle\n },\n // 是否启用输入框\n disabled: {\n type: Boolean,\n default: uni.$u.props.search.disabled\n },\n // 边框颜色\n borderColor: {\n type: String,\n default: uni.$u.props.search.borderColor\n },\n // 搜索图标的颜色,默认同输入框字体颜色\n searchIconColor: {\n type: String,\n default: uni.$u.props.search.searchIconColor\n },\n // 输入框字体颜色\n color: {\n type: String,\n default: uni.$u.props.search.color\n },\n // placeholder的颜色\n placeholderColor: {\n type: String,\n default: uni.$u.props.search.placeholderColor\n },\n // 左边输入框的图标,可以为uView图标名称或图片路径\n searchIcon: {\n type: String,\n default: uni.$u.props.search.searchIcon\n },\n searchIconSize: {\n type: [Number, String],\n default: uni.$u.props.search.searchIconSize\n },\n // 组件与其他上下左右元素之间的距离,带单位的字符串形式,如\"30px\"、\"30px 20px\"等写法\n margin: {\n type: String,\n default: uni.$u.props.search.margin\n },\n // 开启showAction时,是否在input获取焦点时才显示\n animation: {\n type: Boolean,\n default: uni.$u.props.search.animation\n },\n // 输入框的初始化内容\n value: {\n type: String,\n default: uni.$u.props.search.value\n },\n // 输入框最大能输入的长度,-1为不限制长度(来自uniapp文档)\n maxlength: {\n type: [String, Number],\n default: uni.$u.props.search.maxlength\n },\n // 搜索框高度,单位px\n height: {\n type: [String, Number],\n default: uni.$u.props.search.height\n },\n // 搜索框左侧文本\n label: {\n type: [String, Number, null],\n default: uni.$u.props.search.label\n }\n }\n}\n","export default {\n\tprops: {\n\t\t// 输入的值\n\t\tvalue: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.input.value\n\t\t},\n\t\t// 输入框类型\n\t\t// number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数\n\t\t// idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序\n\t\t// digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序\n\t\t// text-文本输入键盘\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.type\n\t\t},\n\t\t// 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true,\n\t\t// 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序\n\t\tfixed: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.fixed\n\t\t},\n\t\t// 是否禁用输入框\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.disabled\n\t\t},\n\t\t// 禁用状态时的背景色\n\t\tdisabledColor: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.disabledColor\n\t\t},\n\t\t// 是否显示清除控件\n\t\tclearable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.clearable\n\t\t},\n\t\t// 是否密码类型\n\t\tpassword: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.password\n\t\t},\n\t\t// 最大输入长度,设置为 -1 的时候不限制最大长度\n\t\tmaxlength: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.input.maxlength\n\t\t},\n\t\t// \t输入框为空时的占位符\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.placeholder\n\t\t},\n\t\t// 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/\n\t\tplaceholderClass: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.placeholderClass\n\t\t},\n\t\t// 指定placeholder的样式\n\t\tplaceholderStyle: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: uni.$u.props.input.placeholderStyle\n\t\t},\n\t\t// 是否显示输入字数统计,只在 type =\"text\"或type =\"textarea\"时有效\n\t\tshowWordLimit: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.showWordLimit\n\t\t},\n\t\t// 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档\n\t\t// https://uniapp.dcloud.io/component/input\n\t\t// https://uniapp.dcloud.io/component/textarea\n\t\tconfirmType: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.confirmType\n\t\t},\n\t\t// 点击键盘右下角按钮时是否保持键盘不收起,H5无效\n\t\tconfirmHold: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.confirmHold\n\t\t},\n\t\t// focus时,点击页面的时候不收起键盘,微信小程序有效\n\t\tholdKeyboard: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.holdKeyboard\n\t\t},\n\t\t// 自动获取焦点\n\t\t// 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点\n\t\tfocus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.focus\n\t\t},\n\t\t// 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效\n\t\tautoBlur: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.autoBlur\n\t\t},\n\t\t// 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效\n\t\tdisableDefaultPadding: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.disableDefaultPadding\n\t\t},\n\t\t// 指定focus时光标的位置\n\t\tcursor: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.input.cursor\n\t\t},\n\t\t// 输入框聚焦时底部与键盘的距离\n\t\tcursorSpacing: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.input.cursorSpacing\n\t\t},\n\t\t// 光标起始位置,自动聚集时有效,需与selection-end搭配使用\n\t\tselectionStart: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.input.selectionStart\n\t\t},\n\t\t// 光标结束位置,自动聚集时有效,需与selection-start搭配使用\n\t\tselectionEnd: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.input.selectionEnd\n\t\t},\n\t\t// 键盘弹起时,是否自动上推页面\n\t\tadjustPosition: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.adjustPosition\n\t\t},\n\t\t// 输入框内容对齐方式,可选值为:left|center|right\n\t\tinputAlign: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.inputAlign\n\t\t},\n\t\t// 输入框字体的大小\n\t\tfontSize: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.input.fontSize\n\t\t},\n\t\t// 输入框字体颜色\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.color\n\t\t},\n\t\t// 输入框前置图标\n\t\tprefixIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.prefixIcon\n\t\t},\n\t\t// 前置图标样式,对象或字符串\n\t\tprefixIconStyle: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: uni.$u.props.input.prefixIconStyle\n\t\t},\n\t\t// 输入框后置图标\n\t\tsuffixIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.suffixIcon\n\t\t},\n\t\t// 后置图标样式,对象或字符串\n\t\tsuffixIconStyle: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: uni.$u.props.input.suffixIconStyle\n\t\t},\n\t\t// 边框类型,surround-四周边框,bottom-底部边框,none-无边框\n\t\tborder: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.border\n\t\t},\n\t\t// 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.input.readonly\n\t\t},\n\t\t// 输入框形状,circle-圆形,square-方形\n\t\tshape: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.shape\n\t\t},\n\t\t// 用于处理或者过滤输入框内容的方法\n\t\tformatter: {\n\t\t\ttype: [Function, null],\n\t\t\tdefault: uni.$u.props.input.formatter\n\t\t},\n\t\t// 是否忽略组件内对文本合成系统事件的处理\n\t\tignoreCompositionEvent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t}\n\t}\n}\n","export default {\n props: {\n // 内置图标名称,或图片路径,建议绝对路径\n icon: {\n type: String,\n default: uni.$u.props.empty.icon\n },\n // 提示文字\n text: {\n type: String,\n default: uni.$u.props.empty.text\n },\n // 文字颜色\n textColor: {\n type: String,\n default: uni.$u.props.empty.textColor\n },\n // 文字大小\n textSize: {\n type: [String, Number],\n default: uni.$u.props.empty.textSize\n },\n // 图标的颜色\n iconColor: {\n type: String,\n default: uni.$u.props.empty.iconColor\n },\n // 图标的大小\n iconSize: {\n type: [String, Number],\n default: uni.$u.props.empty.iconSize\n },\n // 选择预置的图标类型\n mode: {\n type: String,\n default: uni.$u.props.empty.mode\n },\n // 图标宽度,单位px\n width: {\n type: [String, Number],\n default: uni.$u.props.empty.width\n },\n // 图标高度,单位px\n height: {\n type: [String, Number],\n default: uni.$u.props.empty.height\n },\n // 是否显示组件\n show: {\n type: Boolean,\n default: uni.$u.props.empty.show\n },\n // 组件距离上一个元素之间的距离,默认px单位\n marginTop: {\n type: [String, Number],\n default: uni.$u.props.empty.marginTop\n }\n }\n}\n","export default {\n props: {\n // 分组标题\n title: {\n type: String,\n default: uni.$u.props.cellGroup.title\n },\n // 是否显示外边框\n border: {\n type: Boolean,\n default: uni.$u.props.cellGroup.border\n }\n }\n}\n","export default {\n props: {\n // 标题\n title: {\n type: [String, Number],\n default: uni.$u.props.cell.title\n },\n // 标题下方的描述信息\n label: {\n type: [String, Number],\n default: uni.$u.props.cell.label\n },\n // 右侧的内容\n value: {\n type: [String, Number],\n default: uni.$u.props.cell.value\n },\n // 左侧图标名称,或者图片链接(本地文件建议使用绝对地址)\n icon: {\n type: String,\n default: uni.$u.props.cell.icon\n },\n // 是否禁用cell\n disabled: {\n type: Boolean,\n default: uni.$u.props.cell.disabled\n },\n // 是否显示下边框\n border: {\n type: Boolean,\n default: uni.$u.props.cell.border\n },\n // 内容是否垂直居中(主要是针对右侧的value部分)\n center: {\n type: Boolean,\n default: uni.$u.props.cell.center\n },\n // 点击后跳转的URL地址\n url: {\n type: String,\n default: uni.$u.props.cell.url\n },\n // 链接跳转的方式,内部使用的是uView封装的route方法,可能会进行拦截操作\n linkType: {\n type: String,\n default: uni.$u.props.cell.linkType\n },\n // 是否开启点击反馈(表现为点击时加上灰色背景)\n clickable: {\n type: Boolean,\n default: uni.$u.props.cell.clickable\n },\n // 是否展示右侧箭头并开启点击反馈\n isLink: {\n type: Boolean,\n default: uni.$u.props.cell.isLink\n },\n // 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件)\n required: {\n type: Boolean,\n default: uni.$u.props.cell.required\n },\n // 右侧的图标箭头\n rightIcon: {\n type: String,\n default: uni.$u.props.cell.rightIcon\n },\n // 右侧箭头的方向,可选值为:left,up,down\n arrowDirection: {\n type: String,\n default: uni.$u.props.cell.arrowDirection\n },\n // 左侧图标样式\n iconStyle: {\n type: [Object, String],\n default: () => {\n\t\t\t\treturn uni.$u.props.cell.iconStyle\n\t\t\t}\n },\n // 右侧箭头图标的样式\n rightIconStyle: {\n type: [Object, String],\n default: () => {\n\t\t\t\treturn uni.$u.props.cell.rightIconStyle\n\t\t\t}\n },\n // 标题的样式\n titleStyle: {\n type: [Object, String],\n\t\t\tdefault: () => {\n\t\t\t\treturn uni.$u.props.cell.titleStyle\n\t\t\t}\n },\n // 单位元的大小,可选值为large\n size: {\n type: String,\n default: uni.$u.props.cell.size\n },\n // 点击cell是否阻止事件传播\n stop: {\n type: Boolean,\n default: uni.$u.props.cell.stop\n },\n // 标识符,cell被点击时返回\n name: {\n type: [Number, String],\n default: uni.$u.props.cell.name\n }\n }\n}\n","export default {\n props: {\n // 当前form的需要验证字段的集合\n model: {\n type: Object,\n default: uni.$u.props.form.model\n },\n // 验证规则\n rules: {\n type: [Object, Function, Array],\n default: uni.$u.props.form.rules\n },\n // 有错误时的提示方式,message-提示信息,toast-进行toast提示\n // border-bottom-下边框呈现红色,none-无提示\n errorType: {\n type: String,\n default: uni.$u.props.form.errorType\n },\n // 是否显示表单域的下划线边框\n borderBottom: {\n type: Boolean,\n default: uni.$u.props.form.borderBottom\n },\n // label的位置,left-左边,top-上边\n labelPosition: {\n type: String,\n default: uni.$u.props.form.labelPosition\n },\n // label的宽度,单位px\n labelWidth: {\n type: [String, Number],\n default: uni.$u.props.form.labelWidth\n },\n // lable字体的对齐方式\n labelAlign: {\n type: String,\n default: uni.$u.props.form.labelAlign\n },\n // lable的样式,对象形式\n labelStyle: {\n type: Object,\n default: uni.$u.props.form.labelStyle\n }\n }\n}\n","export default {\n props: {\n // input的label提示语\n label: {\n type: String,\n default: uni.$u.props.formItem.label\n },\n // 绑定的值\n prop: {\n type: String,\n default: uni.$u.props.formItem.prop\n },\n // 是否显示表单域的下划线边框\n borderBottom: {\n type: [String, Boolean],\n default: uni.$u.props.formItem.borderBottom\n },\n // label的位置,left-左边,top-上边\n labelPosition: {\n type: String,\n default: uni.$u.props.formItem.labelPosition\n },\n // label的宽度,单位px\n labelWidth: {\n type: [String, Number],\n default: uni.$u.props.formItem.labelWidth\n },\n // 右侧图标\n rightIcon: {\n type: String,\n default: uni.$u.props.formItem.rightIcon\n },\n // 左侧图标\n leftIcon: {\n type: String,\n default: uni.$u.props.formItem.leftIcon\n },\n // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置\n required: {\n type: Boolean,\n default: uni.$u.props.formItem.required\n },\n leftIconStyle: {\n type: [String, Object],\n default: uni.$u.props.formItem.leftIconStyle,\n }\n }\n}\n","export default {\n props: {\n // 是否展示picker弹窗\n show: {\n type: Boolean,\n default: uni.$u.props.picker.show\n },\n // 是否展示顶部的操作栏\n showToolbar: {\n type: Boolean,\n default: uni.$u.props.picker.showToolbar\n },\n // 顶部标题\n title: {\n type: String,\n default: uni.$u.props.picker.title\n },\n // 对象数组,设置每一列的数据\n columns: {\n type: Array,\n default: uni.$u.props.picker.columns\n },\n // 是否显示加载中状态\n loading: {\n type: Boolean,\n default: uni.$u.props.picker.loading\n },\n // 各列中,单个选项的高度\n itemHeight: {\n type: [String, Number],\n default: uni.$u.props.picker.itemHeight\n },\n // 取消按钮的文字\n cancelText: {\n type: String,\n default: uni.$u.props.picker.cancelText\n },\n // 确认按钮的文字\n confirmText: {\n type: String,\n default: uni.$u.props.picker.confirmText\n },\n // 取消按钮的颜色\n cancelColor: {\n type: String,\n default: uni.$u.props.picker.cancelColor\n },\n // 确认按钮的颜色\n confirmColor: {\n type: String,\n default: uni.$u.props.picker.confirmColor\n },\n // 每列中可见选项的数量\n visibleItemCount: {\n type: [String, Number],\n default: uni.$u.props.picker.visibleItemCount\n },\n // 选项对象中,需要展示的属性键名\n keyName: {\n type: String,\n default: uni.$u.props.picker.keyName\n },\n // 是否允许点击遮罩关闭选择器\n closeOnClickOverlay: {\n type: Boolean,\n default: uni.$u.props.picker.closeOnClickOverlay\n },\n // 各列的默认索引\n defaultIndex: {\n type: Array,\n default: uni.$u.props.picker.defaultIndex\n },\n\t\t// 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,只在微信2.21.1及以上有效\n\t\timmediateChange: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.picker.immediateChange\n\t\t}\n }\n}\n","export default {\n props: {\n // 是否打开组件\n show: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.show\n },\n // 是否展示顶部的操作栏\n showToolbar: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.showToolbar\n },\n // 绑定值\n value: {\n type: [String, Number],\n default: uni.$u.props.datetimePicker.value\n },\n // 顶部标题\n title: {\n type: String,\n default: uni.$u.props.datetimePicker.title\n },\n // 展示格式,mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择\n mode: {\n type: String,\n default: uni.$u.props.datetimePicker.mode\n },\n // 可选的最大时间\n maxDate: {\n type: Number,\n // 最大默认值为后10年\n default: uni.$u.props.datetimePicker.maxDate\n },\n // 可选的最小时间\n minDate: {\n type: Number,\n // 最小默认值为前10年\n default: uni.$u.props.datetimePicker.minDate\n },\n // 可选的最小小时,仅mode=time有效\n minHour: {\n type: Number,\n default: uni.$u.props.datetimePicker.minHour\n },\n // 可选的最大小时,仅mode=time有效\n maxHour: {\n type: Number,\n default: uni.$u.props.datetimePicker.maxHour\n },\n // 可选的最小分钟,仅mode=time有效\n minMinute: {\n type: Number,\n default: uni.$u.props.datetimePicker.minMinute\n },\n // 可选的最大分钟,仅mode=time有效\n maxMinute: {\n type: Number,\n default: uni.$u.props.datetimePicker.maxMinute\n },\n // 选项过滤函数\n filter: {\n type: [Function, null],\n default: uni.$u.props.datetimePicker.filter\n },\n // 选项格式化函数\n formatter: {\n type: [Function, null],\n default: uni.$u.props.datetimePicker.formatter\n },\n // 是否显示加载中状态\n loading: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.loading\n },\n // 各列中,单个选项的高度\n itemHeight: {\n type: [String, Number],\n default: uni.$u.props.datetimePicker.itemHeight\n },\n // 取消按钮的文字\n cancelText: {\n type: String,\n default: uni.$u.props.datetimePicker.cancelText\n },\n // 确认按钮的文字\n confirmText: {\n type: String,\n default: uni.$u.props.datetimePicker.confirmText\n },\n // 取消按钮的颜色\n cancelColor: {\n type: String,\n default: uni.$u.props.datetimePicker.cancelColor\n },\n // 确认按钮的颜色\n confirmColor: {\n type: String,\n default: uni.$u.props.datetimePicker.confirmColor\n },\n // 每列中可见选项的数量\n visibleItemCount: {\n type: [String, Number],\n default: uni.$u.props.datetimePicker.visibleItemCount\n },\n // 是否允许点击遮罩关闭选择器\n closeOnClickOverlay: {\n type: Boolean,\n default: uni.$u.props.datetimePicker.closeOnClickOverlay\n },\n // 各列的默认索引\n defaultIndex: {\n type: Array,\n default: uni.$u.props.datetimePicker.defaultIndex\n }\n }\n}\n","!(function (t, e) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = e() : typeof define === 'function'\r\n\t\t&& define.amd ? define(e) : t.dayjs = e()\r\n}(this, () => {\r\n 'use strict'\r\n\r\n const t = 'millisecond'\r\n const e = 'second'\r\n const n = 'minute'\r\n const r = 'hour'\r\n const i = 'day'\r\n const s = 'week'\r\n const u = 'month'\r\n const a = 'quarter'\r\n const o = 'year'\r\n const f = 'date'\r\n const h = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d+)?$/\r\n const c = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g\r\n const d = {\r\n name: 'en',\r\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\r\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_')\r\n }\r\n const $ = function (t, e, n) {\r\n const r = String(t)\r\n return !r || r.length >= e ? t : `${Array(e + 1 - r.length).join(n)}${t}`\r\n }\r\n const l = {\r\n s: $,\r\n z(t) {\r\n const e = -t.utcOffset()\r\n const n = Math.abs(e)\r\n const r = Math.floor(n / 60)\r\n const i = n % 60\r\n return `${(e <= 0 ? '+' : '-') + $(r, 2, '0')}:${$(i, 2, '0')}`\r\n },\r\n m: function t(e, n) {\r\n if (e.date() < n.date()) return -t(n, e)\r\n const r = 12 * (n.year() - e.year()) + (n.month() - e.month())\r\n const i = e.clone().add(r, u)\r\n const s = n - i < 0\r\n const a = e.clone().add(r + (s ? -1 : 1), u)\r\n return +(-(r + (n - i) / (s ? i - a : a - i)) || 0)\r\n },\r\n a(t) {\r\n return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)\r\n },\r\n p(h) {\r\n return {\r\n M: u,\r\n y: o,\r\n w: s,\r\n d: i,\r\n D: f,\r\n h: r,\r\n m: n,\r\n s: e,\r\n ms: t,\r\n Q: a\r\n }[h] || String(h || '').toLowerCase().replace(/s$/, '')\r\n },\r\n u(t) {\r\n return void 0 === t\r\n }\r\n }\r\n let y = 'en'\r\n const M = {}\r\n M[y] = d\r\n const m = function (t) {\r\n return t instanceof S\r\n }\r\n const D = function (t, e, n) {\r\n let r\r\n if (!t) return y\r\n if (typeof t === 'string') M[t] && (r = t), e && (M[t] = e, r = t)\r\n else {\r\n const i = t.name\r\n M[i] = t, r = i\r\n }\r\n return !n && r && (y = r), r || !n && y\r\n }\r\n const v = function (t, e) {\r\n if (m(t)) return t.clone()\r\n const n = typeof e === 'object' ? e : {}\r\n return n.date = t, n.args = arguments, new S(n)\r\n }\r\n const g = l\r\n g.l = D, g.i = m, g.w = function (t, e) {\r\n return v(t, {\r\n locale: e.$L,\r\n utc: e.$u,\r\n x: e.$x,\r\n $offset: e.$offset\r\n })\r\n }\r\n var S = (function () {\r\n function d(t) {\r\n this.$L = D(t.locale, null, !0), this.parse(t)\r\n }\r\n const $ = d.prototype\r\n return $.parse = function (t) {\r\n this.$d = (function (t) {\r\n const e = t.date\r\n const n = t.utc\r\n if (e === null) return new Date(NaN)\r\n if (g.u(e)) return new Date()\r\n if (e instanceof Date) return new Date(e)\r\n if (typeof e === 'string' && !/Z$/i.test(e)) {\r\n const r = e.match(h)\r\n if (r) {\r\n const i = r[2] - 1 || 0\r\n const s = (r[7] || '0').substring(0, 3)\r\n return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) : new Date(r[1], i, r[3]\r\n\t\t\t\t\t\t\t\t|| 1, r[4] || 0, r[5] || 0, r[6] || 0, s)\r\n }\r\n }\r\n return new Date(e)\r\n }(t)), this.$x = t.x || {}, this.init()\r\n }, $.init = function () {\r\n const t = this.$d\r\n this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(),\r\n this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds()\r\n }, $.$utils = function () {\r\n return g\r\n }, $.isValid = function () {\r\n return !(this.$d.toString() === 'Invalid Date')\r\n }, $.isSame = function (t, e) {\r\n const n = v(t)\r\n return this.startOf(e) <= n && n <= this.endOf(e)\r\n }, $.isAfter = function (t, e) {\r\n return v(t) < this.startOf(e)\r\n }, $.isBefore = function (t, e) {\r\n return this.endOf(e) < v(t)\r\n }, $.$g = function (t, e, n) {\r\n return g.u(t) ? this[e] : this.set(n, t)\r\n }, $.unix = function () {\r\n return Math.floor(this.valueOf() / 1e3)\r\n }, $.valueOf = function () {\r\n return this.$d.getTime()\r\n }, $.startOf = function (t, a) {\r\n const h = this\r\n const c = !!g.u(a) || a\r\n const d = g.p(t)\r\n const $ = function (t, e) {\r\n const n = g.w(h.$u ? Date.UTC(h.$y, e, t) : new Date(h.$y, e, t), h)\r\n return c ? n : n.endOf(i)\r\n }\r\n const l = function (t, e) {\r\n return g.w(h.toDate()[t].apply(h.toDate('s'), (c ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), h)\r\n }\r\n const y = this.$W\r\n const M = this.$M\r\n const m = this.$D\r\n const D = `set${this.$u ? 'UTC' : ''}`\r\n switch (d) {\r\n case o:\r\n return c ? $(1, 0) : $(31, 11)\r\n case u:\r\n return c ? $(1, M) : $(0, M + 1)\r\n case s:\r\n var v = this.$locale().weekStart || 0\r\n var S = (y < v ? y + 7 : y) - v\r\n return $(c ? m - S : m + (6 - S), M)\r\n case i:\r\n case f:\r\n return l(`${D}Hours`, 0)\r\n case r:\r\n return l(`${D}Minutes`, 1)\r\n case n:\r\n return l(`${D}Seconds`, 2)\r\n case e:\r\n return l(`${D}Milliseconds`, 3)\r\n default:\r\n return this.clone()\r\n }\r\n }, $.endOf = function (t) {\r\n return this.startOf(t, !1)\r\n }, $.$set = function (s, a) {\r\n let h; const c = g.p(s)\r\n const d = `set${this.$u ? 'UTC' : ''}`\r\n const $ = (h = {}, h[i] = `${d}Date`, h[f] = `${d}Date`, h[u] = `${d}Month`, h[o] = `${d}FullYear`, h[r] = `${d}Hours`,\r\n h[n] = `${d}Minutes`, h[e] = `${d}Seconds`, h[t] = `${d}Milliseconds`, h)[c]\r\n const l = c === i ? this.$D + (a - this.$W) : a\r\n if (c === u || c === o) {\r\n const y = this.clone().set(f, 1)\r\n y.$d[$](l), y.init(), this.$d = y.set(f, Math.min(this.$D, y.daysInMonth())).$d\r\n } else $ && this.$d[$](l)\r\n return this.init(), this\r\n }, $.set = function (t, e) {\r\n return this.clone().$set(t, e)\r\n }, $.get = function (t) {\r\n return this[g.p(t)]()\r\n }, $.add = function (t, a) {\r\n let f; const\r\n h = this\r\n t = Number(t)\r\n const c = g.p(a)\r\n const d = function (e) {\r\n const n = v(h)\r\n return g.w(n.date(n.date() + Math.round(e * t)), h)\r\n }\r\n if (c === u) return this.set(u, this.$M + t)\r\n if (c === o) return this.set(o, this.$y + t)\r\n if (c === i) return d(1)\r\n if (c === s) return d(7)\r\n const $ = (f = {}, f[n] = 6e4, f[r] = 36e5, f[e] = 1e3, f)[c] || 1\r\n const l = this.$d.getTime() + t * $\r\n return g.w(l, this)\r\n }, $.subtract = function (t, e) {\r\n return this.add(-1 * t, e)\r\n }, $.format = function (t) {\r\n const e = this\r\n if (!this.isValid()) return 'Invalid Date'\r\n const n = t || 'YYYY-MM-DDTHH:mm:ssZ'\r\n const r = g.z(this)\r\n const i = this.$locale()\r\n const s = this.$H\r\n const u = this.$m\r\n const a = this.$M\r\n const o = i.weekdays\r\n const f = i.months\r\n const h = function (t, r, i, s) {\r\n return t && (t[r] || t(e, n)) || i[r].substr(0, s)\r\n }\r\n const d = function (t) {\r\n return g.s(s % 12 || 12, t, '0')\r\n }\r\n const $ = i.meridiem || function (t, e, n) {\r\n const r = t < 12 ? 'AM' : 'PM'\r\n return n ? r.toLowerCase() : r\r\n }\r\n const l = {\r\n YY: String(this.$y).slice(-2),\r\n YYYY: this.$y,\r\n M: a + 1,\r\n MM: g.s(a + 1, 2, '0'),\r\n MMM: h(i.monthsShort, a, f, 3),\r\n MMMM: h(f, a),\r\n D: this.$D,\r\n DD: g.s(this.$D, 2, '0'),\r\n d: String(this.$W),\r\n dd: h(i.weekdaysMin, this.$W, o, 2),\r\n ddd: h(i.weekdaysShort, this.$W, o, 3),\r\n dddd: o[this.$W],\r\n H: String(s),\r\n HH: g.s(s, 2, '0'),\r\n h: d(1),\r\n hh: d(2),\r\n a: $(s, u, !0),\r\n A: $(s, u, !1),\r\n m: String(u),\r\n mm: g.s(u, 2, '0'),\r\n s: String(this.$s),\r\n ss: g.s(this.$s, 2, '0'),\r\n SSS: g.s(this.$ms, 3, '0'),\r\n Z: r\r\n }\r\n return n.replace(c, (t, e) => e || l[t] || r.replace(':', ''))\r\n }, $.utcOffset = function () {\r\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15)\r\n }, $.diff = function (t, f, h) {\r\n let c; const d = g.p(f)\r\n const $ = v(t)\r\n const l = 6e4 * ($.utcOffset() - this.utcOffset())\r\n const y = this - $\r\n let M = g.m(this, $)\r\n return M = (c = {}, c[o] = M / 12, c[u] = M, c[a] = M / 3, c[s] = (y - l) / 6048e5, c[i] = (y - l) / 864e5, c[r] =\t\t\t\t\ty / 36e5, c[n] = y / 6e4, c[e] = y / 1e3, c)[d] || y, h ? M : g.a(M)\r\n }, $.daysInMonth = function () {\r\n return this.endOf(u).$D\r\n }, $.$locale = function () {\r\n return M[this.$L]\r\n }, $.locale = function (t, e) {\r\n if (!t) return this.$L\r\n const n = this.clone()\r\n const r = D(t, e, !0)\r\n return r && (n.$L = r), n\r\n }, $.clone = function () {\r\n return g.w(this.$d, this)\r\n }, $.toDate = function () {\r\n return new Date(this.valueOf())\r\n }, $.toJSON = function () {\r\n return this.isValid() ? this.toISOString() : null\r\n }, $.toISOString = function () {\r\n return this.$d.toISOString()\r\n }, $.toString = function () {\r\n return this.$d.toUTCString()\r\n }, d\r\n }())\r\n const p = S.prototype\r\n return v.prototype = p, [\r\n ['$ms', t],\r\n ['$s', e],\r\n ['$m', n],\r\n ['$H', r],\r\n ['$W', i],\r\n ['$M', u],\r\n ['$y', o],\r\n ['$D', f]\r\n ].forEach((t) => {\r\n p[t[1]] = function (e) {\r\n return this.$g(e, t[0], t[1])\r\n }\r\n }), v.extend = function (t, e) {\r\n return t.$i || (t(e, S, v), t.$i = !0), v\r\n }, v.locale = D, v.isDayjs = m, v.unix = function (t) {\r\n return v(1e3 * t)\r\n }, v.en = M[y], v.Ls = M, v.p = {}, v\r\n}))\r\n","export default {\r\n props: {\r\n lang: String,\r\n sessionFrom: String,\r\n sendMessageTitle: String,\r\n sendMessagePath: String,\r\n sendMessageImg: String,\r\n showMessageCard: Boolean,\r\n appParameter: String,\r\n formType: String,\r\n openType: String\r\n }\r\n}\r\n","export default {\r\n props: {\r\n openType: String\r\n },\r\n methods: {\r\n onGetUserInfo(event) {\r\n this.$emit('getuserinfo', event.detail)\r\n },\r\n onContact(event) {\r\n this.$emit('contact', event.detail)\r\n },\r\n onGetPhoneNumber(event) {\r\n this.$emit('getphonenumber', event.detail)\r\n },\r\n onError(event) {\r\n this.$emit('error', event.detail)\r\n },\r\n onLaunchApp(event) {\r\n this.$emit('launchapp', event.detail)\r\n },\r\n onOpenSetting(event) {\r\n this.$emit('opensetting', event.detail)\r\n }\r\n }\r\n}\r\n","/*\n * @Author : LQ\n * @Description :\n * @version : 1.0\n * @Date : 2021-08-16 10:04:04\n * @LastAuthor : LQ\n * @lastTime : 2021-08-16 10:04:24\n * @FilePath : /u-view2.0/uview-ui/components/u-button/props.js\n */\nexport default {\n props: {\n // 是否细边框\n hairline: {\n type: Boolean,\n default: uni.$u.props.button.hairline\n },\n // 按钮的预置样式,info,primary,error,warning,success\n type: {\n type: String,\n default: uni.$u.props.button.type\n },\n // 按钮尺寸,large,normal,small,mini\n size: {\n type: String,\n default: uni.$u.props.button.size\n },\n // 按钮形状,circle(两边为半圆),square(带圆角)\n shape: {\n type: String,\n default: uni.$u.props.button.shape\n },\n // 按钮是否镂空\n plain: {\n type: Boolean,\n default: uni.$u.props.button.plain\n },\n // 是否禁止状态\n disabled: {\n type: Boolean,\n default: uni.$u.props.button.disabled\n },\n // 是否加载中\n loading: {\n type: Boolean,\n default: uni.$u.props.button.loading\n },\n // 加载中提示文字\n loadingText: {\n type: [String, Number],\n default: uni.$u.props.button.loadingText\n },\n // 加载状态图标类型\n loadingMode: {\n type: String,\n default: uni.$u.props.button.loadingMode\n },\n // 加载图标大小\n loadingSize: {\n type: [String, Number],\n default: uni.$u.props.button.loadingSize\n },\n // 开放能力,具体请看uniapp稳定关于button组件部分说明\n // https://uniapp.dcloud.io/component/button\n openType: {\n type: String,\n default: uni.$u.props.button.openType\n },\n // 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件\n // 取值为submit(提交表单),reset(重置表单)\n formType: {\n type: String,\n default: uni.$u.props.button.formType\n },\n // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效\n // 只微信小程序、QQ小程序有效\n appParameter: {\n type: String,\n default: uni.$u.props.button.appParameter\n },\n // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效\n hoverStopPropagation: {\n type: Boolean,\n default: uni.$u.props.button.hoverStopPropagation\n },\n // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效\n lang: {\n type: String,\n default: uni.$u.props.button.lang\n },\n // 会话来源,open-type=\"contact\"时有效。只微信小程序有效\n sessionFrom: {\n type: String,\n default: uni.$u.props.button.sessionFrom\n },\n // 会话内消息卡片标题,open-type=\"contact\"时有效\n // 默认当前标题,只微信小程序有效\n sendMessageTitle: {\n type: String,\n default: uni.$u.props.button.sendMessageTitle\n },\n // 会话内消息卡片点击跳转小程序路径,open-type=\"contact\"时有效\n // 默认当前分享路径,只微信小程序有效\n sendMessagePath: {\n type: String,\n default: uni.$u.props.button.sendMessagePath\n },\n // 会话内消息卡片图片,open-type=\"contact\"时有效\n // 默认当前页面截图,只微信小程序有效\n sendMessageImg: {\n type: String,\n default: uni.$u.props.button.sendMessageImg\n },\n // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示\"可能要发送的小程序\"提示,\n // 用户点击后可以快速发送小程序消息,open-type=\"contact\"时有效\n showMessageCard: {\n type: Boolean,\n default: uni.$u.props.button.showMessageCard\n },\n // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取\n dataName: {\n type: String,\n default: uni.$u.props.button.dataName\n },\n // 节流,一定时间内只能触发一次\n throttleTime: {\n type: [String, Number],\n default: uni.$u.props.button.throttleTime\n },\n // 按住后多久出现点击态,单位毫秒\n hoverStartTime: {\n type: [String, Number],\n default: uni.$u.props.button.hoverStartTime\n },\n // 手指松开后点击态保留时间,单位毫秒\n hoverStayTime: {\n type: [String, Number],\n default: uni.$u.props.button.hoverStayTime\n },\n // 按钮文字,之所以通过props传入,是因为slot传入的话\n // nvue中无法控制文字的样式\n text: {\n type: [String, Number],\n default: uni.$u.props.button.text\n },\n // 按钮图标\n icon: {\n type: String,\n default: uni.$u.props.button.icon\n },\n // 按钮图标\n iconColor: {\n type: String,\n default: uni.$u.props.button.icon\n },\n // 按钮颜色,支持传入linear-gradient渐变色\n color: {\n type: String,\n default: uni.$u.props.button.color\n }\n }\n}\n","export default {\n props: {\n // 是否展示弹窗\n show: {\n type: Boolean,\n default: uni.$u.props.popup.show\n },\n // 是否显示遮罩\n overlay: {\n type: Boolean,\n default: uni.$u.props.popup.overlay\n },\n // 弹出的方向,可选值为 top bottom right left center\n mode: {\n type: String,\n default: uni.$u.props.popup.mode\n },\n // 动画时长,单位ms\n duration: {\n type: [String, Number],\n default: uni.$u.props.popup.duration\n },\n // 是否显示关闭图标\n closeable: {\n type: Boolean,\n default: uni.$u.props.popup.closeable\n },\n // 自定义遮罩的样式\n overlayStyle: {\n type: [Object, String],\n default: uni.$u.props.popup.overlayStyle\n },\n // 点击遮罩是否关闭弹窗\n closeOnClickOverlay: {\n type: Boolean,\n default: uni.$u.props.popup.closeOnClickOverlay\n },\n // 层级\n zIndex: {\n type: [String, Number],\n default: uni.$u.props.popup.zIndex\n },\n // 是否为iPhoneX留出底部安全距离\n safeAreaInsetBottom: {\n type: Boolean,\n default: uni.$u.props.popup.safeAreaInsetBottom\n },\n // 是否留出顶部安全距离(状态栏高度)\n safeAreaInsetTop: {\n type: Boolean,\n default: uni.$u.props.popup.safeAreaInsetTop\n },\n // 自定义关闭图标位置,top-left为左上角,top-right为右上角,bottom-left为左下角,bottom-right为右下角\n closeIconPos: {\n type: String,\n default: uni.$u.props.popup.closeIconPos\n },\n // 是否显示圆角\n round: {\n type: [Boolean, String, Number],\n default: uni.$u.props.popup.round\n },\n // mode=center,也即中部弹出时,是否使用缩放模式\n zoom: {\n type: Boolean,\n default: uni.$u.props.popup.zoom\n },\n // 弹窗背景色,设置为transparent可去除白色背景\n bgColor: {\n type: String,\n default: uni.$u.props.popup.bgColor\n },\n // 遮罩的透明度,0-1之间\n overlayOpacity: {\n type: [Number, String],\n default: uni.$u.props.popup.overlayOpacity\n }\n }\n}\n","export default {\n props: {\n // 头像图片路径(不能为相对路径)\n src: {\n type: String,\n default: uni.$u.props.avatar.src\n },\n // 头像形状,circle-圆形,square-方形\n shape: {\n type: String,\n default: uni.$u.props.avatar.shape\n },\n // 头像尺寸\n size: {\n type: [String, Number],\n default: uni.$u.props.avatar.size\n },\n // 裁剪模式\n mode: {\n type: String,\n default: uni.$u.props.avatar.mode\n },\n // 显示的文字\n text: {\n type: String,\n default: uni.$u.props.avatar.text\n },\n // 背景色\n bgColor: {\n type: String,\n default: uni.$u.props.avatar.bgColor\n },\n // 文字颜色\n color: {\n type: String,\n default: uni.$u.props.avatar.color\n },\n // 文字大小\n fontSize: {\n type: [String, Number],\n default: uni.$u.props.avatar.fontSize\n },\n // 显示的图标\n icon: {\n type: String,\n default: uni.$u.props.avatar.icon\n },\n // 显示小程序头像,只对百度,微信,QQ小程序有效\n mpAvatar: {\n type: Boolean,\n default: uni.$u.props.avatar.mpAvatar\n },\n // 是否使用随机背景色\n randomBgColor: {\n type: Boolean,\n default: uni.$u.props.avatar.randomBgColor\n },\n // 加载失败的默认头像(组件有内置默认图片)\n defaultUrl: {\n type: String,\n default: uni.$u.props.avatar.defaultUrl\n },\n // 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间\n colorIndex: {\n type: [String, Number],\n // 校验参数规则,索引在0-19之间\n validator(n) {\n return uni.$u.test.range(n, [0, 19]) || n === ''\n },\n default: uni.$u.props.avatar.colorIndex\n },\n // 组件标识符\n name: {\n type: String,\n default: uni.$u.props.avatar.name\n }\n }\n}\n","export default {\n props: {\n // 控制是否出现滚动条,仅nvue有效\n showScrollbar: {\n type: Boolean,\n default: uni.$u.props.list.showScrollbar\n },\n // 距底部多少时触发scrolltolower事件\n lowerThreshold: {\n type: [String, Number],\n default: uni.$u.props.list.lowerThreshold\n },\n // 距顶部多少时触发scrolltoupper事件,非nvue有效\n upperThreshold: {\n type: [String, Number],\n default: uni.$u.props.list.upperThreshold\n },\n // 设置竖向滚动条位置\n scrollTop: {\n type: [String, Number],\n default: uni.$u.props.list.scrollTop\n },\n // 控制 onscroll 事件触发的频率,仅nvue有效\n offsetAccuracy: {\n type: [String, Number],\n default: uni.$u.props.list.offsetAccuracy\n },\n // 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效\n enableFlex: {\n type: Boolean,\n default: uni.$u.props.list.enableFlex\n },\n // 是否按分页模式显示List,默认值false\n pagingEnabled: {\n type: Boolean,\n default: uni.$u.props.list.pagingEnabled\n },\n // 是否允许List滚动\n scrollable: {\n type: Boolean,\n default: uni.$u.props.list.scrollable\n },\n // 值应为某子元素id(id不能以数字开头)\n scrollIntoView: {\n type: String,\n default: uni.$u.props.list.scrollIntoView\n },\n // 在设置滚动条位置时使用动画过渡\n scrollWithAnimation: {\n type: Boolean,\n default: uni.$u.props.list.scrollWithAnimation\n },\n // iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效\n enableBackToTop: {\n type: Boolean,\n default: uni.$u.props.list.enableBackToTop\n },\n // 列表的高度\n height: {\n type: [String, Number],\n default: uni.$u.props.list.height\n },\n // 列表宽度\n width: {\n type: [String, Number],\n default: uni.$u.props.list.width\n },\n // 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度\n preLoadScreen: {\n type: [String, Number],\n default: uni.$u.props.list.preLoadScreen\n }\n // vue下,是否开启虚拟列表\n\n }\n}\n","export default {\n props: {\n // 用于滚动到指定item\n anchor: {\n type: [String, Number],\n default: uni.$u.props.listItem.anchor\n }\n }\n}\n","export default {\n\tprops: {\n\t\t// 输入框的内容\n\t\tvalue: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.textarea.value\n\t\t},\n\t\t// 输入框为空时占位符\n\t\tplaceholder: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.textarea.placeholder\n\t\t},\n\t\t// 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/\n\t\tplaceholderClass: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.input.placeholderClass\n\t\t},\n\t\t// 指定placeholder的样式\n\t\tplaceholderStyle: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: uni.$u.props.input.placeholderStyle\n\t\t},\n\t\t// 输入框高度\n\t\theight: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.textarea.height\n\t\t},\n\t\t// 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效\n\t\tconfirmType: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.textarea.confirmType\n\t\t},\n\t\t// 是否禁用\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.disabled\n\t\t},\n\t\t// 是否显示统计字数\n\t\tcount: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.count\n\t\t},\n\t\t// 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现\n\t\tfocus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.focus\n\t\t},\n\t\t// 是否自动增加高度\n\t\tautoHeight: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.autoHeight\n\t\t},\n\t\t// 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true\n\t\tfixed: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.fixed\n\t\t},\n\t\t// 指定光标与键盘的距离\n\t\tcursorSpacing: {\n\t\t\ttype: Number,\n\t\t\tdefault: uni.$u.props.textarea.cursorSpacing\n\t\t},\n\t\t// 指定focus时的光标位置\n\t\tcursor: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.textarea.cursor\n\t\t},\n\t\t// 是否显示键盘上方带有”完成“按钮那一栏,\n\t\tshowConfirmBar: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.showConfirmBar\n\t\t},\n\t\t// 光标起始位置,自动聚焦时有效,需与selection-end搭配使用\n\t\tselectionStart: {\n\t\t\ttype: Number,\n\t\t\tdefault: uni.$u.props.textarea.selectionStart\n\t\t},\n\t\t// 光标结束位置,自动聚焦时有效,需与selection-start搭配使用\n\t\tselectionEnd: {\n\t\t\ttype: Number,\n\t\t\tdefault: uni.$u.props.textarea.selectionEnd\n\t\t},\n\t\t// 键盘弹起时,是否自动上推页面\n\t\tadjustPosition: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.adjustPosition\n\t\t},\n\t\t// 是否去掉 iOS 下的默认内边距,只微信小程序有效\n\t\tdisableDefaultPadding: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.disableDefaultPadding\n\t\t},\n\t\t// focus时,点击页面的时候不收起键盘,只微信小程序有效\n\t\tholdKeyboard: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: uni.$u.props.textarea.holdKeyboard\n\t\t},\n\t\t// 最大输入长度,设置为 -1 的时候不限制最大长度\n\t\tmaxlength: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: uni.$u.props.textarea.maxlength\n\t\t},\n\t\t// 边框类型,surround-四周边框,bottom-底部边框\n\t\tborder: {\n\t\t\ttype: String,\n\t\t\tdefault: uni.$u.props.textarea.border\n\t\t},\n\t\t// 用于处理或者过滤输入框内容的方法\n\t\tformatter: {\n\t\t\ttype: [Function, null],\n\t\t\tdefault: uni.$u.props.textarea.formatter\n\t\t},\n\t\t// 是否忽略组件内对文本合成系统事件的处理\n\t\tignoreCompositionEvent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t}\n\t}\n}\n","export default {\n props: {\n // 绑定的值\n value: {\n type: [String, Number, Boolean],\n default: uni.$u.props.radioGroup.value\n },\n\n // 是否禁用全部radio\n disabled: {\n type: Boolean,\n default: uni.$u.props.radioGroup.disabled\n },\n // 形状,circle-圆形,square-方形\n shape: {\n type: String,\n default: uni.$u.props.radioGroup.shape\n },\n // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值\n activeColor: {\n type: String,\n default: uni.$u.props.radioGroup.activeColor\n },\n // 未选中的颜色\n inactiveColor: {\n type: String,\n default: uni.$u.props.radioGroup.inactiveColor\n },\n // 标识符\n name: {\n type: String,\n default: uni.$u.props.radioGroup.name\n },\n // 整个组件的尺寸,默认px\n size: {\n type: [String, Number],\n default: uni.$u.props.radioGroup.size\n },\n // 布局方式,row-横向,column-纵向\n placement: {\n type: String,\n default: uni.$u.props.radioGroup.placement\n },\n // label的文本\n label: {\n type: [String],\n default: uni.$u.props.radioGroup.label\n },\n // label的颜色 (默认 '#303133' )\n labelColor: {\n type: [String],\n default: uni.$u.props.radioGroup.labelColor\n },\n // label的字体大小,px单位\n labelSize: {\n type: [String, Number],\n default: uni.$u.props.radioGroup.labelSize\n },\n // 是否禁止点击文本操作checkbox(默认 false )\n labelDisabled: {\n type: Boolean,\n default: uni.$u.props.radioGroup.labelDisabled\n },\n // 图标颜色\n iconColor: {\n type: String,\n default: uni.$u.props.radioGroup.iconColor\n },\n // 图标的大小,单位px\n iconSize: {\n type: [String, Number],\n default: uni.$u.props.radioGroup.iconSize\n },\n // 竖向配列时,是否显示下划线\n borderBottom: {\n type: Boolean,\n default: uni.$u.props.radioGroup.borderBottom\n },\n // 图标与文字的对齐方式\n iconPlacement: {\n type: String,\n default: uni.$u.props.radio.iconPlacement\n }\n }\n}\n","export default {\n props: {\n // radio的名称\n name: {\n type: [String, Number, Boolean],\n default: uni.$u.props.radio.name\n },\n // 形状,square为方形,circle为圆型\n shape: {\n type: String,\n default: uni.$u.props.radio.shape\n },\n // 是否禁用\n disabled: {\n type: [String, Boolean],\n default: uni.$u.props.radio.disabled\n },\n // 是否禁止点击提示语选中单选框\n labelDisabled: {\n type: [String, Boolean],\n default: uni.$u.props.radio.labelDisabled\n },\n // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值\n activeColor: {\n type: String,\n default: uni.$u.props.radio.activeColor\n },\n // 未选中的颜色\n inactiveColor: {\n type: String,\n default: uni.$u.props.radio.inactiveColor\n },\n // 图标的大小,单位px\n iconSize: {\n type: [String, Number],\n default: uni.$u.props.radio.iconSize\n },\n // label的字体大小,px单位\n labelSize: {\n type: [String, Number],\n default: uni.$u.props.radio.labelSize\n },\n // label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式\n label: {\n type: [String, Number],\n default: uni.$u.props.radio.label\n },\n // 整体的大小\n size: {\n type: [String, Number],\n default: uni.$u.props.radio.size\n },\n // 图标颜色\n color: {\n type: String,\n default: uni.$u.props.radio.color\n },\n // label的颜色\n labelColor: {\n type: String,\n default: uni.$u.props.radio.labelColor\n }\n }\n}\n","export default {\r\n 'uicon-level': '\\ue693',\r\n 'uicon-column-line': '\\ue68e',\r\n 'uicon-checkbox-mark': '\\ue807',\r\n 'uicon-folder': '\\ue7f5',\r\n 'uicon-movie': '\\ue7f6',\r\n 'uicon-star-fill': '\\ue669',\r\n 'uicon-star': '\\ue65f',\r\n 'uicon-phone-fill': '\\ue64f',\r\n 'uicon-phone': '\\ue622',\r\n 'uicon-apple-fill': '\\ue881',\r\n 'uicon-chrome-circle-fill': '\\ue885',\r\n 'uicon-backspace': '\\ue67b',\r\n 'uicon-attach': '\\ue632',\r\n 'uicon-cut': '\\ue948',\r\n 'uicon-empty-car': '\\ue602',\r\n 'uicon-empty-coupon': '\\ue682',\r\n 'uicon-empty-address': '\\ue646',\r\n 'uicon-empty-favor': '\\ue67c',\r\n 'uicon-empty-permission': '\\ue686',\r\n 'uicon-empty-news': '\\ue687',\r\n 'uicon-empty-search': '\\ue664',\r\n 'uicon-github-circle-fill': '\\ue887',\r\n 'uicon-rmb': '\\ue608',\r\n 'uicon-person-delete-fill': '\\ue66a',\r\n 'uicon-reload': '\\ue788',\r\n 'uicon-order': '\\ue68f',\r\n 'uicon-server-man': '\\ue6bc',\r\n 'uicon-search': '\\ue62a',\r\n 'uicon-fingerprint': '\\ue955',\r\n 'uicon-more-dot-fill': '\\ue630',\r\n 'uicon-scan': '\\ue662',\r\n 'uicon-share-square': '\\ue60b',\r\n 'uicon-map': '\\ue61d',\r\n 'uicon-map-fill': '\\ue64e',\r\n 'uicon-tags': '\\ue629',\r\n 'uicon-tags-fill': '\\ue651',\r\n 'uicon-bookmark-fill': '\\ue63b',\r\n 'uicon-bookmark': '\\ue60a',\r\n 'uicon-eye': '\\ue613',\r\n 'uicon-eye-fill': '\\ue641',\r\n 'uicon-mic': '\\ue64a',\r\n 'uicon-mic-off': '\\ue649',\r\n 'uicon-calendar': '\\ue66e',\r\n 'uicon-calendar-fill': '\\ue634',\r\n 'uicon-trash': '\\ue623',\r\n 'uicon-trash-fill': '\\ue658',\r\n 'uicon-play-left': '\\ue66d',\r\n 'uicon-play-right': '\\ue610',\r\n 'uicon-minus': '\\ue618',\r\n 'uicon-plus': '\\ue62d',\r\n 'uicon-info': '\\ue653',\r\n 'uicon-info-circle': '\\ue7d2',\r\n 'uicon-info-circle-fill': '\\ue64b',\r\n 'uicon-question': '\\ue715',\r\n 'uicon-error': '\\ue6d3',\r\n 'uicon-close': '\\ue685',\r\n 'uicon-checkmark': '\\ue6a8',\r\n 'uicon-android-circle-fill': '\\ue67e',\r\n 'uicon-android-fill': '\\ue67d',\r\n 'uicon-ie': '\\ue87b',\r\n 'uicon-IE-circle-fill': '\\ue889',\r\n 'uicon-google': '\\ue87a',\r\n 'uicon-google-circle-fill': '\\ue88a',\r\n 'uicon-setting-fill': '\\ue872',\r\n 'uicon-setting': '\\ue61f',\r\n 'uicon-minus-square-fill': '\\ue855',\r\n 'uicon-plus-square-fill': '\\ue856',\r\n 'uicon-heart': '\\ue7df',\r\n 'uicon-heart-fill': '\\ue851',\r\n 'uicon-camera': '\\ue7d7',\r\n 'uicon-camera-fill': '\\ue870',\r\n 'uicon-more-circle': '\\ue63e',\r\n 'uicon-more-circle-fill': '\\ue645',\r\n 'uicon-chat': '\\ue620',\r\n 'uicon-chat-fill': '\\ue61e',\r\n 'uicon-bag-fill': '\\ue617',\r\n 'uicon-bag': '\\ue619',\r\n 'uicon-error-circle-fill': '\\ue62c',\r\n 'uicon-error-circle': '\\ue624',\r\n 'uicon-close-circle': '\\ue63f',\r\n 'uicon-close-circle-fill': '\\ue637',\r\n 'uicon-checkmark-circle': '\\ue63d',\r\n 'uicon-checkmark-circle-fill': '\\ue635',\r\n 'uicon-question-circle-fill': '\\ue666',\r\n 'uicon-question-circle': '\\ue625',\r\n 'uicon-share': '\\ue631',\r\n 'uicon-share-fill': '\\ue65e',\r\n 'uicon-shopping-cart': '\\ue621',\r\n 'uicon-shopping-cart-fill': '\\ue65d',\r\n 'uicon-bell': '\\ue609',\r\n 'uicon-bell-fill': '\\ue640',\r\n 'uicon-list': '\\ue650',\r\n 'uicon-list-dot': '\\ue616',\r\n 'uicon-zhihu': '\\ue6ba',\r\n 'uicon-zhihu-circle-fill': '\\ue709',\r\n 'uicon-zhifubao': '\\ue6b9',\r\n 'uicon-zhifubao-circle-fill': '\\ue6b8',\r\n 'uicon-weixin-circle-fill': '\\ue6b1',\r\n 'uicon-weixin-fill': '\\ue6b2',\r\n 'uicon-twitter-circle-fill': '\\ue6ab',\r\n 'uicon-twitter': '\\ue6aa',\r\n 'uicon-taobao-circle-fill': '\\ue6a7',\r\n 'uicon-taobao': '\\ue6a6',\r\n 'uicon-weibo-circle-fill': '\\ue6a5',\r\n 'uicon-weibo': '\\ue6a4',\r\n 'uicon-qq-fill': '\\ue6a1',\r\n 'uicon-qq-circle-fill': '\\ue6a0',\r\n 'uicon-moments-circel-fill': '\\ue69a',\r\n 'uicon-moments': '\\ue69b',\r\n 'uicon-qzone': '\\ue695',\r\n 'uicon-qzone-circle-fill': '\\ue696',\r\n 'uicon-baidu-circle-fill': '\\ue680',\r\n 'uicon-baidu': '\\ue681',\r\n 'uicon-facebook-circle-fill': '\\ue68a',\r\n 'uicon-facebook': '\\ue689',\r\n 'uicon-car': '\\ue60c',\r\n 'uicon-car-fill': '\\ue636',\r\n 'uicon-warning-fill': '\\ue64d',\r\n 'uicon-warning': '\\ue694',\r\n 'uicon-clock-fill': '\\ue638',\r\n 'uicon-clock': '\\ue60f',\r\n 'uicon-edit-pen': '\\ue612',\r\n 'uicon-edit-pen-fill': '\\ue66b',\r\n 'uicon-email': '\\ue611',\r\n 'uicon-email-fill': '\\ue642',\r\n 'uicon-minus-circle': '\\ue61b',\r\n 'uicon-minus-circle-fill': '\\ue652',\r\n 'uicon-plus-circle': '\\ue62e',\r\n 'uicon-plus-circle-fill': '\\ue661',\r\n 'uicon-file-text': '\\ue663',\r\n 'uicon-file-text-fill': '\\ue665',\r\n 'uicon-pushpin': '\\ue7e3',\r\n 'uicon-pushpin-fill': '\\ue86e',\r\n 'uicon-grid': '\\ue673',\r\n 'uicon-grid-fill': '\\ue678',\r\n 'uicon-play-circle': '\\ue647',\r\n 'uicon-play-circle-fill': '\\ue655',\r\n 'uicon-pause-circle-fill': '\\ue654',\r\n 'uicon-pause': '\\ue8fa',\r\n 'uicon-pause-circle': '\\ue643',\r\n 'uicon-eye-off': '\\ue648',\r\n 'uicon-eye-off-outline': '\\ue62b',\r\n 'uicon-gift-fill': '\\ue65c',\r\n 'uicon-gift': '\\ue65b',\r\n 'uicon-rmb-circle-fill': '\\ue657',\r\n 'uicon-rmb-circle': '\\ue677',\r\n 'uicon-kefu-ermai': '\\ue656',\r\n 'uicon-server-fill': '\\ue751',\r\n 'uicon-coupon-fill': '\\ue8c4',\r\n 'uicon-coupon': '\\ue8ae',\r\n 'uicon-integral': '\\ue704',\r\n 'uicon-integral-fill': '\\ue703',\r\n 'uicon-home-fill': '\\ue964',\r\n 'uicon-home': '\\ue965',\r\n 'uicon-hourglass-half-fill': '\\ue966',\r\n 'uicon-hourglass': '\\ue967',\r\n 'uicon-account': '\\ue628',\r\n 'uicon-plus-people-fill': '\\ue626',\r\n 'uicon-minus-people-fill': '\\ue615',\r\n 'uicon-account-fill': '\\ue614',\r\n 'uicon-thumb-down-fill': '\\ue726',\r\n 'uicon-thumb-down': '\\ue727',\r\n 'uicon-thumb-up': '\\ue733',\r\n 'uicon-thumb-up-fill': '\\ue72f',\r\n 'uicon-lock-fill': '\\ue979',\r\n 'uicon-lock-open': '\\ue973',\r\n 'uicon-lock-opened-fill': '\\ue974',\r\n 'uicon-lock': '\\ue97a',\r\n 'uicon-red-packet-fill': '\\ue690',\r\n 'uicon-photo-fill': '\\ue98b',\r\n 'uicon-photo': '\\ue98d',\r\n 'uicon-volume-off-fill': '\\ue659',\r\n 'uicon-volume-off': '\\ue644',\r\n 'uicon-volume-fill': '\\ue670',\r\n 'uicon-volume': '\\ue633',\r\n 'uicon-red-packet': '\\ue691',\r\n 'uicon-download': '\\ue63c',\r\n 'uicon-arrow-up-fill': '\\ue6b0',\r\n 'uicon-arrow-down-fill': '\\ue600',\r\n 'uicon-play-left-fill': '\\ue675',\r\n 'uicon-play-right-fill': '\\ue676',\r\n 'uicon-rewind-left-fill': '\\ue679',\r\n 'uicon-rewind-right-fill': '\\ue67a',\r\n 'uicon-arrow-downward': '\\ue604',\r\n 'uicon-arrow-leftward': '\\ue601',\r\n 'uicon-arrow-rightward': '\\ue603',\r\n 'uicon-arrow-upward': '\\ue607',\r\n 'uicon-arrow-down': '\\ue60d',\r\n 'uicon-arrow-right': '\\ue605',\r\n 'uicon-arrow-left': '\\ue60e',\r\n 'uicon-arrow-up': '\\ue606',\r\n 'uicon-skip-back-left': '\\ue674',\r\n 'uicon-skip-forward-right': '\\ue672',\r\n 'uicon-rewind-right': '\\ue66f',\r\n 'uicon-rewind-left': '\\ue671',\r\n 'uicon-arrow-right-double': '\\ue68d',\r\n 'uicon-arrow-left-double': '\\ue68c',\r\n 'uicon-wifi-off': '\\ue668',\r\n 'uicon-wifi': '\\ue667',\r\n 'uicon-empty-data': '\\ue62f',\r\n 'uicon-empty-history': '\\ue684',\r\n 'uicon-empty-list': '\\ue68b',\r\n 'uicon-empty-page': '\\ue627',\r\n 'uicon-empty-order': '\\ue639',\r\n 'uicon-man': '\\ue697',\r\n 'uicon-woman': '\\ue69c',\r\n 'uicon-man-add': '\\ue61c',\r\n 'uicon-man-add-fill': '\\ue64c',\r\n 'uicon-man-delete': '\\ue61a',\r\n 'uicon-man-delete-fill': '\\ue66a',\r\n 'uicon-zh': '\\ue70a',\r\n 'uicon-en': '\\ue692'\r\n}\r\n","export default {\n props: {\n // 图标类名\n name: {\n type: String,\n default: uni.$u.props.icon.name\n },\n // 图标颜色,可接受主题色\n color: {\n type: String,\n default: uni.$u.props.icon.color\n },\n // 字体大小,单位px\n size: {\n type: [String, Number],\n default: uni.$u.props.icon.size\n },\n // 是否显示粗体\n bold: {\n type: Boolean,\n default: uni.$u.props.icon.bold\n },\n // 点击图标的时候传递事件出去的index(用于区分点击了哪一个)\n index: {\n type: [String, Number],\n default: uni.$u.props.icon.index\n },\n // 触摸图标时的类名\n hoverClass: {\n type: String,\n default: uni.$u.props.icon.hoverClass\n },\n // 自定义扩展前缀,方便用户扩展自己的图标库\n customPrefix: {\n type: String,\n default: uni.$u.props.icon.customPrefix\n },\n // 图标右边或者下面的文字\n label: {\n type: [String, Number],\n default: uni.$u.props.icon.label\n },\n // label的位置,只能右边或者下边\n labelPos: {\n type: String,\n default: uni.$u.props.icon.labelPos\n },\n // label的大小\n labelSize: {\n type: [String, Number],\n default: uni.$u.props.icon.labelSize\n },\n // label的颜色\n labelColor: {\n type: String,\n default: uni.$u.props.icon.labelColor\n },\n // label与图标的距离\n space: {\n type: [String, Number],\n default: uni.$u.props.icon.space\n },\n // 图片的mode\n imgMode: {\n type: String,\n default: uni.$u.props.icon.imgMode\n },\n // 用于显示图片小图标时,图片的宽度\n width: {\n type: [String, Number],\n default: uni.$u.props.icon.width\n },\n // 用于显示图片小图标时,图片的高度\n height: {\n type: [String, Number],\n default: uni.$u.props.icon.height\n },\n // 用于解决某些情况下,让图标垂直居中的用途\n top: {\n type: [String, Number],\n default: uni.$u.props.icon.top\n },\n // 是否阻止事件传播\n stop: {\n type: Boolean,\n default: uni.$u.props.icon.stop\n }\n }\n}\n","export default {\n props: {\n // 是否显示遮罩\n show: {\n type: Boolean,\n default: uni.$u.props.overlay.show\n },\n // 层级z-index\n zIndex: {\n type: [String, Number],\n default: uni.$u.props.overlay.zIndex\n },\n // 遮罩的过渡时间,单位为ms\n duration: {\n type: [String, Number],\n default: uni.$u.props.overlay.duration\n },\n // 不透明度值,当做rgba的第四个参数\n opacity: {\n type: [String, Number],\n default: uni.$u.props.overlay.opacity\n }\n }\n}\n","export default {\r\n props: {\r\n // 是否显示组件\r\n show: {\r\n type: Boolean,\r\n default: uni.$u.props.loadingIcon.show\r\n },\r\n // 颜色\r\n color: {\r\n type: String,\r\n default: uni.$u.props.loadingIcon.color\r\n },\r\n // 提示文字颜色\r\n textColor: {\r\n type: String,\r\n default: uni.$u.props.loadingIcon.textColor\r\n },\r\n // 文字和图标是否垂直排列\r\n vertical: {\r\n type: Boolean,\r\n default: uni.$u.props.loadingIcon.vertical\r\n },\r\n // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形\r\n mode: {\r\n type: String,\r\n default: uni.$u.props.loadingIcon.mode\r\n },\r\n // 图标大小,单位默认px\r\n size: {\r\n type: [String, Number],\r\n default: uni.$u.props.loadingIcon.size\r\n },\r\n // 文字大小\r\n textSize: {\r\n type: [String, Number],\r\n default: uni.$u.props.loadingIcon.textSize\r\n },\r\n // 文字内容\r\n text: {\r\n type: [String, Number],\r\n default: uni.$u.props.loadingIcon.text\r\n },\r\n // 动画模式\r\n timingFunction: {\r\n type: String,\r\n default: uni.$u.props.loadingIcon.timingFunction\r\n },\r\n // 动画执行周期时间\r\n duration: {\r\n type: [String, Number],\r\n default: uni.$u.props.loadingIcon.duration\r\n },\r\n // mode=circle时的暗边颜色\r\n inactiveColor: {\r\n type: String,\r\n default: uni.$u.props.loadingIcon.inactiveColor\r\n }\r\n }\r\n}\r\n","export default {\n props: {\n // 背景颜色(默认transparent)\n bgColor: {\n type: String,\n default: uni.$u.props.gap.bgColor\n },\n // 分割槽高度,单位px(默认30)\n height: {\n type: [String, Number],\n default: uni.$u.props.gap.height\n },\n // 与上一个组件的距离\n marginTop: {\n type: [String, Number],\n default: uni.$u.props.gap.marginTop\n },\n // 与下一个组件的距离\n marginBottom: {\n type: [String, Number],\n default: uni.$u.props.gap.marginBottom\n }\n }\n}\n","export default {\n props: {\n color: {\n type: String,\n default: uni.$u.props.line.color\n },\n // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等\n length: {\n type: [String, Number],\n default: uni.$u.props.line.length\n },\n // 线条方向,col-竖向,row-横向\n direction: {\n type: String,\n default: uni.$u.props.line.direction\n },\n // 是否显示细边框\n hairline: {\n type: Boolean,\n default: uni.$u.props.line.hairline\n },\n // 线条与上下左右元素的间距,字符串形式,如\"30px\"、\"20px 30px\"\n margin: {\n type: [String, Number],\n default: uni.$u.props.line.margin\n },\n // 是否虚线,true-虚线,false-实线\n dashed: {\n type: Boolean,\n default: uni.$u.props.line.dashed\n }\n }\n}\n","function _extends() {\r\n _extends = Object.assign || function (target) {\r\n for (let i = 1; i < arguments.length; i++) {\r\n const source = arguments[i]\r\n\r\n for (const key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key]\r\n }\r\n }\r\n }\r\n\r\n return target\r\n }\r\n\r\n return _extends.apply(this, arguments)\r\n}\r\n\r\n/* eslint no-console:0 */\r\nconst formatRegExp = /%[sdj%]/g\r\nlet warning = function warning() {} // don't print warning message when in production env or node runtime\r\n\r\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window\r\n\t!== 'undefined' && typeof document !== 'undefined') {\r\n warning = function warning(type, errors) {\r\n if (typeof console !== 'undefined' && console.warn) {\r\n if (errors.every((e) => typeof e === 'string')) {\r\n console.warn(type, errors)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction convertFieldsError(errors) {\r\n if (!errors || !errors.length) return null\r\n const fields = {}\r\n errors.forEach((error) => {\r\n const { field } = error\r\n fields[field] = fields[field] || []\r\n fields[field].push(error)\r\n })\r\n return fields\r\n}\r\n\r\nfunction format() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n\r\n let i = 1\r\n const f = args[0]\r\n const len = args.length\r\n\r\n if (typeof f === 'function') {\r\n return f.apply(null, args.slice(1))\r\n }\r\n\r\n if (typeof f === 'string') {\r\n let str = String(f).replace(formatRegExp, (x) => {\r\n if (x === '%%') {\r\n return '%'\r\n }\r\n\r\n if (i >= len) {\r\n return x\r\n }\r\n\r\n switch (x) {\r\n case '%s':\r\n return String(args[i++])\r\n\r\n case '%d':\r\n return Number(args[i++])\r\n\r\n case '%j':\r\n try {\r\n return JSON.stringify(args[i++])\r\n } catch (_) {\r\n return '[Circular]'\r\n }\r\n\r\n break\r\n\r\n default:\r\n return x\r\n }\r\n })\r\n\r\n for (let arg = args[i]; i < len; arg = args[++i]) {\r\n str += ` ${arg}`\r\n }\r\n\r\n return str\r\n }\r\n\r\n return f\r\n}\r\n\r\nfunction isNativeStringType(type) {\r\n return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern'\r\n}\r\n\r\nfunction isEmptyValue(value, type) {\r\n if (value === undefined || value === null) {\r\n return true\r\n }\r\n\r\n if (type === 'array' && Array.isArray(value) && !value.length) {\r\n return true\r\n }\r\n\r\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n\r\nfunction asyncParallelArray(arr, func, callback) {\r\n const results = []\r\n let total = 0\r\n const arrLength = arr.length\r\n\r\n function count(errors) {\r\n results.push.apply(results, errors)\r\n total++\r\n\r\n if (total === arrLength) {\r\n callback(results)\r\n }\r\n }\r\n\r\n arr.forEach((a) => {\r\n func(a, count)\r\n })\r\n}\r\n\r\nfunction asyncSerialArray(arr, func, callback) {\r\n let index = 0\r\n const arrLength = arr.length\r\n\r\n function next(errors) {\r\n if (errors && errors.length) {\r\n callback(errors)\r\n return\r\n }\r\n\r\n const original = index\r\n index += 1\r\n\r\n if (original < arrLength) {\r\n func(arr[original], next)\r\n } else {\r\n callback([])\r\n }\r\n }\r\n\r\n next([])\r\n}\r\n\r\nfunction flattenObjArr(objArr) {\r\n const ret = []\r\n Object.keys(objArr).forEach((k) => {\r\n ret.push.apply(ret, objArr[k])\r\n })\r\n return ret\r\n}\r\n\r\nfunction asyncMap(objArr, option, func, callback) {\r\n if (option.first) {\r\n const _pending = new Promise((resolve, reject) => {\r\n const next = function next(errors) {\r\n callback(errors)\r\n return errors.length ? reject({\r\n errors,\r\n fields: convertFieldsError(errors)\r\n }) : resolve()\r\n }\r\n\r\n const flattenArr = flattenObjArr(objArr)\r\n asyncSerialArray(flattenArr, func, next)\r\n })\r\n\r\n _pending.catch((e) => e)\r\n\r\n return _pending\r\n }\r\n\r\n let firstFields = option.firstFields || []\r\n\r\n if (firstFields === true) {\r\n firstFields = Object.keys(objArr)\r\n }\r\n\r\n const objArrKeys = Object.keys(objArr)\r\n const objArrLength = objArrKeys.length\r\n let total = 0\r\n const results = []\r\n const pending = new Promise((resolve, reject) => {\r\n const next = function next(errors) {\r\n results.push.apply(results, errors)\r\n total++\r\n\r\n if (total === objArrLength) {\r\n callback(results)\r\n return results.length ? reject({\r\n errors: results,\r\n fields: convertFieldsError(results)\r\n }) : resolve()\r\n }\r\n }\r\n\r\n if (!objArrKeys.length) {\r\n callback(results)\r\n resolve()\r\n }\r\n\r\n objArrKeys.forEach((key) => {\r\n const arr = objArr[key]\r\n\r\n if (firstFields.indexOf(key) !== -1) {\r\n asyncSerialArray(arr, func, next)\r\n } else {\r\n asyncParallelArray(arr, func, next)\r\n }\r\n })\r\n })\r\n pending.catch((e) => e)\r\n return pending\r\n}\r\n\r\nfunction complementError(rule) {\r\n return function (oe) {\r\n if (oe && oe.message) {\r\n oe.field = oe.field || rule.fullField\r\n return oe\r\n }\r\n\r\n return {\r\n message: typeof oe === 'function' ? oe() : oe,\r\n field: oe.field || rule.fullField\r\n }\r\n }\r\n}\r\n\r\nfunction deepMerge(target, source) {\r\n if (source) {\r\n for (const s in source) {\r\n if (source.hasOwnProperty(s)) {\r\n const value = source[s]\r\n\r\n if (typeof value === 'object' && typeof target[s] === 'object') {\r\n target[s] = { ...target[s], ...value }\r\n } else {\r\n target[s] = value\r\n }\r\n }\r\n }\r\n }\r\n\r\n return target\r\n}\r\n\r\n/**\r\n * Rule for validating required fields.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction required(rule, value, source, errors, options, type) {\r\n if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\r\n errors.push(format(options.messages.required, rule.fullField))\r\n }\r\n}\r\n\r\n/**\r\n * Rule for validating whitespace.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction whitespace(rule, value, source, errors, options) {\r\n if (/^\\s+$/.test(value) || value === '') {\r\n errors.push(format(options.messages.whitespace, rule.fullField))\r\n }\r\n}\r\n\r\n/* eslint max-len:0 */\r\n\r\nconst pattern = {\r\n // http://emailregex.com/\r\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n url: new RegExp(\r\n '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\r\n 'i'\r\n ),\r\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\r\n}\r\nvar types = {\r\n integer: function integer(value) {\r\n return /^(-)?\\d+$/.test(value);\r\n },\r\n float: function float(value) {\r\n return /^(-)?\\d+(\\.\\d+)?$/.test(value);\r\n },\r\n array: function array(value) {\r\n return Array.isArray(value)\r\n },\r\n regexp: function regexp(value) {\r\n if (value instanceof RegExp) {\r\n return true\r\n }\r\n\r\n try {\r\n return !!new RegExp(value)\r\n } catch (e) {\r\n return false\r\n }\r\n },\r\n date: function date(value) {\r\n return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear\r\n\t\t\t=== 'function'\r\n },\r\n number: function number(value) {\r\n if (isNaN(value)) {\r\n return false\r\n }\r\n\r\n // 修改源码,将字符串数值先转为数值\r\n return typeof +value === 'number'\r\n },\r\n object: function object(value) {\r\n return typeof value === 'object' && !types.array(value)\r\n },\r\n method: function method(value) {\r\n return typeof value === 'function'\r\n },\r\n email: function email(value) {\r\n return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255\r\n },\r\n url: function url(value) {\r\n return typeof value === 'string' && !!value.match(pattern.url)\r\n },\r\n hex: function hex(value) {\r\n return typeof value === 'string' && !!value.match(pattern.hex)\r\n }\r\n}\r\n/**\r\n * Rule for validating the type of a value.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction type(rule, value, source, errors, options) {\r\n if (rule.required && value === undefined) {\r\n required(rule, value, source, errors, options)\r\n return\r\n }\r\n\r\n const custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex']\r\n const ruleType = rule.type\r\n\r\n if (custom.indexOf(ruleType) > -1) {\r\n if (!types[ruleType](value)) {\r\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type))\r\n } // straight typeof check\r\n } else if (ruleType && typeof value !== rule.type) {\r\n errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type))\r\n }\r\n}\r\n\r\n/**\r\n * Rule for validating minimum and maximum allowed values.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction range(rule, value, source, errors, options) {\r\n const len = typeof rule.len === 'number'\r\n const min = typeof rule.min === 'number'\r\n const max = typeof rule.max === 'number' // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\r\n\r\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g\r\n let val = value\r\n let key = null\r\n const num = typeof value === 'number'\r\n const str = typeof value === 'string'\r\n const arr = Array.isArray(value)\r\n\r\n if (num) {\r\n key = 'number'\r\n } else if (str) {\r\n key = 'string'\r\n } else if (arr) {\r\n key = 'array'\r\n } // if the value is not of a supported type for range validation\r\n // the validation rule rule should use the\r\n // type property to also test for a particular type\r\n\r\n if (!key) {\r\n return false\r\n }\r\n\r\n if (arr) {\r\n val = value.length\r\n }\r\n\r\n if (str) {\r\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\r\n val = value.replace(spRegexp, '_').length\r\n }\r\n\r\n if (len) {\r\n if (val !== rule.len) {\r\n errors.push(format(options.messages[key].len, rule.fullField, rule.len))\r\n }\r\n } else if (min && !max && val < rule.min) {\r\n errors.push(format(options.messages[key].min, rule.fullField, rule.min))\r\n } else if (max && !min && val > rule.max) {\r\n errors.push(format(options.messages[key].max, rule.fullField, rule.max))\r\n } else if (min && max && (val < rule.min || val > rule.max)) {\r\n errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max))\r\n }\r\n}\r\n\r\nconst ENUM = 'enum'\r\n/**\r\n * Rule for validating a value exists in an enumerable list.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction enumerable(rule, value, source, errors, options) {\r\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : []\r\n\r\n if (rule[ENUM].indexOf(value) === -1) {\r\n errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')))\r\n }\r\n}\r\n\r\n/**\r\n * Rule for validating a regular expression pattern.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param source The source object being validated.\r\n * @param errors An array of errors that this rule may add\r\n * validation errors to.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction pattern$1(rule, value, source, errors, options) {\r\n if (rule.pattern) {\r\n if (rule.pattern instanceof RegExp) {\r\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\r\n // flag is accidentally set to `true`, which in a validation scenario\r\n // is not necessary and the result might be misleading\r\n rule.pattern.lastIndex = 0\r\n\r\n if (!rule.pattern.test(value)) {\r\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern))\r\n }\r\n } else if (typeof rule.pattern === 'string') {\r\n const _pattern = new RegExp(rule.pattern)\r\n\r\n if (!_pattern.test(value)) {\r\n errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern))\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst rules = {\r\n required,\r\n whitespace,\r\n type,\r\n range,\r\n enum: enumerable,\r\n pattern: pattern$1\r\n}\r\n\r\n/**\r\n * Performs validation for string types.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction string(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value, 'string') && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options, 'string')\r\n\r\n if (!isEmptyValue(value, 'string')) {\r\n rules.type(rule, value, source, errors, options)\r\n rules.range(rule, value, source, errors, options)\r\n rules.pattern(rule, value, source, errors, options)\r\n\r\n if (rule.whitespace === true) {\r\n rules.whitespace(rule, value, source, errors, options)\r\n }\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates a function.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction method(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (value !== undefined) {\r\n rules.type(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates a number.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction number(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (value === '') {\r\n value = undefined\r\n }\r\n\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (value !== undefined) {\r\n rules.type(rule, value, source, errors, options)\r\n rules.range(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates a boolean.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction _boolean(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (value !== undefined) {\r\n rules.type(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates the regular expression type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction regexp(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (!isEmptyValue(value)) {\r\n rules.type(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates a number is an integer.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction integer(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (value !== undefined) {\r\n rules.type(rule, value, source, errors, options)\r\n rules.range(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates a number is a floating point number.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction floatFn(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (value !== undefined) {\r\n rules.type(rule, value, source, errors, options)\r\n rules.range(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates an array.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction array(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value, 'array') && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options, 'array')\r\n\r\n if (!isEmptyValue(value, 'array')) {\r\n rules.type(rule, value, source, errors, options)\r\n rules.range(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates an object.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction object(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (value !== undefined) {\r\n rules.type(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\nconst ENUM$1 = 'enum'\r\n/**\r\n * Validates an enumerable list.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction enumerable$1(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (value !== undefined) {\r\n rules[ENUM$1](rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Validates a regular expression pattern.\r\n *\r\n * Performs validation when a rule only contains\r\n * a pattern property but is not declared as a string type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction pattern$2(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value, 'string') && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (!isEmptyValue(value, 'string')) {\r\n rules.pattern(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\nfunction date(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n\r\n if (!isEmptyValue(value)) {\r\n let dateObject\r\n\r\n if (typeof value === 'number') {\r\n dateObject = new Date(value)\r\n } else {\r\n dateObject = value\r\n }\r\n\r\n rules.type(rule, dateObject, source, errors, options)\r\n\r\n if (dateObject) {\r\n rules.range(rule, dateObject.getTime(), source, errors, options)\r\n }\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\nfunction required$1(rule, value, callback, source, options) {\r\n const errors = []\r\n const type = Array.isArray(value) ? 'array' : typeof value\r\n rules.required(rule, value, source, errors, options, type)\r\n callback(errors)\r\n}\r\n\r\nfunction type$1(rule, value, callback, source, options) {\r\n const ruleType = rule.type\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value, ruleType) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options, ruleType)\r\n\r\n if (!isEmptyValue(value, ruleType)) {\r\n rules.type(rule, value, source, errors, options)\r\n }\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\n/**\r\n * Performs validation for any type.\r\n *\r\n * @param rule The validation rule.\r\n * @param value The value of the field on the source object.\r\n * @param callback The callback function.\r\n * @param source The source object being validated.\r\n * @param options The validation options.\r\n * @param options.messages The validation messages.\r\n */\r\n\r\nfunction any(rule, value, callback, source, options) {\r\n const errors = []\r\n const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field)\r\n\r\n if (validate) {\r\n if (isEmptyValue(value) && !rule.required) {\r\n return callback()\r\n }\r\n\r\n rules.required(rule, value, source, errors, options)\r\n }\r\n\r\n callback(errors)\r\n}\r\n\r\nconst validators = {\r\n string,\r\n method,\r\n number,\r\n boolean: _boolean,\r\n regexp,\r\n integer,\r\n float: floatFn,\r\n array,\r\n object,\r\n enum: enumerable$1,\r\n pattern: pattern$2,\r\n date,\r\n url: type$1,\r\n hex: type$1,\r\n email: type$1,\r\n required: required$1,\r\n any\r\n}\r\n\r\nfunction newMessages() {\r\n return {\r\n default: 'Validation error on field %s',\r\n required: '%s is required',\r\n enum: '%s must be one of %s',\r\n whitespace: '%s cannot be empty',\r\n date: {\r\n format: '%s date %s is invalid for format %s',\r\n parse: '%s date could not be parsed, %s is invalid ',\r\n invalid: '%s date %s is invalid'\r\n },\r\n types: {\r\n string: '%s is not a %s',\r\n method: '%s is not a %s (function)',\r\n array: '%s is not an %s',\r\n object: '%s is not an %s',\r\n number: '%s is not a %s',\r\n date: '%s is not a %s',\r\n boolean: '%s is not a %s',\r\n integer: '%s is not an %s',\r\n float: '%s is not a %s',\r\n regexp: '%s is not a valid %s',\r\n email: '%s is not a valid %s',\r\n url: '%s is not a valid %s',\r\n hex: '%s is not a valid %s'\r\n },\r\n string: {\r\n len: '%s must be exactly %s characters',\r\n min: '%s must be at least %s characters',\r\n max: '%s cannot be longer than %s characters',\r\n range: '%s must be between %s and %s characters'\r\n },\r\n number: {\r\n len: '%s must equal %s',\r\n min: '%s cannot be less than %s',\r\n max: '%s cannot be greater than %s',\r\n range: '%s must be between %s and %s'\r\n },\r\n array: {\r\n len: '%s must be exactly %s in length',\r\n min: '%s cannot be less than %s in length',\r\n max: '%s cannot be greater than %s in length',\r\n range: '%s must be between %s and %s in length'\r\n },\r\n pattern: {\r\n mismatch: '%s value %s does not match pattern %s'\r\n },\r\n clone: function clone() {\r\n const cloned = JSON.parse(JSON.stringify(this))\r\n cloned.clone = this.clone\r\n return cloned\r\n }\r\n }\r\n}\r\nconst messages = newMessages()\r\n\r\n/**\r\n * Encapsulates a validation schema.\r\n *\r\n * @param descriptor An object declaring validation rules\r\n * for this schema.\r\n */\r\n\r\nfunction Schema(descriptor) {\r\n this.rules = null\r\n this._messages = messages\r\n this.define(descriptor)\r\n}\r\n\r\nSchema.prototype = {\r\n messages: function messages(_messages) {\r\n if (_messages) {\r\n this._messages = deepMerge(newMessages(), _messages)\r\n }\r\n\r\n return this._messages\r\n },\r\n define: function define(rules) {\r\n if (!rules) {\r\n throw new Error('Cannot configure a schema with no rules')\r\n }\r\n\r\n if (typeof rules !== 'object' || Array.isArray(rules)) {\r\n throw new Error('Rules must be an object')\r\n }\r\n\r\n this.rules = {}\r\n let z\r\n let item\r\n\r\n for (z in rules) {\r\n if (rules.hasOwnProperty(z)) {\r\n item = rules[z]\r\n this.rules[z] = Array.isArray(item) ? item : [item]\r\n }\r\n }\r\n },\r\n validate: function validate(source_, o, oc) {\r\n const _this = this\r\n\r\n if (o === void 0) {\r\n o = {}\r\n }\r\n\r\n if (oc === void 0) {\r\n oc = function oc() {}\r\n }\r\n\r\n let source = source_\r\n let options = o\r\n let callback = oc\r\n\r\n if (typeof options === 'function') {\r\n callback = options\r\n options = {}\r\n }\r\n\r\n if (!this.rules || Object.keys(this.rules).length === 0) {\r\n if (callback) {\r\n callback()\r\n }\r\n\r\n return Promise.resolve()\r\n }\r\n\r\n function complete(results) {\r\n let i\r\n let errors = []\r\n let fields = {}\r\n\r\n function add(e) {\r\n if (Array.isArray(e)) {\r\n let _errors\r\n\r\n errors = (_errors = errors).concat.apply(_errors, e)\r\n } else {\r\n errors.push(e)\r\n }\r\n }\r\n\r\n for (i = 0; i < results.length; i++) {\r\n add(results[i])\r\n }\r\n\r\n if (!errors.length) {\r\n errors = null\r\n fields = null\r\n } else {\r\n fields = convertFieldsError(errors)\r\n }\r\n\r\n callback(errors, fields)\r\n }\r\n\r\n if (options.messages) {\r\n let messages$1 = this.messages()\r\n\r\n if (messages$1 === messages) {\r\n messages$1 = newMessages()\r\n }\r\n\r\n deepMerge(messages$1, options.messages)\r\n options.messages = messages$1\r\n } else {\r\n options.messages = this.messages()\r\n }\r\n\r\n let arr\r\n let value\r\n const series = {}\r\n const keys = options.keys || Object.keys(this.rules)\r\n keys.forEach((z) => {\r\n arr = _this.rules[z]\r\n value = source[z]\r\n arr.forEach((r) => {\r\n let rule = r\r\n\r\n if (typeof rule.transform === 'function') {\r\n if (source === source_) {\r\n source = { ...source }\r\n }\r\n\r\n value = source[z] = rule.transform(value)\r\n }\r\n\r\n if (typeof rule === 'function') {\r\n rule = {\r\n validator: rule\r\n }\r\n } else {\r\n rule = { ...rule }\r\n }\r\n\r\n rule.validator = _this.getValidationMethod(rule)\r\n rule.field = z\r\n rule.fullField = rule.fullField || z\r\n rule.type = _this.getType(rule)\r\n\r\n if (!rule.validator) {\r\n return\r\n }\r\n\r\n series[z] = series[z] || []\r\n series[z].push({\r\n rule,\r\n value,\r\n source,\r\n field: z\r\n })\r\n })\r\n })\r\n const errorFields = {}\r\n return asyncMap(series, options, (data, doIt) => {\r\n const { rule } = data\r\n let deep = (rule.type === 'object' || rule.type === 'array') && (typeof rule.fields === 'object' || typeof rule.defaultField\r\n\t\t\t\t=== 'object')\r\n deep = deep && (rule.required || !rule.required && data.value)\r\n rule.field = data.field\r\n\r\n function addFullfield(key, schema) {\r\n return { ...schema, fullField: `${rule.fullField}.${key}` }\r\n }\r\n\r\n function cb(e) {\r\n if (e === void 0) {\r\n e = []\r\n }\r\n\r\n let errors = e\r\n\r\n if (!Array.isArray(errors)) {\r\n errors = [errors]\r\n }\r\n\r\n if (!options.suppressWarning && errors.length) {\r\n Schema.warning('async-validator:', errors)\r\n }\r\n\r\n if (errors.length && rule.message) {\r\n errors = [].concat(rule.message)\r\n }\r\n\r\n errors = errors.map(complementError(rule))\r\n\r\n if (options.first && errors.length) {\r\n errorFields[rule.field] = 1\r\n return doIt(errors)\r\n }\r\n\r\n if (!deep) {\r\n doIt(errors)\r\n } else {\r\n // if rule is required but the target object\r\n // does not exist fail at the rule level and don't\r\n // go deeper\r\n if (rule.required && !data.value) {\r\n if (rule.message) {\r\n errors = [].concat(rule.message).map(complementError(rule))\r\n } else if (options.error) {\r\n errors = [options.error(rule, format(options.messages.required, rule.field))]\r\n } else {\r\n errors = []\r\n }\r\n\r\n return doIt(errors)\r\n }\r\n\r\n let fieldsSchema = {}\r\n\r\n if (rule.defaultField) {\r\n for (const k in data.value) {\r\n if (data.value.hasOwnProperty(k)) {\r\n fieldsSchema[k] = rule.defaultField\r\n }\r\n }\r\n }\r\n\r\n fieldsSchema = { ...fieldsSchema, ...data.rule.fields }\r\n\r\n for (const f in fieldsSchema) {\r\n if (fieldsSchema.hasOwnProperty(f)) {\r\n const fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]]\r\n fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f))\r\n }\r\n }\r\n\r\n const schema = new Schema(fieldsSchema)\r\n schema.messages(options.messages)\r\n\r\n if (data.rule.options) {\r\n data.rule.options.messages = options.messages\r\n data.rule.options.error = options.error\r\n }\r\n\r\n schema.validate(data.value, data.rule.options || options, (errs) => {\r\n const finalErrors = []\r\n\r\n if (errors && errors.length) {\r\n finalErrors.push.apply(finalErrors, errors)\r\n }\r\n\r\n if (errs && errs.length) {\r\n finalErrors.push.apply(finalErrors, errs)\r\n }\r\n\r\n doIt(finalErrors.length ? finalErrors : null)\r\n })\r\n }\r\n }\r\n\r\n let res\r\n\r\n if (rule.asyncValidator) {\r\n res = rule.asyncValidator(rule, data.value, cb, data.source, options)\r\n } else if (rule.validator) {\r\n res = rule.validator(rule, data.value, cb, data.source, options)\r\n\r\n if (res === true) {\r\n cb()\r\n } else if (res === false) {\r\n cb(rule.message || `${rule.field} fails`)\r\n } else if (res instanceof Array) {\r\n cb(res)\r\n } else if (res instanceof Error) {\r\n cb(res.message)\r\n }\r\n }\r\n\r\n if (res && res.then) {\r\n res.then(() => cb(), (e) => cb(e))\r\n }\r\n }, (results) => {\r\n complete(results)\r\n })\r\n },\r\n getType: function getType(rule) {\r\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\r\n rule.type = 'pattern'\r\n }\r\n\r\n if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\r\n throw new Error(format('Unknown rule type %s', rule.type))\r\n }\r\n\r\n return rule.type || 'string'\r\n },\r\n getValidationMethod: function getValidationMethod(rule) {\r\n if (typeof rule.validator === 'function') {\r\n return rule.validator\r\n }\r\n\r\n const keys = Object.keys(rule)\r\n const messageIndex = keys.indexOf('message')\r\n\r\n if (messageIndex !== -1) {\r\n keys.splice(messageIndex, 1)\r\n }\r\n\r\n if (keys.length === 1 && keys[0] === 'required') {\r\n return validators.required\r\n }\r\n\r\n return validators[this.getType(rule)] || false\r\n }\r\n}\r\n\r\nSchema.register = function register(type, validator) {\r\n if (typeof validator !== 'function') {\r\n throw new Error('Cannot register a validator by type, validator is not a function')\r\n }\r\n\r\n validators[type] = validator\r\n}\r\n\r\nSchema.warning = warning\r\nSchema.messages = messages\r\n\r\nexport default Schema\r\n// # sourceMappingURL=index.js.map\r\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","export default {\n props: {\n // 是否展示工具条\n show: {\n type: Boolean,\n default: uni.$u.props.toolbar.show\n },\n // 取消按钮的文字\n cancelText: {\n type: String,\n default: uni.$u.props.toolbar.cancelText\n },\n // 确认按钮的文字\n confirmText: {\n type: String,\n default: uni.$u.props.toolbar.confirmText\n },\n // 取消按钮的颜色\n cancelColor: {\n type: String,\n default: uni.$u.props.toolbar.cancelColor\n },\n // 确认按钮的颜色\n confirmColor: {\n type: String,\n default: uni.$u.props.toolbar.confirmColor\n },\n // 标题文字\n title: {\n type: String,\n default: uni.$u.props.toolbar.title\n }\n }\n}\n","export default {\n props: {\n // 给col添加间距,左右边距各占一半\n gutter: {\n type: [String, Number],\n default: uni.$u.props.row.gutter\n },\n // 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`)\n justify: {\n type: String,\n default: uni.$u.props.row.justify\n },\n // 垂直对齐方式,可选值为top、center、bottom\n align: {\n type: String,\n default: uni.$u.props.row.align\n }\n }\n}\n","export default {\n props: {\n // 占父容器宽度的多少等分,总分为12份\n span: {\n type: [String, Number],\n default: uni.$u.props.col.span\n },\n // 指定栅格左侧的间隔数(总12栏)\n offset: {\n type: [String, Number],\n default: uni.$u.props.col.offset\n },\n // 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`)\n justify: {\n type: String,\n default: uni.$u.props.col.justify\n },\n // 垂直对齐方式,可选值为top、center、bottom、stretch\n align: {\n type: String,\n default: uni.$u.props.col.align\n },\n // 文字对齐方式\n textAlign: {\n type: String,\n default: uni.$u.props.col.textAlign\n }\n }\n}\n","export default {\n props: {\n // 是否展示组件\n show: {\n type: Boolean,\n default: uni.$u.props.transition.show\n },\n // 使用的动画模式\n mode: {\n type: String,\n default: uni.$u.props.transition.mode\n },\n // 动画的执行时间,单位ms\n duration: {\n type: [String, Number],\n default: uni.$u.props.transition.duration\n },\n // 使用的动画过渡函数\n timingFunction: {\n type: String,\n default: uni.$u.props.transition.timingFunction\n }\n }\n}\n","// 定义一个一定时间后自动成功的promise,让调用nextTick方法处,进入下一个then方法\r\nconst nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 50))\r\n// nvue动画模块实现细节抽离在外部文件\r\nimport animationMap from './nvue.ani-map.js'\r\n\r\n\r\n// 定义类名,通过给元素动态切换类名,赋予元素一定的css动画样式\r\nconst getClassNames = (name) => ({\r\n enter: `u-${name}-enter u-${name}-enter-active`,\r\n 'enter-to': `u-${name}-enter-to u-${name}-enter-active`,\r\n leave: `u-${name}-leave u-${name}-leave-active`,\r\n 'leave-to': `u-${name}-leave-to u-${name}-leave-active`\r\n})\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport default {\r\n methods: {\r\n // 组件被点击发出事件\r\n clickHandler() {\r\n this.$emit('click')\r\n },\r\n\r\n // vue版本的组件进场处理\r\n vueEnter() {\r\n // 动画进入时的类名\r\n const classNames = getClassNames(this.mode)\r\n // 定义状态和发出动画进入前事件\r\n this.status = 'enter'\r\n this.$emit('beforeEnter')\r\n this.inited = true\r\n this.display = true\r\n this.classes = classNames.enter\r\n this.$nextTick(async () => {\r\n\r\n\r\n\r\n // 标识动画尚未结束\r\n this.$emit('enter')\r\n this.transitionEnded = false\r\n\t\t\t\t// 组件动画进入后触发的事件\r\n this.$emit('afterEnter')\r\n // 赋予组件enter-to类名\r\n this.classes = classNames['enter-to']\r\n })\r\n },\r\n // 动画离场处理\r\n vueLeave() {\r\n // 如果不是展示状态,无需执行逻辑\r\n if (!this.display) return\r\n const classNames = getClassNames(this.mode)\r\n // 标记离开状态和发出事件\r\n this.status = 'leave'\r\n this.$emit('beforeLeave')\r\n // 获得类名\r\n this.classes = classNames.leave\r\n\r\n this.$nextTick(() => {\r\n // 动画正在离场的状态\r\n this.transitionEnded = false\r\n this.$emit('leave')\r\n // 组件执行动画,到了执行的执行时间后,执行一些额外处理\r\n setTimeout(this.onTransitionEnd, this.duration)\r\n this.classes = classNames['leave-to']\r\n })\r\n },\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // 完成过渡后触发\r\n onTransitionEnd() {\r\n // 如果已经是结束的状态,无需再处理\r\n if (this.transitionEnded) return\r\n this.transitionEnded = true\r\n // 发出组件动画执行后的事件\r\n this.$emit(this.status === 'leave' ? 'afterLeave' : 'afterEnter')\r\n if (!this.show && this.display) {\r\n this.display = false\r\n this.inited = false\r\n }\r\n }\r\n }\r\n}\r\n","export default {\r\n fade: {\r\n enter: { opacity: 0 },\r\n 'enter-to': { opacity: 1 },\r\n leave: { opacity: 1 },\r\n 'leave-to': { opacity: 0 }\r\n },\r\n 'fade-up': {\r\n enter: { opacity: 0, transform: 'translateY(100%)' },\r\n 'enter-to': { opacity: 1, transform: 'translateY(0)' },\r\n leave: { opacity: 1, transform: 'translateY(0)' },\r\n 'leave-to': { opacity: 0, transform: 'translateY(100%)' }\r\n },\r\n 'fade-down': {\r\n enter: { opacity: 0, transform: 'translateY(-100%)' },\r\n 'enter-to': { opacity: 1, transform: 'translateY(0)' },\r\n leave: { opacity: 1, transform: 'translateY(0)' },\r\n 'leave-to': { opacity: 0, transform: 'translateY(-100%)' }\r\n },\r\n 'fade-left': {\r\n enter: { opacity: 0, transform: 'translateX(-100%)' },\r\n 'enter-to': { opacity: 1, transform: 'translateY(0)' },\r\n leave: { opacity: 1, transform: 'translateY(0)' },\r\n 'leave-to': { opacity: 0, transform: 'translateX(-100%)' }\r\n },\r\n 'fade-right': {\r\n enter: { opacity: 0, transform: 'translateX(100%)' },\r\n 'enter-to': { opacity: 1, transform: 'translateY(0)' },\r\n leave: { opacity: 1, transform: 'translateY(0)' },\r\n 'leave-to': { opacity: 0, transform: 'translateX(100%)' }\r\n },\r\n 'slide-up': {\r\n enter: { transform: 'translateY(100%)' },\r\n 'enter-to': { transform: 'translateY(0)' },\r\n leave: { transform: 'translateY(0)' },\r\n 'leave-to': { transform: 'translateY(100%)' }\r\n },\r\n 'slide-down': {\r\n enter: { transform: 'translateY(-100%)' },\r\n 'enter-to': { transform: 'translateY(0)' },\r\n leave: { transform: 'translateY(0)' },\r\n 'leave-to': { transform: 'translateY(-100%)' }\r\n },\r\n 'slide-left': {\r\n enter: { transform: 'translateX(-100%)' },\r\n 'enter-to': { transform: 'translateY(0)' },\r\n leave: { transform: 'translateY(0)' },\r\n 'leave-to': { transform: 'translateX(-100%)' }\r\n },\r\n 'slide-right': {\r\n enter: { transform: 'translateX(100%)' },\r\n 'enter-to': { transform: 'translateY(0)' },\r\n leave: { transform: 'translateY(0)' },\r\n 'leave-to': { transform: 'translateX(100%)' }\r\n },\r\n zoom: {\r\n enter: { transform: 'scale(0.95)' },\r\n 'enter-to': { transform: 'scale(1)' },\r\n leave: { transform: 'scale(1)' },\r\n 'leave-to': { transform: 'scale(0.95)' }\r\n },\r\n 'fade-zoom': {\r\n enter: { opacity: 0, transform: 'scale(0.95)' },\r\n 'enter-to': { opacity: 1, transform: 'scale(1)' },\r\n leave: { opacity: 1, transform: 'scale(1)' },\r\n 'leave-to': { opacity: 0, transform: 'scale(0.95)' }\r\n }\r\n}\r\n","export default {\n props: {\n bgColor: {\n type: String,\n default: uni.$u.props.statusBar.bgColor\n }\n }\n}\n","export default {\n props: {\n\n }\n}\n","export default {\n props: {\n // 主题颜色\n type: {\n type: String,\n default: uni.$u.props.text.type\n },\n // 是否显示\n show: {\n type: Boolean,\n default: uni.$u.props.text.show\n },\n // 显示的值\n text: {\n type: [String, Number],\n default: uni.$u.props.text.text\n },\n // 前置图标\n prefixIcon: {\n type: String,\n default: uni.$u.props.text.prefixIcon\n },\n // 后置图标\n suffixIcon: {\n type: String,\n default: uni.$u.props.text.suffixIcon\n },\n // 文本处理的匹配模式\n // text-普通文本,price-价格,phone-手机号,name-姓名,date-日期,link-超链接\n mode: {\n type: String,\n default: uni.$u.props.text.mode\n },\n // mode=link下,配置的链接\n href: {\n type: String,\n default: uni.$u.props.text.href\n },\n // 格式化规则\n format: {\n type: [String, Function],\n default: uni.$u.props.text.format\n },\n // mode=phone时,点击文本是否拨打电话\n call: {\n type: Boolean,\n default: uni.$u.props.text.call\n },\n // 小程序的打开方式\n openType: {\n type: String,\n default: uni.$u.props.text.openType\n },\n // 是否粗体,默认normal\n bold: {\n type: Boolean,\n default: uni.$u.props.text.bold\n },\n // 是否块状\n block: {\n type: Boolean,\n default: uni.$u.props.text.block\n },\n // 文本显示的行数,如果设置,超出此行数,将会显示省略号\n lines: {\n type: [String, Number],\n default: uni.$u.props.text.lines\n },\n // 文本颜色\n color: {\n type: String,\n default: uni.$u.props.text.color\n },\n // 字体大小\n size: {\n type: [String, Number],\n default: uni.$u.props.text.size\n },\n // 图标的样式\n iconStyle: {\n type: [Object, String],\n default: uni.$u.props.text.iconStyle\n },\n // 文字装饰,下划线,中划线等,可选值 none|underline|line-through\n decoration: {\n tepe: String,\n default: uni.$u.props.text.decoration\n },\n // 外边距,对象、字符串,数值形式均可\n margin: {\n type: [Object, String, Number],\n default: uni.$u.props.text.margin\n },\n // 文本行高\n lineHeight: {\n type: [String, Number],\n default: uni.$u.props.text.lineHeight\n },\n // 文本对齐方式,可选值left|center|right\n align: {\n type: String,\n default: uni.$u.props.text.align\n },\n // 文字换行,可选值break-word|normal|anywhere\n wordWrap: {\n type: String,\n default: uni.$u.props.text.wordWrap\n }\n }\n}\n","export default {\n computed: {\n // 经处理后需要显示的值\n value() {\n const {\n text,\n mode,\n format,\n href\n } = this\n // 价格类型\n if (mode === 'price') {\n // 如果text不为金额进行提示\n if (!/^\\d+(\\.\\d+)?$/.test(text)) {\n uni.$u.error('金额模式下,text参数需要为金额格式');\n }\n // 进行格式化,判断用户传入的format参数为正则,或者函数,如果没有传入format,则使用默认的金额格式化处理\n if (uni.$u.test.func(format)) {\n // 如果用户传入的是函数,使用函数格式化\n return format(text)\n }\n // 如果format非正则,非函数,则使用默认的金额格式化方法进行操作\n return uni.$u.priceFormat(text, 2)\n } if (mode === 'date') {\n // 判断是否合法的日期或者时间戳\n !uni.$u.test.date(text) && uni.$u.error('日期模式下,text参数需要为日期或时间戳格式')\n // 进行格式化,判断用户传入的format参数为正则,或者函数,如果没有传入format,则使用默认的格式化处理\n if (uni.$u.test.func(format)) {\n // 如果用户传入的是函数,使用函数格式化\n return format(text)\n } if (format) {\n // 如果format非正则,非函数,则使用默认的时间格式化方法进行操作\n return uni.$u.timeFormat(text, format)\n }\n // 如果没有设置format,则设置为默认的时间格式化形式\n return uni.$u.timeFormat(text, 'yyyy-mm-dd')\n } if (mode === 'phone') {\n // 判断是否合法的手机号\n // !uni.$u.test.mobile(text) && uni.$u.error('手机号模式下,text参数需要为手机号码格式')\n if (uni.$u.test.func(format)) {\n // 如果用户传入的是函数,使用函数格式化\n return format(text)\n } if (format === 'encrypt') {\n // 如果format为encrypt,则将手机号进行星号加密处理\n return `${text.substr(0, 3)}****${text.substr(7)}`\n }\n return text\n } if (mode === 'name') {\n // 判断是否合法的字符粗\n !(typeof (text) === 'string') && uni.$u.error('姓名模式下,text参数需要为字符串格式')\n if (uni.$u.test.func(format)) {\n // 如果用户传入的是函数,使用函数格式化\n return format(text)\n } if (format === 'encrypt') {\n // 如果format为encrypt,则将姓名进行星号加密处理\n return this.formatName(text)\n }\n return text\n } if (mode === 'link') {\n // 判断是否合法的字符粗\n !uni.$u.test.url(href) && uni.$u.error('超链接模式下,href参数需要为URL格式')\n return text\n }\n return text\n }\n },\n methods: {\n // 默认的姓名脱敏规则\n formatName(name) {\n let value = ''\n if (name.length === 2) {\n value = name.substr(0, 1) + '*'\n } else if (name.length > 2) {\n let char = ''\n for (let i = 0, len = name.length - 2; i < len; i++) {\n char += '*'\n }\n value = name.substr(0, 1) + char + name.substr(-1, 1)\n } else {\n value = name\n }\n return value\n }\n }\n}\n","export default {\n props: {\n // 文字颜色\n color: {\n type: String,\n default: uni.$u.props.link.color\n },\n // 字体大小,单位px\n fontSize: {\n type: [String, Number],\n default: uni.$u.props.link.fontSize\n },\n // 是否显示下划线\n underLine: {\n type: Boolean,\n default: uni.$u.props.link.underLine\n },\n // 要跳转的链接\n href: {\n type: String,\n default: uni.$u.props.link.href\n },\n // 小程序中复制到粘贴板的提示语\n mpTips: {\n type: String,\n default: uni.$u.props.link.mpTips\n },\n // 下划线颜色\n lineColor: {\n type: String,\n default: uni.$u.props.link.lineColor\n },\n // 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色\n text: {\n type: String,\n default: uni.$u.props.link.text\n }\n }\n}\n"],"sourceRoot":""}
|