vendor.js.map 341 KB

1
  1. {"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?543d","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","webpack:///(webpack)/buildin/global.js?cd00","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","uni-app:///components/share2.js","uni-app:///components/richText.js"],"names":["_toString","Object","prototype","toString","hasOwnProperty","isFn","fn","isStr","str","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","hit","camelizeRE","camelize","replace","_","c","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","i","length","indexOf","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","slice","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","catch","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","test","isSyncApi","isCallbackApi","handlePromise","err","shouldPromise","promisify","success","fail","complete","reject","assign","finally","this","constructor","value","reason","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","wx","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","result","Math","floor","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","addUuid","getStorageSync","Date","now","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","getSystemInfo","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","error","todoApis","TODOS","createTodoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","Vue","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","canIUse","oldTriggerEvent","triggerEvent","event","initHook","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","$vm","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","split","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","JSON","parse","stringify","__lifecycle_hooks__","PROP_TYPES","String","Boolean","createObserver","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","generic","observer","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","vFor","propPath","valuePath","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","extraObj","__args__","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","$scope","handleEvent","eventOpts","eventOpt","eventsArray","charAt","isOnce","eventArray","handlerCtx","handler","Error","once","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","$forceUpdate","destroyed","parseBaseApp","initRefs","store","$store","mpHost","beforeCreate","getApp","app","$i18n","_i18n","appOptions","onLaunch","globalData","_isMounted","findVmByVueId","vuePid","parentVm","$children","childVm","Behavior","isPage","route","initRelation","selectAllComponents","selector","$refs","components","component","ref","vueGeneric","scopedComponent","defineProperty","get","forComponents","handleLink","parent","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","charCodeAt","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","map","val","undefined","val2","join","x","parseBaseComponent","vueComponentOptions","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","is","parsePage","createPage","createComponent","createSubpackageApp","allowDefault","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","todoApi","canIUseApi","apiName","uni","Proxy","set","uni$1","emptyObject","isUndef","v","isDef","isTrue","isFalse","isPrimitive","isObject","toRawType","isRegExp","isValidArrayIndex","n","parseFloat","isFinite","toNumber","makeMap","expectsLowerCase","list","toLowerCase","isBuiltInTag","isReservedAttribute","remove","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","a","l","_length","nativeBind","bind","Function","toArray","start","to","_from","toObject","b","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","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","enumerable","writable","configurable","bailRE","RegExp","parsePath","path","segments","_isServer","hasProto","inBrowser","window","inWeex","WXEnvironment","weexPlatform","UA","navigator","userAgent","isIE","isEdge","nativeWatch","match","watch","addEventListener","isServerRendering","global","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Symbol","Reflect","ownKeys","Set","add","clear","tip","generateComponentTrace","formatComponentName","hasConsole","classifyRE","classify","msg","trace","includeFile","$root","cid","_isVue","_componentTag","repeat","tree","currentRecursiveSequence","last","uid","Dep","subs","pushTarget","SharedObject","targetStack","popTarget","pop","addSub","sub","removeSub","depend","addDep","notify","sort","update","VNode","tag","children","text","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","walk","src","observe","asRootData","isExtensible","defineReactive$$1","customSetter","shallow","property","getOwnPropertyDescriptor","getter","setter","childOb","dependArray","max","del","items","strats","mergeData","from","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","t","isSameType","message","receivedType","expectedValue","styleValue","receivedValue","isExplicable","isBoolean","explicitTypes","some","elem","handleError","info","cur","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","initProxy","callbacks","pending","flushCallbacks","copies","p","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","iterator","next","done","renderSlot","fallback","bindObject","nodes","scopedSlotFn","_i","$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","values","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_m","_f","_k","_b","_v","_e","_u","_g","_d","_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","model","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","__esModule","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","watcher","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","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initComputed","initWatch","propsOptions","isRoot","_getFormData","__next_tick_pending","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","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","unshift","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","include","exclude","created","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","ssrContext","version","ARRAYTYPE","OBJECTTYPE","diff","syncKeys","_diff","rootCurrentType","rootPreType","currentValue","setResult","preValue","currentType","preType","subKey","k","flushCallbacks$1","__next_tick_callbacks","log","hasRenderWatcher","nextTick$1","mpInstance$1","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","trim","normalizeStyleBinding","bindingStyle","MP_METHODS","getTarget","parts","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","g","module","exports","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","renderjs","__module","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","shadowRoot","_injectStyles","originalRender","h","Thepath","title","imageUrl","request","header","showShareMenu","withShareTicket","datas","graceRichTextReg","GRT","format","html","word","regIn"],"mappings":"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","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\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 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\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 res.then(res => {\r\n return res[1]\r\n }).catch(res => {\r\n return res[0]\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendNativeEvent|restoreGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;\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'];\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)) {\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 interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\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 addUuid (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.windowHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n addUuid(result);\r\n addSafeAreaInsets(result);\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\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};\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\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null\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 {\r\n if (!wx.canIUse || !wx.canIUse('nextTick')) {\r\n return\r\n }\r\n }\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n mpInstance.triggerEvent = function (event, ...args) {\r\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n };\r\n}\r\n\r\nfunction initHook (name, options) {\r\n const oldHook = options[name];\r\n if (!oldHook) {\r\n options[name] = function () {\r\n initTriggerEvent(this);\r\n };\r\n } else {\r\n options[name] = function (...args) {\r\n initTriggerEvent(this);\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])) {\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 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 = '') {\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 properties.generic = {\r\n type: Object,\r\n value: null\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) {\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 if (event.detail && event.detail.__args__) {\r\n extraObj['$' + index] = event.detail.__args__;\r\n } else {\r\n extraObj['$' + index] = [event];\r\n }\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 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 event.detail.__args__ || event.detail\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event);\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(event.detail.__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 throw new Error(` _vm.${methodName} is not a function`)\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:destory', () => {\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:destory', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueId = this.$options.propsData.vueId;\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 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\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 initHooks(appOptions, hooks);\r\n\r\n return appOptions\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 || 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 initRefs (vm) {\r\n const mpInstance = vm.$scope;\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 || component);\r\n });\r\n return $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 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} = {}) {\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),\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 (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n })\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 isPage,\r\n initRelation\r\n}) {\r\n const pageOptions = parseComponent(vuePageOptions);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vuePageOptions);\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 return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions, {\r\n isPage,\r\n initRelation\r\n })\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 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 appOptions.onShow.apply(app, args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n appOptions.onHide.apply(app, args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n appOptions.onLaunch.call(app, 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 appOptions.onShow.apply(vm, args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n appOptions.onHide.apply(vm, args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n appOptions.onLaunch.call(vm, 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 if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\r\n return\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","/*!\n * Vue.js v2.6.11\n * (c) 2014-2021 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 ) {\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'){//百度 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]';\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 _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]) {\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 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))\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 this.$scope['triggerEvent'](event, {\n __args__: toArray(arguments, 1)\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 target[key] = value;\n };\n\n Vue.prototype.__set_sync = function(target, key, value) {\n if (!target) {\n target = this;\n }\n 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];\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","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","/* 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 (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","// var app = getApp();\r\n// var network = require('./network.js')\r\n\r\nfunction share(Thepath, title, imageUrl, type) {\r\n\tvar _this = this;\r\n\tvar params = new Object()\r\n\tparams.id = uni.getStorageSync('uid')\r\n\t//发起请求\r\n\tuni.request({\r\n\t\turl: 'https://trade.5dev.cn/dudaowenlv/content/?l=api.share',\r\n\t\tdata: params,\r\n\t\tmethod: 'GET',\r\n\t\theader: {\r\n\t\t\t'content-type': 'application/json' // 默认值\r\n\t\t},\r\n\t\tsuccess(res) {\r\n\t\t\tconsole.log(777777,res)\r\n\t\t\t// _this.imageUrl=res.data.data.pic\r\n\t\t}\r\n\t})\r\n\t// 获取群信息和id\r\n\twx.showShareMenu({\r\n\t\twithShareTicket: true\r\n\t})\r\n\tvar scene = '&scene=' + uni.getStorageSync('uid');\r\n\tvar datas = {\r\n\t\t// id: uni.getStorageSync('uid'),\r\n\t\tpath: Thepath,\r\n\t\ttitle: title,\r\n\t\timageUrl:imageUrl,\r\n\t\ttype:type\r\n\t}\r\n\r\n\t// if (imageUrl) {\r\n\t// \tdatas['imageUrl'] = imageUrl;\r\n\t// \tdatas['title'] = title;\r\n\t// \tdatas['id'] = newsid;\r\n\t// \tdatas['type'] = type;\r\n\r\n\t// }\r\n\tconsole.log(9999, datas)\r\n\t// uni.setStorageSync('share_data', data);\r\n\treturn datas;\r\n}\r\n\r\nmodule.exports = {\r\n\tshare: share,\r\n}\r\n","/*\r\ngraceUI rich-text 加强工具\r\nlink : graceui.hcoder.net\r\nauthor : 5213606@qq.com 深海\r\n\r\n*/\r\n\r\n// 正则变量\r\nvar graceRichTextReg;\r\n\r\n// 批量替换的样式 [ 根据项目需求自行设置 ]\r\nvar GRT = [\r\n\t// div 样式\r\n\t['div', \"line-height:2em;\"],\r\n\t// h1 样式\r\n\t['h1', \"font-size:3em; line-height:1.5em;\"],\r\n\t// h2 样式\r\n\t['h2', \"font-size:2em; line-height:1.8em;\"],\r\n\t// h3 样式\r\n\t['h3', \"font-size:1.6em; line-height:2em;\"],\r\n\t// h4 样式\r\n\t['h4', \"font-size:1.2em; line-height:2em;\"],\r\n\t// h5 样式\r\n\t['h5', \"font-size:1em; line-height:2em;\"],\r\n\t// h6 样式\r\n\t['h6', \"font-size:0.9em; line-height:2em;\"],\r\n\t// p 样式\r\n\t['p', \"font-size:1em; line-height:2em;\"],\r\n\t// b 样式\r\n\t['b', \"font-size:1em; line-height:2em;\"],\r\n\t// strong 样式\r\n\t['strong', \"font-size:1em; line-height:2em;\"],\r\n\t// code 样式\r\n\t['code', \"font-size:1em; line-height:1.2em; background:#F6F7F8; padding:8px 2%; width:96%;\"],\r\n\t// img 样式\r\n\t// ['img', \"width:100%; margin:8px 0; max-height:1000rem\"],\r\n\t['img', \"width:100%; height:100%; margin:0px 0px;display:block\" ],\r\n\t// blockquote\r\n\t['blockquote', \"font-size:1em; border-left:3px solid #D1D1D1; line-height:2em; border-radius:5px; background:#F6F7F8; padding:8px 2%;\"],\r\n\t// li 样式\r\n\t['ul', \"padding:5px 0; list-style:none; padding:0; margin:0;\"],\r\n\t['li', \"line-height:1.5em; padding:5px 0; list-style:none; padding:0; margin:0; margin-top:10px;\"],\r\n\t// table\r\n\t['table', \"width:100%; border-left:1px solid #F2F3F4; border-top:1px solid #F2F3F4;\"],\r\n\t['th', \"border-right:1px solid #F2F3F4; border-bottom:1px solid #F2F3F4;\"],\r\n\t['td', \"border-right:1px solid #F2F3F4; border-bottom:1px solid #F2F3F4; padding-left:5px;\"]\r\n];\r\n\r\n\r\nmodule.exports = {\r\n\tformat : function(html){\r\n\t\thtml = html.replace(/<pre.*pre>?/gis, function(word){\r\n\t\t\tword = word.replace(/[\\n]/gi,'<br />');\r\n\t\t\tword = word.replace(/ /gi,'<span style=\"padding-left:2em;\"></span>');\r\n\t\t\treturn word.replace(/[\\t]/gi, '<span style=\"padding-left:2em;\"></span>');\r\n\t\t});\r\n\t\thtml = html.replace(/<pre/gi, '<p style=\"font-size:1em; margin:12px 0; line-height:1.2em; background:#F6F7F8; border-radius:5px; padding:8px 4%; width:92%;\"');\r\n\t\thtml = html.replace(/<\\/pre/gi,\"</p\");\r\n\t\tfor(let i = 0; i < GRT.length; i++){\r\n\t\t\tgraceRichTextReg = new RegExp('<'+GRT[i][0]+'>|<'+GRT[i][0]+' (.*?)>', 'gi');\r\n\t\t\thtml = html.replace(graceRichTextReg , function(word){\r\n\t\t\t\t// 分析 dom 上是否带有 style=\"\"\r\n\t\t\t\tif(word.indexOf('style=') != -1){\r\n\t\t\t\t\tvar regIn = new RegExp('<' + GRT[i][0] + '(.*?)style=\"(.*?)\"(.*?)(/?)>', 'gi');\r\n\t\t\t\t\treturn word.replace(regIn, '<'+ GRT[i][0] +'$1style=\"$2 ' + GRT[i][1] +'\"$3$4>');\r\n\t\t\t\t}else{\r\n\t\t\t\t\tvar regIn = new RegExp('<' + GRT[i][0] + '(.*?)(/?)>', 'gi');\r\n\t\t\t\t\treturn word.replace(regIn, '<'+ GRT[i][0] +'$1 style=\"' + GRT[i][1] +'$2\">');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn html;\r\n\t}\r\n\t\r\n}"],"sourceRoot":""}