vendor.js.map
330.3 KB
{"version":3,"sources":["webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mpvue/index.js","webpack:///(webpack)/buildin/global.js","webpack:///E:/web/gangjurenminiprogram/App.vue","webpack:///E:/web/gangjurenminiprogram/App.vue?3007","webpack:///../../../web/gangjurenminiprogram/App.vue","webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js","webpack:///E:/web/gangjurenminiprogram/App.vue?c313","webpack:///E:/web/gangjurenminiprogram/App.vue?93e1","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mpvue-page-factory/index.js"],"names":["_toString","Object","prototype","toString","hasOwnProperty","isFn","fn","isStr","str","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","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","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","slice","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","catch","SYNC_API_RE","CONTEXT_API_RE","CALLBACK_API_RE","isContextApi","test","isSyncApi","isCallbackApi","handlePromise","err","shouldPromise","promisify","promiseApi","success","fail","complete","reject","assign","finally","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","previewImage","args","fromArgs","currentIndex","parseInt","current","isNaN","urls","len","filter","item","indicator","loop","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","error","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","getUniEmitter","Emitter","Vue","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","canIUse","oldTriggerEvent","triggerEvent","event","initHook","oldHook","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","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","vueExtends","vueMixins","vueProps","behaviors","behavior","type","Date","props","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","__get_value","isInteger","vForItem","vForKey","processEventExtra","extra","extraObj","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","__args__","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","handleEvent","eventOpts","eventOpt","eventsArray","charAt","isOnce","eventArray","handlerCtx","$options","generic","$parent","handler","Error","once","parseBaseApp","initRefs","mpHost","beforeCreate","$scope","appOptions","onLaunch","app","_isMounted","globalData","findVmByVueId","vuePid","$children","parentVm","childVm","Behavior","isPage","route","initRelation","defineProperty","get","$refs","components","selectAllComponents","component","ref","forComponents","handleLink","parent","parseApp","createApp","App","parseBaseComponent","vueComponentOptions","componentOptions","multipleSlots","addGlobalClass","__file","lifetimes","attached","propsData","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","parsePage","createPage","createComponent","canIUseApi","apiName","uni","Proxy","uni$1"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD,IAAI,KAA4D;AAChE;AACA,UAAU,SAE4B;AACtC,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA,qDAAqD,oCAAoC;AACzF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAA6C,EAAE,EAElD;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAA6B;AACzC,gBAAgB,KAGC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAA6B;AACzC,gBAAgB,KAGC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAA6B;AAC7C,oBAAoB,KAKC;;AAErB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAoD,EAAE,EAEzD;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAA8C,EAAE,EASnD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAA6B;AAC7C,oBAAoB,KAA8E;AAClG,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,gBAAgB,MAA6B;AAC7C,oBAAoB,KAIC;AACrB;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,aAAa;AACb,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAA2D,EAAE,EAiBhE;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAgD,EAAE,EAYrD;AACb;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,MAA6B;AAC7C,oBAAoB,KAOC;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAA6B;AACzC,gBAAgB,KAIC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAA6B;AAC7C,oBAAoB,KAMC;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,MAA6B,IAAI,KAA+B;AACxE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,MAA6B,IAAI,KAA8B;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,MAA6B,IAAI,KAA4B;AACrE;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAqD,EAAE,EAE1D;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAA+B;AACxC,yCAAyC;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAA6B;AACzC,gBAAgB,KAMC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAGsB;AAClC,UAAU,EAKD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,SAAS;AACT;AACA,uBAAuB,SAAS;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAA6B;AAC7C,oBAAoB,KAAsE;AAC1F,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,sEAAsE;AACtE,gEAAgE;AAChE;AACA;AACA;;AAEA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,MAA6B;AAC7C,oBAAoB,KAA2D;AAC/E,aAAa;AACb,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAqD,EAAE,EAM1D;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,KAA2D,EAAE,EAIhE;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,KAA2D,EAAE,EAIhE;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,YAAY,KAAyD,EAAE,EAE9D;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,eAAe,eAAe;;AAE9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,KAAiD,EAAE,EAEtD;AACjB,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,4BAA4B,KAA2C,EAAE,EAKhD;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAEO;AACvC,8BAA8B,EAQD;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;AACtC,uCAAuC;AACvC,yCAAyC;AACzC,kDAAkD;AAClD;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO,gCAAgC,eAAe;AACtE,uDAAuD;AACvD,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA,CAAC;;;;;;;;;;;;ACnmLD;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACuD;AACL;AACa;;;AAG/D;AACuH;AACvH,gBAAgB,wIAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAYf;AACD;AACe,gF;;;;;;;;;;;AClCf;AAAA;AAAA;AAAA;AAAgqB,CAAgB,msBAAG,EAAC,C;;;;;;;;;;;;ACCprB;AACA;AACA;AACA,GAHA;AAIA;AACA;AACA,GANA;AAOA;AACA;AACA,GATA;;AAWA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCADA;AAEA;AACA,0BADA,EAFA;;AAKA,cALA;AAMA;AACA;AACA;AACA,2CADA;AAEA,kBAFA;AAGA,sBAHA;AAIA,sBAJA;AAKA;AACA;AACA;AACA;AACA,WAFA,MAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAnBA;AAoBA;AACA;AACA;AACA;AACA;AACA,SAzBA;AA0BA;AACA;AACA,SA5BA;;AA8BA,KAxCA;AAyCA;AACA,GA5DA;AA6DA,aA7DA,uBA6DA,SA7DA,EA6DA,QA7DA,EA6DA;AACA;AACA;AACA,qCAFA,CAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA,OAFA,MAEA;AACA;AACA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AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5FA;AAAA;AAAA;AAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,oBAAoB,0CAAG;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC","file":"common/vendor.js","sourcesContent":["// fix env\r\ntry {\r\n if (!global) global = {}\r\n global.process = global.process || {}\r\n global.process.env = global.process.env || {}\r\n global.App = global.App || App\r\n global.Page = global.Page || Page\r\n global.Component = global.Component || Component\r\n global.getApp = global.getApp || getApp\r\n} catch (e) {}\r\n\r\n;(function(global, factory) {\r\n typeof exports === \"object\" && typeof module !== \"undefined\"\r\n ? (module.exports = factory())\r\n : typeof define === \"function\" && define.amd\r\n ? define(factory)\r\n : (global.Vue = factory())\r\n})(this, function() {\r\n \"use strict\"\r\n\r\n //fixed by xxxxxx\r\n function calcDiff(holder, key, newObj, oldObj) {\r\n if (newObj === oldObj || newObj === undefined) {\r\n return\r\n }\r\n\r\n if (newObj == null || oldObj == null || typeof newObj !== typeof oldObj) {\r\n holder[key] = newObj\r\n } else if (Array.isArray(newObj) && Array.isArray(oldObj)) {\r\n if (newObj.length === oldObj.length) {\r\n for (var i = 0, len = newObj.length; i < len; ++i) {\r\n calcDiff(holder, key + \"[\" + i + \"]\", newObj[i], oldObj[i])\r\n }\r\n } else {\r\n holder[key] = newObj\r\n }\r\n } else if (typeof newObj === \"object\" && typeof oldObj === \"object\") {\r\n var newKeys = Object.keys(newObj)\r\n var oldKeys = Object.keys(oldObj)\r\n\r\n if (newKeys.length !== oldKeys.length) {\r\n holder[key] = newObj\r\n } else {\r\n var allKeysSet = Object.create(null)\r\n for (var i = 0, len = newKeys.length; i < len; ++i) {\r\n allKeysSet[newKeys[i]] = true\r\n allKeysSet[oldKeys[i]] = true\r\n }\r\n if (Object.keys(allKeysSet).length !== newKeys.length) {\r\n holder[key] = newObj\r\n } else {\r\n for (var i = 0, len = newKeys.length; i < len; ++i) {\r\n var k = newKeys[i]\r\n calcDiff(holder, key + \".\" + k, newObj[k], oldObj[k])\r\n }\r\n }\r\n }\r\n } else if (newObj !== oldObj) {\r\n holder[key] = newObj\r\n }\r\n }\r\n\r\n function diff(newObj, oldObj) {\r\n var keys = Object.keys(newObj)\r\n var diffResult = {}\r\n for (var i = 0, len = keys.length; i < len; ++i) {\r\n var k = keys[i]\r\n var oldKeyPath = k.split(\".\")\r\n var oldValue = oldObj[oldKeyPath[0]]\r\n for (var j = 1, jlen = oldKeyPath.length; j < jlen && oldValue !== undefined; ++j) {\r\n oldValue = oldValue[oldKeyPath[j]]\r\n }\r\n calcDiff(diffResult, k, newObj[k], oldValue)\r\n }\r\n return diffResult\r\n }\r\n\r\n /* */\r\n\r\n // these helpers produces better vm code in JS engines due to their\r\n // explicitness and function inlining\r\n function isUndef(v) {\r\n return v === undefined || v === null\r\n }\r\n\r\n function isDef(v) {\r\n return v !== undefined && v !== null\r\n }\r\n\r\n function isTrue(v) {\r\n return v === true\r\n }\r\n\r\n function isFalse(v) {\r\n return v === false\r\n }\r\n\r\n /**\r\n * Check if value is primitive\r\n */\r\n function isPrimitive(value) {\r\n return typeof value === \"string\" || typeof value === \"number\"\r\n }\r\n\r\n /**\r\n * Quick object check - this is primarily used to tell\r\n * Objects from primitive values when we know the value\r\n * is a JSON-compliant type.\r\n */\r\n function isObject(obj) {\r\n return obj !== null && typeof obj === \"object\"\r\n }\r\n\r\n var _toString = Object.prototype.toString\r\n\r\n /**\r\n * Strict object type check. Only returns true\r\n * for plain JavaScript objects.\r\n */\r\n function isPlainObject(obj) {\r\n return _toString.call(obj) === \"[object Object]\"\r\n }\r\n\r\n function isRegExp(v) {\r\n return _toString.call(v) === \"[object RegExp]\"\r\n }\r\n\r\n /**\r\n * Check if val is a valid array index.\r\n */\r\n function isValidArrayIndex(val) {\r\n var n = parseFloat(val)\r\n return n >= 0 && Math.floor(n) === n && isFinite(val)\r\n }\r\n\r\n /**\r\n * Convert a value to a string that is actually rendered.\r\n */\r\n function toString(val) {\r\n return val == null\r\n ? \"\"\r\n : typeof val === \"object\"\r\n ? JSON.stringify(val, null, 2)\r\n : String(val)\r\n }\r\n\r\n /**\r\n * Convert a input value to a number for persistence.\r\n * If the conversion fails, return original string.\r\n */\r\n function toNumber(val) {\r\n var n = parseFloat(val)\r\n return isNaN(n) ? val : n\r\n }\r\n\r\n /**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n */\r\n function makeMap(str, expectsLowerCase) {\r\n var map = Object.create(null)\r\n var list = str.split(\",\")\r\n for (var i = 0; i < list.length; i++) {\r\n map[list[i]] = true\r\n }\r\n return expectsLowerCase\r\n ? function(val) {\r\n return map[val.toLowerCase()]\r\n }\r\n : function(val) {\r\n return map[val]\r\n }\r\n }\r\n\r\n /**\r\n * Check if a tag is a built-in tag.\r\n */\r\n var isBuiltInTag = makeMap(\"slot,component\", true)\r\n\r\n /**\r\n * Check if a attribute is a reserved attribute.\r\n */\r\n var isReservedAttribute = makeMap(\"key,ref,slot,is\")\r\n\r\n /**\r\n * Remove an item from an array\r\n */\r\n function remove(arr, item) {\r\n if (arr.length) {\r\n var index = arr.indexOf(item)\r\n if (index > -1) {\r\n return arr.splice(index, 1)\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Check whether the object has the property.\r\n */\r\n var hasOwnProperty = Object.prototype.hasOwnProperty\r\n\r\n function hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n }\r\n\r\n /**\r\n * Create a cached version of a pure function.\r\n */\r\n function cached(fn) {\r\n var cache = Object.create(null)\r\n return function cachedFn(str) {\r\n var 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\n var camelizeRE = /-(\\w)/g\r\n var camelize = cached(function(str) {\r\n return str.replace(camelizeRE, function(_, c) {\r\n return c ? c.toUpperCase() : \"\"\r\n })\r\n })\r\n\r\n /**\r\n * Capitalize a string.\r\n */\r\n var capitalize = cached(function(str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n })\r\n\r\n /**\r\n * Hyphenate a camelCase string.\r\n */\r\n var hyphenateRE = /([^-])([A-Z])/g\r\n var hyphenate = cached(function(str) {\r\n return str\r\n .replace(hyphenateRE, \"$1-$2\")\r\n .replace(hyphenateRE, \"$1-$2\")\r\n .toLowerCase()\r\n })\r\n\r\n /**\r\n * Simple bind, faster than native\r\n */\r\n function bind(fn, ctx) {\r\n function boundFn(a) {\r\n var l = arguments.length\r\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\r\n }\r\n // record original fn length\r\n boundFn._length = fn.length\r\n return boundFn\r\n }\r\n\r\n /**\r\n * Convert an Array-like object to a real Array.\r\n */\r\n function toArray(list, start) {\r\n start = start || 0\r\n var i = list.length - start\r\n var ret = new Array(i)\r\n while (i--) {\r\n ret[i] = list[i + start]\r\n }\r\n return ret\r\n }\r\n\r\n /**\r\n * Mix properties into target object.\r\n */\r\n function extend(to, _from) {\r\n for (var key in _from) {\r\n to[key] = _from[key]\r\n }\r\n return to\r\n }\r\n\r\n /**\r\n * Merge an Array of Objects into a single Object.\r\n */\r\n function toObject(arr) {\r\n var res = {}\r\n for (var i = 0; i < arr.length; i++) {\r\n if (arr[i]) {\r\n extend(res, arr[i])\r\n }\r\n }\r\n return res\r\n }\r\n\r\n /**\r\n * Perform no operation.\r\n * Stubbing args to make Flow happy without leaving useless transpiled code\r\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\r\n */\r\n function noop(a, b, c) {}\r\n\r\n /**\r\n * Always return false.\r\n */\r\n var no = function(a, b, c) {\r\n return false\r\n }\r\n\r\n /**\r\n * Return same value\r\n */\r\n var identity = function(_) {\r\n return _\r\n }\r\n\r\n /**\r\n * Generate a static keys string from compiler modules.\r\n */\r\n\r\n /**\r\n * Check if two values are loosely equal - that is,\r\n * if they are plain objects, do they have the same shape?\r\n */\r\n function looseEqual(a, b) {\r\n var isObjectA = isObject(a)\r\n var isObjectB = isObject(b)\r\n if (isObjectA && isObjectB) {\r\n try {\r\n return JSON.stringify(a) === JSON.stringify(b)\r\n } catch (e) {\r\n // possible circular reference\r\n return a === b\r\n }\r\n } else if (!isObjectA && !isObjectB) {\r\n return String(a) === String(b)\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n function looseIndexOf(arr, val) {\r\n for (var i = 0; i < arr.length; i++) {\r\n if (looseEqual(arr[i], val)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n\r\n /**\r\n * Ensure a function is called only once.\r\n */\r\n function once(fn) {\r\n var called = false\r\n return function() {\r\n if (!called) {\r\n called = true\r\n fn.apply(this, arguments)\r\n }\r\n }\r\n }\r\n\r\n var SSR_ATTR = \"data-server-rendered\"\r\n\r\n var ASSET_TYPES = [\"component\", \"directive\", \"filter\"]\r\n\r\n var LIFECYCLE_HOOKS = [\r\n \"beforeCreate\",\r\n \"created\",\r\n \"beforeMount\",\r\n \"mounted\",\r\n \"beforeUpdate\",\r\n \"updated\",\r\n \"beforeDestroy\",\r\n \"destroyed\",\r\n \"activated\",\r\n \"deactivated\",\r\n \"onLaunch\",\r\n \"onLoad\",\r\n \"onShow\",\r\n \"onReady\",\r\n \"onHide\",\r\n \"onUnload\",\r\n \"onPullDownRefresh\",\r\n \"onReachBottom\",\r\n \"onShareAppMessage\",\r\n \"onPageScroll\",\r\n \"onTabItemTap\",\r\n \"attached\",\r\n \"ready\",\r\n \"moved\",\r\n \"detached\",\r\n \"onUniNViewMessage\", //fixed by xxxxxx\r\n \"onNavigationBarButtonTap\", //fixed by xxxxxx\n \"onBackPress\",//fixed by xxxxxx\r\n ]\r\n\r\n /* */\r\n\r\n var config = {\r\n /**\r\n * Option merge strategies (used in core/util/options)\r\n */\r\n optionMergeStrategies: Object.create(null),\r\n\r\n /**\r\n * Whether to suppress warnings.\r\n */\r\n silent: false,\r\n\r\n /**\r\n * Show production mode tip message on boot?\r\n */\r\n productionTip: \"production\" !== \"production\",\r\n\r\n /**\r\n * Whether to enable devtools\r\n */\r\n devtools: \"production\" !== \"production\",\r\n\r\n /**\r\n * Whether to record perf\r\n */\r\n performance: false,\r\n\r\n /**\r\n * Error handler for watcher errors\r\n */\r\n errorHandler: null,\r\n\r\n /**\r\n * Warn handler for watcher warns\r\n */\r\n warnHandler: null,\r\n\r\n /**\r\n * Ignore certain custom elements\r\n */\r\n ignoredElements: [],\r\n\r\n /**\r\n * Custom user key aliases for v-on\r\n */\r\n keyCodes: Object.create(null),\r\n\r\n /**\r\n * Check if a tag is reserved so that it cannot be registered as a\r\n * component. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedTag: no,\r\n\r\n /**\r\n * Check if an attribute is reserved so that it cannot be used as a component\r\n * prop. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedAttr: no,\r\n\r\n /**\r\n * Check if a tag is an unknown element.\r\n * Platform-dependent.\r\n */\r\n isUnknownElement: no,\r\n\r\n /**\r\n * Get the namespace of an element\r\n */\r\n getTagNamespace: noop,\r\n\r\n /**\r\n * Parse the real tag name for the specific platform.\r\n */\r\n parsePlatformTagName: identity,\r\n\r\n /**\r\n * Check if an attribute must be bound using property, e.g. value\r\n * Platform-dependent.\r\n */\r\n mustUseProp: no,\r\n\r\n /**\r\n * Exposed for legacy reasons\r\n */\r\n _lifecycleHooks: LIFECYCLE_HOOKS\r\n }\r\n\r\n /* */\r\n\r\n var emptyObject = Object.freeze({})\r\n\r\n /**\r\n * Check if a string starts with $ or _\r\n */\r\n function isReserved(str) {\r\n var c = (str + \"\").charCodeAt(0)\r\n return c === 0x24 || c === 0x5f\r\n }\r\n\r\n /**\r\n * Define a property.\r\n */\r\n function def(obj, key, val, enumerable) {\r\n Object.defineProperty(obj, key, {\r\n value: val,\r\n enumerable: !!enumerable,\r\n writable: true,\r\n configurable: true\r\n })\r\n }\r\n\r\n /**\r\n * Parse simple path.\r\n */\r\n var bailRE = /[^\\w.$]/\r\n\r\n function parsePath(path) {\r\n if (bailRE.test(path)) {\r\n return\r\n }\r\n var segments = path.split(\".\")\r\n return function(obj) {\r\n for (var i = 0; i < segments.length; i++) {\r\n if (!obj) {\r\n return\r\n }\r\n obj = obj[segments[i]]\r\n }\r\n return obj\r\n }\r\n }\r\n\r\n /* */\r\n\r\n var warn = noop\r\n\r\n var formatComponentName = null // work around flow check\r\n\r\n /* */\r\n\r\n function handleError(err, vm, info) {\r\n if (config.errorHandler) {\r\n config.errorHandler.call(null, err, vm, info)\r\n } else {\r\n if (inBrowser && typeof console !== \"undefined\") {\r\n console.error(err)\r\n } else {\r\n throw err\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n // can we use __proto__?\r\n var hasProto = \"__proto__\" in {}\r\n\r\n // Browser environment sniffing\r\n var inBrowser = typeof window !== \"undefined\"\r\n var UA = [\"mpvue-runtime\"].join()\r\n var isIE = UA && /msie|trident/.test(UA)\r\n var isIE9 = UA && UA.indexOf(\"msie 9.0\") > 0\r\n var isEdge = UA && UA.indexOf(\"edge/\") > 0\r\n var isAndroid = UA && UA.indexOf(\"android\") > 0\r\n var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA)\r\n var isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge\r\n\r\n // Firefix has a \"watch\" function on Object.prototype...\r\n var nativeWatch = {}.watch\r\n\r\n var supportsPassive = false\r\n if (inBrowser) {\r\n try {\r\n var opts = {}\r\n Object.defineProperty(opts, \"passive\", {\r\n get: function get() {\r\n /* istanbul ignore next */\r\n supportsPassive = true\r\n }\r\n }) // https://github.com/facebook/flow/issues/285\r\n window.addEventListener(\"test-passive\", null, opts)\r\n } catch (e) {}\r\n }\r\n\r\n // this needs to be lazy-evaled because vue may be required before\r\n // vue-server-renderer can set VUE_ENV\r\n var _isServer\r\n var isServerRendering = function() {\r\n if (_isServer === undefined) {\r\n /* istanbul ignore if */\r\n if (!inBrowser && typeof global !== \"undefined\") {\r\n // detect presence of vue-server-renderer and avoid\r\n // Webpack shimming the process\r\n _isServer = global[\"process\"].env.VUE_ENV === \"server\"\r\n } else {\r\n _isServer = false\r\n }\r\n }\r\n return _isServer\r\n }\r\n\r\n // detect devtools\r\n var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__\r\n\r\n /* istanbul ignore next */\r\n function isNative(Ctor) {\r\n return typeof Ctor === \"function\" && /native code/.test(Ctor.toString())\r\n }\r\n\r\n var hasSymbol =\r\n typeof Symbol !== \"undefined\" &&\r\n isNative(Symbol) &&\r\n typeof Reflect !== \"undefined\" &&\r\n isNative(Reflect.ownKeys)\r\n\r\n /**\r\n * Defer a task to execute it asynchronously.\r\n */\r\n var nextTick = (function() {\r\n var callbacks = []\r\n var pending = false\r\n var timerFunc\r\n\r\n function nextTickHandler() {\r\n pending = false\r\n var copies = callbacks.slice(0)\r\n callbacks.length = 0\r\n for (var i = 0; i < copies.length; i++) {\r\n copies[i]()\r\n }\r\n }\r\n\r\n // the nextTick behavior leverages the microtask queue, which can be accessed\r\n // via either native Promise.then or MutationObserver.\r\n // MutationObserver has wider support, however it is seriously bugged in\r\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\r\n // completely stops working after triggering a few times... so, if native\r\n // Promise is available, we will use it:\r\n /* istanbul ignore if */\r\n if (typeof Promise !== \"undefined\" && isNative(Promise)) {\r\n var p = Promise.resolve()\r\n var logError = function(err) {\r\n console.error(err)\r\n }\r\n timerFunc = function() {\r\n p.then(nextTickHandler).catch(logError)\r\n // in problematic UIWebViews, Promise.then doesn't completely break, but\r\n // it can get stuck in a weird state where callbacks are pushed into the\r\n // microtask queue but the queue isn't being flushed, until the browser\r\n // needs to do some other work, e.g. handle a timer. Therefore we can\r\n // \"force\" the microtask queue to be flushed by adding an empty timer.\r\n if (isIOS) {\r\n setTimeout(noop)\r\n }\r\n }\r\n // } else if (typeof MutationObserver !== 'undefined' && (\r\n // isNative(MutationObserver) ||\r\n // // PhantomJS and iOS 7.x\r\n // MutationObserver.toString() === '[object MutationObserverConstructor]'\r\n // )) {\r\n // // use MutationObserver where native Promise is not available,\r\n // // e.g. PhantomJS IE11, iOS7, Android 4.4\r\n // var counter = 1\r\n // var observer = new MutationObserver(nextTickHandler)\r\n // var textNode = document.createTextNode(String(counter))\r\n // observer.observe(textNode, {\r\n // characterData: true\r\n // })\r\n // timerFunc = () => {\r\n // counter = (counter + 1) % 2\r\n // textNode.data = String(counter)\r\n // }\r\n } else {\r\n // fallback to setTimeout\r\n /* istanbul ignore next */\r\n timerFunc = function() {\r\n setTimeout(nextTickHandler, 0)\r\n }\r\n }\r\n\r\n return function queueNextTick(cb, ctx) {\r\n var _resolve\r\n callbacks.push(function() {\r\n if (cb) {\r\n try {\r\n cb.call(ctx)\r\n } catch (e) {\r\n handleError(e, ctx, \"nextTick\")\r\n }\r\n } else if (_resolve) {\r\n _resolve(ctx)\r\n }\r\n })\r\n if (!pending) {\r\n pending = true\r\n timerFunc()\r\n }\r\n if (!cb && typeof Promise !== \"undefined\") {\r\n return new Promise(function(resolve, reject) {\r\n _resolve = resolve\r\n })\r\n }\r\n }\r\n })()\r\n\r\n var _Set\r\n /* istanbul ignore if */\r\n if (typeof Set !== \"undefined\" && isNative(Set)) {\r\n // use native Set when available.\r\n _Set = Set\r\n } else {\r\n // a non-standard Set polyfill that only works with primitive keys.\r\n _Set = (function() {\r\n function Set() {\r\n this.set = Object.create(null)\r\n }\r\n Set.prototype.has = function has(key) {\r\n return this.set[key] === true\r\n }\r\n Set.prototype.add = function add(key) {\r\n this.set[key] = true\r\n }\r\n Set.prototype.clear = function clear() {\r\n this.set = Object.create(null)\r\n }\r\n\r\n return Set\r\n })()\r\n }\r\n\r\n /* */\r\n\r\n var uid$1 = 0\r\n\r\n /**\r\n * A dep is an observable that can have multiple\r\n * directives subscribing to it.\r\n */\r\n var Dep = function Dep() {\r\n this.id = uid$1++\r\n this.subs = []\r\n }\r\n\r\n Dep.prototype.addSub = function addSub(sub) {\r\n this.subs.push(sub)\r\n }\r\n\r\n Dep.prototype.removeSub = function removeSub(sub) {\r\n remove(this.subs, sub)\r\n }\r\n\r\n Dep.prototype.depend = function depend() {\r\n if (Dep.target) {\r\n Dep.target.addDep(this)\r\n }\r\n }\r\n\r\n Dep.prototype.notify = function notify() {\r\n // stabilize the subscriber list first\r\n var subs = this.subs.slice()\r\n for (var i = 0, l = subs.length; i < l; i++) {\r\n subs[i].update()\r\n }\r\n }\r\n\r\n // the current target watcher being evaluated.\r\n // this is globally unique because there could be only one\r\n // watcher being evaluated at any time.\r\n Dep.target = null\r\n var targetStack = []\r\n\r\n function pushTarget(_target) {\r\n if (Dep.target) {\r\n targetStack.push(Dep.target)\r\n }\r\n Dep.target = _target\r\n }\r\n\r\n function popTarget() {\r\n Dep.target = targetStack.pop()\r\n }\r\n\r\n /*\r\n * not type checking this file because flow doesn't play well with\r\n * dynamically accessing methods on Array prototype\r\n */\r\n\r\n var arrayProto = Array.prototype\r\n var arrayMethods = Object.create(arrayProto)\r\n ;[\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"].forEach(function(method) {\r\n // cache original method\r\n var original = arrayProto[method]\r\n def(arrayMethods, method, function mutator() {\r\n var args = [],\r\n len = arguments.length\r\n while (len--) args[len] = arguments[len]\r\n\r\n var result = original.apply(this, args)\r\n var ob = this.__ob__\r\n var inserted\r\n switch (method) {\r\n case \"push\":\r\n case \"unshift\":\r\n inserted = args\r\n break\r\n case \"splice\":\r\n inserted = args.slice(2)\r\n break\r\n }\r\n if (inserted) {\r\n ob.observeArray(inserted)\r\n }\r\n // notify change\r\n ob.dep.notify()\r\n return result\r\n })\r\n })\r\n\r\n /* */\r\n\r\n var arrayKeys = Object.getOwnPropertyNames(arrayMethods)\r\n\r\n /**\r\n * By default, when a reactive property is set, the new value is\r\n * also converted to become reactive. However when passing down props,\r\n * we don't want to force conversion because the value may be a nested value\r\n * under a frozen data structure. Converting it would defeat the optimization.\r\n */\r\n var observerState = {\r\n shouldConvert: true\r\n }\r\n\r\n /**\r\n * Observer class that are attached to each observed\r\n * object. Once attached, the observer converts target\r\n * object's property keys into getter/setters that\r\n * collect dependencies and dispatches updates.\r\n */\r\n var Observer = function Observer(value) {\r\n this.value = value\r\n this.dep = new Dep()\r\n this.vmCount = 0\r\n def(value, \"__ob__\", this)\r\n if (Array.isArray(value)) {\r\n var augment = hasProto ? protoAugment : copyAugment\r\n augment(value, arrayMethods, arrayKeys)\r\n this.observeArray(value)\r\n } else {\r\n this.walk(value)\r\n }\r\n }\r\n\r\n /**\r\n * Walk through each property and convert them into\r\n * getter/setters. This method should only be called when\r\n * value type is Object.\r\n */\r\n Observer.prototype.walk = function walk(obj) {\r\n var keys = Object.keys(obj)\r\n for (var i = 0; i < keys.length; i++) {\r\n defineReactive$$1(obj, keys[i], obj[keys[i]])\r\n }\r\n }\r\n\r\n /**\r\n * Observe a list of Array items.\r\n */\r\n Observer.prototype.observeArray = function observeArray(items) {\r\n for (var i = 0, l = items.length; i < l; i++) {\r\n observe(items[i])\r\n }\r\n }\r\n\r\n // helpers\r\n\r\n /**\r\n * Augment an target Object or Array by intercepting\r\n * the prototype chain using __proto__\r\n */\r\n function protoAugment(target, src, keys) {\r\n /* eslint-disable no-proto */\r\n target.__proto__ = src\r\n /* eslint-enable no-proto */\r\n }\r\n\r\n /**\r\n * Augment an target Object or Array by defining\r\n * hidden properties.\r\n */\r\n /* istanbul ignore next */\r\n function copyAugment(target, src, keys) {\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n var key = keys[i]\r\n def(target, key, src[key])\r\n }\r\n }\r\n\r\n /**\r\n * Attempt to create an observer instance for a value,\r\n * returns the new observer if successfully observed,\r\n * or the existing observer if the value already has one.\r\n */\r\n function observe(value, asRootData) {\r\n if (!isObject(value)) {\r\n return\r\n }\r\n var ob\r\n if (hasOwn(value, \"__ob__\") && value.__ob__ instanceof Observer) {\r\n ob = value.__ob__\r\n } else if (\r\n observerState.shouldConvert &&\r\n !isServerRendering() &&\r\n (Array.isArray(value) || isPlainObject(value)) &&\r\n Object.isExtensible(value) &&\r\n !value._isVue\r\n ) {\r\n ob = new Observer(value)\r\n }\r\n if (asRootData && ob) {\r\n ob.vmCount++\r\n }\r\n return ob\r\n }\r\n\r\n /**\r\n * Define a reactive property on an Object.\r\n */\r\n function defineReactive$$1(obj, key, val, customSetter, shallow) {\r\n var dep = new Dep()\r\n\r\n var property = Object.getOwnPropertyDescriptor(obj, key)\r\n if (property && property.configurable === false) {\r\n return\r\n }\r\n\r\n // cater for pre-defined getter/setters\r\n var getter = property && property.get\r\n var setter = property && property.set\r\n\r\n var childOb = !shallow && observe(val)\r\n Object.defineProperty(obj, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function reactiveGetter() {\r\n var value = getter ? getter.call(obj) : val\r\n if (Dep.target) {\r\n dep.depend()\r\n if (childOb) {\r\n childOb.dep.depend()\r\n }\r\n if (Array.isArray(value)) {\r\n dependArray(value)\r\n }\r\n }\r\n return value\r\n },\r\n set: function reactiveSetter(newVal) {\r\n var value = getter ? getter.call(obj) : val\r\n /* eslint-disable no-self-compare */\r\n if (newVal === value || (newVal !== newVal && value !== value)) {\r\n return\r\n }\r\n /* eslint-enable no-self-compare */\r\n if (\"production\" !== \"production\" && customSetter) {\r\n customSetter()\r\n }\r\n if (setter) {\r\n setter.call(obj, newVal)\r\n } else {\r\n val = newVal\r\n }\r\n childOb = !shallow && observe(newVal)\r\n dep.notify()\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Set a property on an object. Adds the new property and\r\n * triggers change notification if the property doesn't\r\n * already exist.\r\n */\r\n function set(target, key, val) {\r\n if (Array.isArray(target) && isValidArrayIndex(key)) {\r\n target.length = Math.max(target.length, key)\r\n target.splice(key, 1, val)\r\n return val\r\n }\r\n if (hasOwn(target, key)) {\r\n target[key] = val\r\n return val\r\n }\r\n var ob = target.__ob__\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n \"production\" !== \"production\" &&\r\n warn(\r\n \"Avoid adding reactive properties to a Vue instance or its root $data \" +\r\n \"at runtime - declare it upfront in the data option.\"\r\n )\r\n return val\r\n }\r\n if (!ob) {\r\n target[key] = val\r\n return val\r\n }\r\n defineReactive$$1(ob.value, key, val)\r\n ob.dep.notify()\r\n return val\r\n }\r\n\r\n /**\r\n * Delete a property and trigger change if necessary.\r\n */\r\n function del(target, key) {\r\n if (Array.isArray(target) && isValidArrayIndex(key)) {\r\n target.splice(key, 1)\r\n return\r\n }\r\n var ob = target.__ob__\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n \"production\" !== \"production\" &&\r\n warn(\r\n \"Avoid deleting properties on a Vue instance or its root $data \" +\r\n \"- just set it to null.\"\r\n )\r\n return\r\n }\r\n if (!hasOwn(target, key)) {\r\n return\r\n }\r\n delete target[key]\r\n if (!ob) {\r\n return\r\n }\r\n ob.dep.notify()\r\n }\r\n\r\n /**\r\n * Collect dependencies on array elements when the array is touched, since\r\n * we cannot intercept array element access like property getters.\r\n */\r\n function dependArray(value) {\r\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\r\n e = value[i]\r\n e && e.__ob__ && e.__ob__.dep.depend()\r\n if (Array.isArray(e)) {\r\n dependArray(e)\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Option overwriting strategies are functions that handle\r\n * how to merge a parent option value and a child option\r\n * value into the final value.\r\n */\r\n var strats = config.optionMergeStrategies\r\n\r\n /**\r\n * Options with restrictions\r\n */\r\n /**\r\n * Helper that recursively merges two data objects together.\r\n */\r\n function mergeData(to, from) {\r\n if (!from) {\r\n return to\r\n }\r\n var key, toVal, fromVal\r\n var keys = Object.keys(from)\r\n for (var i = 0; i < keys.length; i++) {\r\n key = keys[i]\r\n toVal = to[key]\r\n fromVal = from[key]\r\n if (!hasOwn(to, key)) {\r\n set(to, key, fromVal)\r\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\r\n mergeData(toVal, fromVal)\r\n }\r\n }\r\n return to\r\n }\r\n\r\n /**\r\n * Data\r\n */\r\n function mergeDataOrFn(parentVal, childVal, vm) {\r\n if (!vm) {\r\n // in a Vue.extend merge, both should be functions\r\n if (!childVal) {\r\n return parentVal\r\n }\r\n if (!parentVal) {\r\n return childVal\r\n }\r\n // when parentVal & childVal are both present,\r\n // we need to return a function that returns the\r\n // merged result of both functions... no need to\r\n // check if parentVal is a function here because\r\n // it has to be a function to pass previous merges.\r\n return function mergedDataFn() {\r\n return mergeData(\r\n typeof childVal === \"function\" ? childVal.call(this) : childVal,\r\n parentVal.call(this)\r\n )\r\n }\r\n } else if (parentVal || childVal) {\r\n return function mergedInstanceDataFn() {\r\n // instance merge\r\n var instanceData = typeof childVal === \"function\" ? childVal.call(vm) : childVal\r\n var defaultData = typeof parentVal === \"function\" ? parentVal.call(vm) : undefined\r\n if (instanceData) {\r\n return mergeData(instanceData, defaultData)\r\n } else {\r\n return defaultData\r\n }\r\n }\r\n }\r\n }\r\n\r\n strats.data = function(parentVal, childVal, vm) {\r\n if (!vm) {\r\n if (childVal && typeof childVal !== \"function\") {\r\n \"production\" !== \"production\" &&\r\n warn(\r\n 'The \"data\" option should be a function ' +\r\n \"that returns a per-instance value in component \" +\r\n \"definitions.\",\r\n vm\r\n )\r\n\r\n return parentVal\r\n }\r\n return mergeDataOrFn.call(this, parentVal, childVal)\r\n }\r\n\r\n return mergeDataOrFn(parentVal, childVal, vm)\r\n }\r\n\r\n /**\r\n * Hooks and props are merged as arrays.\r\n */\r\n function mergeHook(parentVal, childVal) {\r\n return childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal\r\n : [childVal]\r\n : parentVal\r\n }\r\n\r\n LIFECYCLE_HOOKS.forEach(function(hook) {\r\n strats[hook] = mergeHook\r\n })\r\n\r\n /**\r\n * Assets\r\n *\r\n * When a vm is present (instance creation), we need to do\r\n * a three-way merge between constructor options, instance\r\n * options and parent options.\r\n */\r\n function mergeAssets(parentVal, childVal) {\r\n var res = Object.create(parentVal || null)\r\n return childVal ? extend(res, childVal) : res\r\n }\r\n\r\n ASSET_TYPES.forEach(function(type) {\r\n strats[type + \"s\"] = mergeAssets\r\n })\r\n\r\n /**\r\n * Watchers.\r\n *\r\n * Watchers hashes should not overwrite one\r\n * another, so we merge them as arrays.\r\n */\r\n strats.watch = function(parentVal, childVal) {\r\n // work around Firefox's Object.prototype.watch...\r\n if (parentVal === nativeWatch) {\r\n parentVal = undefined\r\n }\r\n if (childVal === nativeWatch) {\r\n childVal = undefined\r\n }\r\n /* istanbul ignore if */\r\n if (!childVal) {\r\n return Object.create(parentVal || null)\r\n }\r\n if (!parentVal) {\r\n return childVal\r\n }\r\n var ret = {}\r\n extend(ret, parentVal)\r\n for (var key in childVal) {\r\n var parent = ret[key]\r\n var child = childVal[key]\r\n if (parent && !Array.isArray(parent)) {\r\n parent = [parent]\r\n }\r\n ret[key] = parent ? parent.concat(child) : Array.isArray(child) ? child : [child]\r\n }\r\n return ret\r\n }\r\n\r\n /**\r\n * Other object hashes.\r\n */\r\n strats.props = strats.methods = strats.inject = strats.computed = function(\r\n parentVal,\r\n childVal\r\n ) {\r\n if (!childVal) {\r\n return Object.create(parentVal || null)\r\n }\r\n if (!parentVal) {\r\n return childVal\r\n }\r\n var ret = Object.create(null)\r\n extend(ret, parentVal)\r\n extend(ret, childVal)\r\n return ret\r\n }\r\n strats.provide = mergeDataOrFn\r\n\r\n /**\r\n * Default strategy.\r\n */\r\n var defaultStrat = function(parentVal, childVal) {\r\n return childVal === undefined ? parentVal : childVal\r\n }\r\n\r\n /**\r\n * Ensure all props option syntax are normalized into the\r\n * Object-based format.\r\n */\r\n function normalizeProps(options) {\r\n var props = options.props\r\n if (!props) {\r\n return\r\n }\r\n var res = {}\r\n var i, val, name\r\n if (Array.isArray(props)) {\r\n i = props.length\r\n while (i--) {\r\n val = props[i]\r\n if (typeof val === \"string\") {\r\n name = camelize(val)\r\n res[name] = {\r\n type: null\r\n }\r\n } else {\r\n }\r\n }\r\n } else if (isPlainObject(props)) {\r\n for (var key in props) {\r\n val = props[key]\r\n name = camelize(key)\r\n res[name] = isPlainObject(val)\r\n ? val\r\n : {\r\n type: val\r\n }\r\n }\r\n }\r\n options.props = res\r\n }\r\n\r\n /**\r\n * Normalize all injections into Object-based format\r\n */\r\n function normalizeInject(options) {\r\n var inject = options.inject\r\n if (Array.isArray(inject)) {\r\n var normalized = (options.inject = {})\r\n for (var i = 0; i < inject.length; i++) {\r\n normalized[inject[i]] = inject[i]\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Normalize raw function directives into object format.\r\n */\r\n function normalizeDirectives(options) {\r\n var dirs = options.directives\r\n if (dirs) {\r\n for (var key in dirs) {\r\n var def = dirs[key]\r\n if (typeof def === \"function\") {\r\n dirs[key] = {\r\n bind: def,\r\n update: def\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Merge two option objects into a new one.\r\n * Core utility used in both instantiation and inheritance.\r\n */\r\n function mergeOptions(parent, child, vm) {\r\n if (typeof child === \"function\") {\r\n child = child.options\r\n }\r\n\r\n normalizeProps(child)\r\n normalizeInject(child)\r\n normalizeDirectives(child)\r\n var extendsFrom = child.extends\r\n if (extendsFrom) {\r\n parent = mergeOptions(parent, extendsFrom, vm)\r\n }\r\n if (child.mixins) {\r\n for (var i = 0, l = child.mixins.length; i < l; i++) {\r\n parent = mergeOptions(parent, child.mixins[i], vm)\r\n }\r\n }\r\n var options = {}\r\n var key\r\n for (key in parent) {\r\n mergeField(key)\r\n }\r\n for (key in child) {\r\n if (!hasOwn(parent, key)) {\r\n mergeField(key)\r\n }\r\n }\r\n\r\n function mergeField(key) {\r\n var strat = strats[key] || defaultStrat\r\n options[key] = strat(parent[key], child[key], vm, key)\r\n }\r\n return options\r\n }\r\n\r\n /**\r\n * Resolve an asset.\r\n * This function is used because child instances need access\r\n * to assets defined in its ancestor chain.\r\n */\r\n function resolveAsset(options, type, id, warnMissing) {\r\n /* istanbul ignore if */\r\n if (typeof id !== \"string\") {\r\n return\r\n }\r\n var assets = options[type]\r\n // check local registration variations first\r\n if (hasOwn(assets, id)) {\r\n return assets[id]\r\n }\r\n var camelizedId = camelize(id)\r\n if (hasOwn(assets, camelizedId)) {\r\n return assets[camelizedId]\r\n }\r\n var PascalCaseId = capitalize(camelizedId)\r\n if (hasOwn(assets, PascalCaseId)) {\r\n return assets[PascalCaseId]\r\n }\r\n // fallback to prototype chain\r\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]\r\n if (\"production\" !== \"production\" && warnMissing && !res) {\r\n warn(\"Failed to resolve \" + type.slice(0, -1) + \": \" + id, options)\r\n }\r\n return res\r\n }\r\n\r\n /* */\r\n\r\n function validateProp(key, propOptions, propsData, vm) {\r\n var prop = propOptions[key]\r\n var absent = !hasOwn(propsData, key)\r\n var value = propsData[key]\r\n // handle boolean props\r\n if (isType(Boolean, prop.type)) {\r\n if (absent && !hasOwn(prop, \"default\")) {\r\n value = false\r\n } else if (!isType(String, prop.type) && (value === \"\" || value === hyphenate(key))) {\r\n value = true\r\n }\r\n }\r\n // check default value\r\n if (value === undefined) {\r\n value = getPropDefaultValue(vm, prop, key)\r\n // since the default value is a fresh copy,\r\n // make sure to observe it.\r\n var prevShouldConvert = observerState.shouldConvert\r\n observerState.shouldConvert = true\r\n observe(value)\r\n observerState.shouldConvert = prevShouldConvert\r\n }\r\n return value\r\n }\r\n\r\n /**\r\n * Get the default value of a prop.\r\n */\r\n function getPropDefaultValue(vm, prop, key) {\r\n // no default, return undefined\r\n if (!hasOwn(prop, \"default\")) {\r\n return undefined\r\n }\r\n var def = prop.default\r\n // warn against non-factory defaults for Object & Array\r\n if (\"production\" !== \"production\" && isObject(def)) {\r\n warn(\r\n 'Invalid default value for prop \"' +\r\n key +\r\n '\": ' +\r\n \"Props with type Object/Array must use a factory function \" +\r\n \"to return the default value.\",\r\n vm\r\n )\r\n }\r\n // the raw prop value was also undefined from previous render,\r\n // return previous default value to avoid unnecessary watcher trigger\r\n if (\r\n vm &&\r\n vm.$options.propsData &&\r\n vm.$options.propsData[key] === undefined &&\r\n vm._props[key] !== undefined\r\n ) {\r\n return vm._props[key]\r\n }\r\n // call factory function for non-Function types\r\n // a value is Function if its prototype is function even across different execution context\r\n return typeof def === \"function\" && getType(prop.type) !== \"Function\" ? def.call(vm) : def\r\n }\r\n\r\n /**\r\n * Use function string name to check built-in types,\r\n * because a simple equality check will fail when running\r\n * across different vms / iframes.\r\n */\r\n function getType(fn) {\r\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/)\r\n return match ? match[1] : \"\"\r\n }\r\n\r\n function isType(type, fn) {\r\n if (!Array.isArray(fn)) {\r\n return getType(fn) === getType(type)\r\n }\r\n for (var i = 0, len = fn.length; i < len; i++) {\r\n if (getType(fn[i]) === getType(type)) {\r\n return true\r\n }\r\n }\r\n /* istanbul ignore next */\r\n return false\r\n }\r\n\r\n /* */\r\n\r\n /* not type checking this file because flow doesn't play well with Proxy */\r\n\r\n var mark\r\n var measure\r\n\r\n /* */\r\n\r\n var VNode = function VNode(\r\n tag,\r\n data,\r\n children,\r\n text,\r\n elm,\r\n context,\r\n componentOptions,\r\n asyncFactory\r\n ) {\r\n this.tag = tag\r\n this.data = data\r\n this.children = children\r\n this.text = text\r\n this.elm = elm\r\n this.ns = undefined\r\n this.context = context\r\n this.functionalContext = undefined\r\n this.key = data && data.key\r\n this.componentOptions = componentOptions\r\n this.componentInstance = undefined\r\n this.parent = undefined\r\n this.raw = false\r\n this.isStatic = false\r\n this.isRootInsert = true\r\n this.isComment = false\r\n this.isCloned = false\r\n this.isOnce = false\r\n this.asyncFactory = asyncFactory\r\n this.asyncMeta = undefined\r\n this.isAsyncPlaceholder = false\r\n }\r\n\r\n var prototypeAccessors = {\r\n child: {}\r\n }\r\n\r\n // DEPRECATED: alias for componentInstance for backwards compat.\r\n /* istanbul ignore next */\r\n prototypeAccessors.child.get = function() {\r\n return this.componentInstance\r\n }\r\n\r\n Object.defineProperties(VNode.prototype, prototypeAccessors)\r\n\r\n var createEmptyVNode = function(text) {\r\n if (text === void 0) text = \"\"\r\n\r\n var node = new VNode()\r\n node.text = text\r\n node.isComment = true\r\n return node\r\n }\r\n\r\n function createTextVNode(val) {\r\n return new VNode(undefined, undefined, undefined, String(val))\r\n }\r\n\r\n // optimized shallow clone\r\n // used for static nodes and slot nodes because they may be reused across\r\n // multiple renders, cloning them avoids errors when DOM manipulations rely\r\n // on their elm reference.\r\n function cloneVNode(vnode) {\r\n var cloned = new VNode(\r\n vnode.tag,\r\n vnode.data,\r\n vnode.children,\r\n vnode.text,\r\n vnode.elm,\r\n vnode.context,\r\n vnode.componentOptions,\r\n vnode.asyncFactory\r\n )\r\n cloned.ns = vnode.ns\r\n cloned.isStatic = vnode.isStatic\r\n cloned.key = vnode.key\r\n cloned.isComment = vnode.isComment\r\n cloned.isCloned = true\r\n return cloned\r\n }\r\n\r\n function cloneVNodes(vnodes) {\r\n var len = vnodes.length\r\n var res = new Array(len)\r\n for (var i = 0; i < len; i++) {\r\n res[i] = cloneVNode(vnodes[i])\r\n }\r\n return res\r\n }\r\n\r\n /* */\r\n\r\n var normalizeEvent = cached(function(name) {\r\n var passive = name.charAt(0) === \"&\"\r\n name = passive ? name.slice(1) : name\r\n var once$$1 = name.charAt(0) === \"~\" // Prefixed last, checked first\r\n name = once$$1 ? name.slice(1) : name\r\n var capture = name.charAt(0) === \"!\"\r\n name = capture ? name.slice(1) : name\r\n return {\r\n name: name,\r\n once: once$$1,\r\n capture: capture,\r\n passive: passive\r\n }\r\n })\r\n\r\n function createFnInvoker(fns) {\r\n function invoker() {\r\n var arguments$1 = arguments\r\n\r\n var fns = invoker.fns\r\n if (Array.isArray(fns)) {\r\n var cloned = fns.slice()\r\n for (var i = 0; i < cloned.length; i++) {\r\n cloned[i].apply(null, arguments$1)\r\n }\r\n } else {\r\n // return handler return value for single handlers\r\n return fns.apply(null, arguments)\r\n }\r\n }\r\n invoker.fns = fns\r\n return invoker\r\n }\r\n\r\n function updateListeners(on, oldOn, add, remove$$1, vm) {\r\n var name, cur, old, event\r\n for (name in on) {\r\n cur = on[name]\r\n old = oldOn[name]\r\n event = normalizeEvent(name)\r\n if (isUndef(cur)) {\r\n \"production\" !== \"production\" &&\r\n warn('Invalid handler for event \"' + event.name + '\": got ' + String(cur), vm)\r\n } else if (isUndef(old)) {\r\n if (isUndef(cur.fns)) {\r\n cur = on[name] = createFnInvoker(cur)\r\n }\r\n add(event.name, cur, event.once, event.capture, event.passive)\r\n } else if (cur !== old) {\r\n old.fns = cur\r\n on[name] = old\r\n }\r\n }\r\n for (name in oldOn) {\r\n if (isUndef(on[name])) {\r\n event = normalizeEvent(name)\r\n remove$$1(event.name, oldOn[name], event.capture)\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n /* */\r\n\r\n function extractPropsFromVNodeData(data, Ctor, tag) {\r\n // we are only extracting raw values here.\r\n // validation and default values are handled in the child\r\n // component itself.\r\n var propOptions = Ctor.options.props\r\n if (isUndef(propOptions)) {\r\n return\r\n }\r\n var res = {}\r\n var attrs = data.attrs\r\n var props = data.props\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key)\r\n checkProp(res, props, key, altKey, true) ||\r\n checkProp(res, attrs, key, altKey, false)\r\n }\r\n }\r\n return res\r\n }\r\n\r\n function checkProp(res, hash, key, altKey, preserve) {\r\n if (isDef(hash)) {\r\n if (hasOwn(hash, key)) {\r\n res[key] = hash[key]\r\n if (!preserve) {\r\n delete hash[key]\r\n }\r\n return true\r\n } else if (hasOwn(hash, altKey)) {\r\n res[key] = hash[altKey]\r\n if (!preserve) {\r\n delete hash[altKey]\r\n }\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n\r\n /* */\r\n\r\n // The template compiler attempts to minimize the need for normalization by\r\n // statically analyzing the template at compile time.\r\n //\r\n // For plain HTML markup, normalization can be completely skipped because the\r\n // generated render function is guaranteed to return Array<VNode>. There are\r\n // two cases where extra normalization is needed:\r\n\r\n // 1. When the children contains components - because a functional component\r\n // may return an Array instead of a single root. In this case, just a simple\r\n // normalization is needed - if any child is an Array, we flatten the whole\r\n // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\r\n // because functional components already normalize their own children.\r\n function simpleNormalizeChildren(children) {\r\n for (var i = 0; i < children.length; i++) {\r\n if (Array.isArray(children[i])) {\r\n return Array.prototype.concat.apply([], children)\r\n }\r\n }\r\n return children\r\n }\r\n\r\n // 2. When the children contains constructs that always generated nested Arrays,\r\n // e.g. <template>, <slot>, v-for, or when the children is provided by user\r\n // with hand-written render functions / JSX. In such cases a full normalization\r\n // is needed to cater to all possible types of children values.\r\n function normalizeChildren(children) {\r\n return isPrimitive(children)\r\n ? [createTextVNode(children)]\r\n : Array.isArray(children)\r\n ? normalizeArrayChildren(children)\r\n : undefined\r\n }\r\n\r\n function isTextNode(node) {\r\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\r\n }\r\n\r\n function normalizeArrayChildren(children, nestedIndex) {\r\n var res = []\r\n var i, c, last\r\n for (i = 0; i < children.length; i++) {\r\n c = children[i]\r\n if (isUndef(c) || typeof c === \"boolean\") {\r\n continue\r\n }\r\n last = res[res.length - 1]\r\n // nested\r\n if (Array.isArray(c)) {\r\n res.push.apply(res, normalizeArrayChildren(c, (nestedIndex || \"\") + \"_\" + i))\r\n } else if (isPrimitive(c)) {\r\n if (isTextNode(last)) {\r\n // merge adjacent text nodes\r\n // this is necessary for SSR hydration because text nodes are\r\n // essentially merged when rendered to HTML strings\r\n last.text += String(c)\r\n } else if (c !== \"\") {\r\n // convert primitive to vnode\r\n res.push(createTextVNode(c))\r\n }\r\n } else {\r\n if (isTextNode(c) && isTextNode(last)) {\r\n // merge adjacent text nodes\r\n res[res.length - 1] = createTextVNode(last.text + c.text)\r\n } else {\r\n // default key for nested array children (likely generated by v-for)\r\n if (\r\n isTrue(children._isVList) &&\r\n isDef(c.tag) &&\r\n isUndef(c.key) &&\r\n isDef(nestedIndex)\r\n ) {\r\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\"\r\n }\r\n res.push(c)\r\n }\r\n }\r\n }\r\n return res\r\n }\r\n\r\n /* */\r\n\r\n function ensureCtor(comp, base) {\r\n if (comp.__esModule && comp.default) {\r\n comp = comp.default\r\n }\r\n return isObject(comp) ? base.extend(comp) : comp\r\n }\r\n\r\n function createAsyncPlaceholder(factory, data, context, children, tag) {\r\n var node = createEmptyVNode()\r\n node.asyncFactory = factory\r\n node.asyncMeta = {\r\n data: data,\r\n context: context,\r\n children: children,\r\n tag: tag\r\n }\r\n return node\r\n }\r\n\r\n function resolveAsyncComponent(factory, baseCtor, context) {\r\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\r\n return factory.errorComp\r\n }\r\n\r\n if (isDef(factory.resolved)) {\r\n return factory.resolved\r\n }\r\n\r\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\r\n return factory.loadingComp\r\n }\r\n\r\n if (isDef(factory.contexts)) {\r\n // already pending\r\n factory.contexts.push(context)\r\n } else {\r\n var contexts = (factory.contexts = [context])\r\n var sync = true\r\n\r\n var forceRender = function() {\r\n for (var i = 0, l = contexts.length; i < l; i++) {\r\n contexts[i].$forceUpdate()\r\n }\r\n }\r\n\r\n var resolve = once(function(res) {\r\n // cache resolved\r\n factory.resolved = ensureCtor(res, baseCtor)\r\n // invoke callbacks only if this is not a synchronous resolve\r\n // (async resolves are shimmed as synchronous during SSR)\r\n if (!sync) {\r\n forceRender()\r\n }\r\n })\r\n\r\n var reject = once(function(reason) {\r\n \"production\" !== \"production\" &&\r\n warn(\r\n \"Failed to resolve async component: \" +\r\n String(factory) +\r\n (reason ? \"\\nReason: \" + reason : \"\")\r\n )\r\n if (isDef(factory.errorComp)) {\r\n factory.error = true\r\n forceRender()\r\n }\r\n })\r\n\r\n var res = factory(resolve, reject)\r\n\r\n if (isObject(res)) {\r\n if (typeof res.then === \"function\") {\r\n // () => Promise\r\n if (isUndef(factory.resolved)) {\r\n res.then(resolve, reject)\r\n }\r\n } else if (isDef(res.component) && typeof res.component.then === \"function\") {\r\n res.component.then(resolve, reject)\r\n\r\n if (isDef(res.error)) {\r\n factory.errorComp = ensureCtor(res.error, baseCtor)\r\n }\r\n\r\n if (isDef(res.loading)) {\r\n factory.loadingComp = ensureCtor(res.loading, baseCtor)\r\n if (res.delay === 0) {\r\n factory.loading = true\r\n } else {\r\n setTimeout(function() {\r\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\r\n factory.loading = true\r\n forceRender()\r\n }\r\n }, res.delay || 200)\r\n }\r\n }\r\n\r\n if (isDef(res.timeout)) {\r\n setTimeout(function() {\r\n if (isUndef(factory.resolved)) {\r\n reject(null)\r\n }\r\n }, res.timeout)\r\n }\r\n }\r\n }\r\n\r\n sync = false\r\n // return in case resolved synchronously\r\n return factory.loading ? factory.loadingComp : factory.resolved\r\n }\r\n }\r\n\r\n /* */\r\n\r\n function getFirstComponentChild(children) {\r\n if (Array.isArray(children)) {\r\n for (var i = 0; i < children.length; i++) {\r\n var c = children[i]\r\n if (isDef(c) && isDef(c.componentOptions)) {\r\n return c\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n /* */\r\n\r\n function initEvents(vm) {\r\n vm._events = Object.create(null)\r\n vm._hasHookEvent = false\r\n // init parent attached events\r\n var listeners = vm.$options._parentListeners\r\n if (listeners) {\r\n updateComponentListeners(vm, listeners)\r\n }\r\n }\r\n\r\n var target\r\n\r\n function add(event, fn, once$$1) {\r\n if (once$$1) {\r\n target.$once(event, fn)\r\n } else {\r\n target.$on(event, fn)\r\n }\r\n }\r\n\r\n function remove$1(event, fn) {\r\n target.$off(event, fn)\r\n }\r\n\r\n function updateComponentListeners(vm, listeners, oldListeners) {\r\n target = vm\r\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm)\r\n }\r\n\r\n function eventsMixin(Vue) {\r\n var hookRE = /^hook:/\r\n Vue.prototype.$on = function(event, fn) {\r\n var this$1 = this\r\n\r\n var vm = this\r\n if (Array.isArray(event)) {\r\n for (var i = 0, l = event.length; i < l; i++) {\r\n this$1.$on(event[i], fn)\r\n }\r\n } else {\r\n ;(vm._events[event] || (vm._events[event] = [])).push(fn)\r\n // optimize hook:event cost by using a boolean flag marked at registration\r\n // instead of a hash lookup\r\n if (hookRE.test(event)) {\r\n vm._hasHookEvent = true\r\n }\r\n }\r\n return vm\r\n }\r\n\r\n Vue.prototype.$once = function(event, fn) {\r\n var vm = this\r\n\r\n function on() {\r\n vm.$off(event, on)\r\n fn.apply(vm, arguments)\r\n }\r\n on.fn = fn\r\n vm.$on(event, on)\r\n return vm\r\n }\r\n\r\n Vue.prototype.$off = function(event, fn) {\r\n var this$1 = this\r\n\r\n var vm = this\r\n // all\r\n if (!arguments.length) {\r\n vm._events = Object.create(null)\r\n return vm\r\n }\r\n // array of events\r\n if (Array.isArray(event)) {\r\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\r\n this$1.$off(event[i$1], fn)\r\n }\r\n return vm\r\n }\r\n // specific event\r\n var cbs = vm._events[event]\r\n if (!cbs) {\r\n return vm\r\n }\r\n if (arguments.length === 1) {\r\n vm._events[event] = null\r\n return vm\r\n }\r\n // specific handler\r\n var cb\r\n var i = cbs.length\r\n while (i--) {\r\n cb = cbs[i]\r\n if (cb === fn || cb.fn === fn) {\r\n cbs.splice(i, 1)\r\n break\r\n }\r\n }\r\n return vm\r\n }\r\n\r\n Vue.prototype.$emit = function(event) {\r\n var vm = this\r\n var cbs = vm._events[event]\r\n if (cbs) {\r\n cbs = cbs.length > 1 ? toArray(cbs) : cbs\r\n var args = toArray(arguments, 1)\r\n for (var i = 0, l = cbs.length; i < l; i++) {\r\n try {\r\n cbs[i].apply(vm, args)\r\n } catch (e) {\r\n handleError(e, vm, 'event handler for \"' + event + '\"')\r\n }\r\n }\r\n }\r\n return vm\r\n }\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Runtime helper for resolving raw children VNodes into a slot object.\r\n */\r\n function resolveSlots(children, context) {\r\n var slots = {}\r\n if (!children) {\r\n return slots\r\n }\r\n var defaultSlot = []\r\n for (var i = 0, l = children.length; i < l; i++) {\r\n var child = children[i]\r\n // named slots should only be respected if the vnode was rendered in the\r\n // same context.\r\n if (\r\n (child.context === context || child.functionalContext === context) &&\r\n child.data &&\r\n child.data.slot != null\r\n ) {\r\n var name = child.data.slot\r\n var slot = slots[name] || (slots[name] = [])\r\n if (child.tag === \"template\") {\r\n slot.push.apply(slot, child.children)\r\n } else {\r\n slot.push(child)\r\n }\r\n } else {\r\n defaultSlot.push(child)\r\n }\r\n }\r\n // ignore whitespace\r\n if (!defaultSlot.every(isWhitespace)) {\r\n slots.default = defaultSlot\r\n }\r\n return slots\r\n }\r\n\r\n function isWhitespace(node) {\r\n return node.isComment || node.text === \" \"\r\n }\r\n\r\n function resolveScopedSlots(\r\n fns, // see flow/vnode\r\n res\r\n ) {\r\n res = res || {}\r\n for (var i = 0; i < fns.length; i++) {\r\n if (Array.isArray(fns[i])) {\r\n resolveScopedSlots(fns[i], res)\r\n } else {\r\n res[fns[i].key] = fns[i].fn\r\n }\r\n }\r\n return res\r\n }\r\n\r\n /* */\r\n\r\n var activeInstance = null\r\n\r\n function initLifecycle(vm) {\r\n var options = vm.$options\r\n\r\n // locate first non-abstract parent\r\n var parent = options.parent\r\n if (parent && !options.abstract) {\r\n while (parent.$options.abstract && parent.$parent) {\r\n parent = parent.$parent\r\n }\r\n parent.$children.push(vm)\r\n }\r\n\r\n vm.$parent = parent\r\n vm.$root = parent ? parent.$root : vm\r\n\r\n vm.$children = []\r\n vm.$refs = {}\r\n\r\n vm._watcher = null\r\n vm._inactive = null\r\n vm._directInactive = false\r\n vm._isMounted = false\r\n vm._isDestroyed = false\r\n vm._isBeingDestroyed = false\r\n }\r\n\r\n function lifecycleMixin(Vue) {\r\n Vue.prototype._update = function(vnode, hydrating) {\r\n var vm = this\r\n if (vm._isMounted) {\r\n callHook(vm, \"beforeUpdate\")\r\n }\r\n var prevEl = vm.$el\r\n var prevVnode = vm._vnode\r\n var prevActiveInstance = activeInstance\r\n activeInstance = vm\r\n vm._vnode = vnode\r\n // Vue.prototype.__patch__ is injected in entry points\r\n // based on the rendering backend used.\r\n if (!prevVnode) {\r\n // initial render\r\n vm.$el = vm.__patch__(\r\n vm.$el,\r\n vnode,\r\n hydrating,\r\n false /* removeOnly */,\r\n vm.$options._parentElm,\r\n vm.$options._refElm\r\n )\r\n // no need for the ref nodes after initial patch\r\n // this prevents keeping a detached DOM tree in memory (#5851)\r\n vm.$options._parentElm = vm.$options._refElm = null\r\n } else {\r\n // updates\r\n vm.$el = vm.__patch__(prevVnode, vnode)\r\n }\r\n activeInstance = prevActiveInstance\r\n // update __vue__ reference\r\n if (prevEl) {\r\n prevEl.__vue__ = null\r\n }\r\n if (vm.$el) {\r\n vm.$el.__vue__ = vm\r\n }\r\n // if parent is an HOC, update its $el as well\r\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\r\n vm.$parent.$el = vm.$el\r\n }\r\n // updated hook is called by the scheduler to ensure that children are\r\n // updated in a parent's updated hook.\r\n }\r\n\r\n Vue.prototype.$forceUpdate = function() {\r\n var vm = this\r\n if (vm._watcher) {\r\n vm._watcher.update()\r\n }\r\n }\r\n\r\n Vue.prototype.$destroy = function() {\r\n var vm = this\r\n if (vm._isBeingDestroyed) {\r\n return\r\n }\r\n callHook(vm, \"beforeDestroy\")\r\n vm._isBeingDestroyed = true\r\n // remove self from parent\r\n var parent = vm.$parent\r\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\r\n remove(parent.$children, vm)\r\n }\r\n // teardown watchers\r\n if (vm._watcher) {\r\n vm._watcher.teardown()\r\n }\r\n var i = vm._watchers.length\r\n while (i--) {\r\n vm._watchers[i].teardown()\r\n }\r\n // remove reference from data ob\r\n // frozen object may not have observer.\r\n if (vm._data.__ob__) {\r\n vm._data.__ob__.vmCount--\r\n }\r\n // call the last hook...\r\n vm._isDestroyed = true\r\n // invoke destroy hooks on current rendered tree\r\n vm.__patch__(vm._vnode, null)\r\n // fire destroyed hook\r\n callHook(vm, \"destroyed\")\r\n // turn off all instance listeners.\r\n vm.$off()\r\n // remove __vue__ reference\r\n if (vm.$el) {\r\n vm.$el.__vue__ = null\r\n }\r\n }\r\n }\r\n\r\n function mountComponent(vm, el, hydrating) {\r\n vm.$el = el\r\n if (!vm.$options.render) {\r\n vm.$options.render = createEmptyVNode\r\n }\r\n callHook(vm, \"beforeMount\")\r\n\r\n var updateComponent\r\n /* istanbul ignore if */\r\n if (\"production\" !== \"production\" && config.performance && mark) {\r\n updateComponent = function() {\r\n var name = vm._name\r\n var id = vm._uid\r\n var startTag = \"vue-perf-start:\" + id\r\n var endTag = \"vue-perf-end:\" + id\r\n\r\n mark(startTag)\r\n var vnode = vm._render()\r\n mark(endTag)\r\n measure(name + \" render\", startTag, endTag)\r\n\r\n mark(startTag)\r\n vm._update(vnode, hydrating)\r\n mark(endTag)\r\n measure(name + \" patch\", startTag, endTag)\r\n }\r\n } else {\r\n updateComponent = function() {\r\n vm._update(vm._render(), hydrating)\r\n }\r\n }\r\n\r\n vm._watcher = new Watcher(vm, updateComponent, noop)\r\n hydrating = false\r\n\r\n // manually mounted instance, call mounted on self\r\n // mounted is called for render-created child components in its inserted hook\r\n if (vm.$vnode == null) {\r\n vm._isMounted = true\r\n callHook(vm, \"mounted\")\r\n }\r\n return vm\r\n }\r\n\r\n function updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {\r\n var hasChildren = !!(\r\n renderChildren || // has new static slots\r\n vm.$options._renderChildren || // has old static slots\r\n parentVnode.data.scopedSlots || // has new scoped slots\r\n vm.$scopedSlots !== emptyObject\r\n ) // has old scoped slots\r\n\r\n vm.$options._parentVnode = parentVnode\r\n vm.$vnode = parentVnode // update vm's placeholder node without re-render\r\n\r\n if (vm._vnode) {\r\n // update child tree's parent\r\n vm._vnode.parent = parentVnode\r\n }\r\n vm.$options._renderChildren = renderChildren\r\n\r\n // update $attrs and $listensers hash\r\n // these are also reactive so they may trigger child update if the child\r\n // used them during render\r\n vm.$attrs = parentVnode.data && parentVnode.data.attrs\r\n vm.$listeners = listeners\r\n\r\n // update props\r\n if (propsData && vm.$options.props) {\r\n observerState.shouldConvert = false\r\n var props = vm._props\r\n var propKeys = vm.$options._propKeys || []\r\n for (var i = 0; i < propKeys.length; i++) {\r\n var key = propKeys[i]\r\n props[key] = validateProp(key, vm.$options.props, propsData, vm)\r\n }\r\n observerState.shouldConvert = true\r\n // keep a copy of raw propsData\r\n vm.$options.propsData = propsData\r\n }\r\n\r\n // update listeners\r\n if (listeners) {\r\n var oldListeners = vm.$options._parentListeners\r\n vm.$options._parentListeners = listeners\r\n updateComponentListeners(vm, listeners, oldListeners)\r\n }\r\n // resolve slots + force update if has children\r\n if (hasChildren) {\r\n vm.$slots = resolveSlots(renderChildren, parentVnode.context)\r\n vm.$forceUpdate()\r\n }\r\n }\r\n\r\n function isInInactiveTree(vm) {\r\n while (vm && (vm = vm.$parent)) {\r\n if (vm._inactive) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n\r\n function activateChildComponent(vm, direct) {\r\n if (direct) {\r\n vm._directInactive = false\r\n if (isInInactiveTree(vm)) {\r\n return\r\n }\r\n } else if (vm._directInactive) {\r\n return\r\n }\r\n if (vm._inactive || vm._inactive === null) {\r\n vm._inactive = false\r\n for (var i = 0; i < vm.$children.length; i++) {\r\n activateChildComponent(vm.$children[i])\r\n }\r\n callHook(vm, \"activated\")\r\n }\r\n }\r\n\r\n function deactivateChildComponent(vm, direct) {\r\n if (direct) {\r\n vm._directInactive = true\r\n if (isInInactiveTree(vm)) {\r\n return\r\n }\r\n }\r\n if (!vm._inactive) {\r\n vm._inactive = true\r\n for (var i = 0; i < vm.$children.length; i++) {\r\n deactivateChildComponent(vm.$children[i])\r\n }\r\n callHook(vm, \"deactivated\")\r\n }\r\n }\r\n\r\n function callHook(vm, hook) {\r\n var handlers = vm.$options[hook]\r\n if (handlers) {\r\n for (var i = 0, j = handlers.length; i < j; i++) {\r\n try {\r\n handlers[i].call(vm)\r\n } catch (e) {\r\n handleError(e, vm, hook + \" hook\")\r\n }\r\n }\r\n }\r\n if (vm._hasHookEvent) {\r\n vm.$emit(\"hook:\" + hook)\r\n }\r\n }\r\n\r\n /* */\r\n\r\n var MAX_UPDATE_COUNT = 100\r\n\r\n var queue = []\r\n var activatedChildren = []\r\n var has = {}\r\n var circular = {}\r\n var waiting = false\r\n var flushing = false\r\n var index = 0\r\n\r\n /**\r\n * Reset the scheduler's state.\r\n */\r\n function resetSchedulerState() {\r\n index = queue.length = activatedChildren.length = 0\r\n has = {}\r\n waiting = flushing = false\r\n }\r\n\r\n /**\r\n * Flush both queues and run the watchers.\r\n */\r\n function flushSchedulerQueue() {\r\n flushing = true\r\n var watcher, id\r\n\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child)\r\n // 2. A component's user watchers are run before its render watcher (because\r\n // user watchers are created before the render watcher)\r\n // 3. If a component is destroyed during a parent component's watcher run,\r\n // its watchers can be skipped.\r\n queue.sort(function(a, b) {\r\n return a.id - b.id\r\n })\r\n\r\n // do not cache length because more watchers might be pushed\r\n // as we run existing watchers\r\n for (index = 0; index < queue.length; index++) {\r\n watcher = queue[index]\r\n id = watcher.id\r\n has[id] = null\r\n watcher.run()\r\n // in dev build, check and stop circular updates.\r\n if (\"production\" !== \"production\" && has[id] != null) {\r\n circular[id] = (circular[id] || 0) + 1\r\n if (circular[id] > MAX_UPDATE_COUNT) {\r\n warn(\r\n \"You may have an infinite update loop \" +\r\n (watcher.user\r\n ? 'in watcher with expression \"' + watcher.expression + '\"'\r\n : \"in a component render function.\"),\r\n watcher.vm\r\n )\r\n break\r\n }\r\n }\r\n }\r\n\r\n // keep copies of post queues before resetting state\r\n var activatedQueue = activatedChildren.slice()\r\n var updatedQueue = queue.slice()\r\n\r\n resetSchedulerState()\r\n\r\n // call component updated and activated hooks\r\n callActivatedHooks(activatedQueue)\r\n callUpdatedHooks(updatedQueue)\r\n\r\n // devtool hook\r\n /* istanbul ignore if */\r\n if (devtools && config.devtools) {\r\n devtools.emit(\"flush\")\r\n }\r\n }\r\n\r\n function callUpdatedHooks(queue) {\r\n var i = queue.length\r\n while (i--) {\r\n var watcher = queue[i]\r\n var vm = watcher.vm\r\n if (vm._watcher === watcher && vm._isMounted) {\r\n callHook(vm, \"updated\")\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Queue a kept-alive component that was activated during patch.\r\n * The queue will be processed after the entire tree has been patched.\r\n */\r\n function queueActivatedComponent(vm) {\r\n // setting _inactive to false here so that a render function can\r\n // rely on checking whether it's in an inactive tree (e.g. router-view)\r\n vm._inactive = false\r\n activatedChildren.push(vm)\r\n }\r\n\r\n function callActivatedHooks(queue) {\r\n for (var i = 0; i < queue.length; i++) {\r\n queue[i]._inactive = true\r\n activateChildComponent(queue[i], true /* true */)\r\n }\r\n }\r\n\r\n /**\r\n * Push a watcher into the watcher queue.\r\n * Jobs with duplicate IDs will be skipped unless it's\r\n * pushed when the queue is being flushed.\r\n */\r\n function queueWatcher(watcher) {\r\n var id = watcher.id\r\n if (has[id] == null) {\r\n has[id] = true\r\n if (!flushing) {\r\n queue.push(watcher)\r\n } else {\r\n // if already flushing, splice the watcher based on its id\r\n // if already past its id, it will be run next immediately.\r\n var i = queue.length - 1\r\n while (i > index && queue[i].id > watcher.id) {\r\n i--\r\n }\r\n queue.splice(i + 1, 0, watcher)\r\n }\r\n // queue the flush\r\n if (!waiting) {\r\n waiting = true\r\n nextTick(flushSchedulerQueue)\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n var uid$2 = 0\r\n\r\n /**\r\n * A watcher parses an expression, collects dependencies,\r\n * and fires callback when the expression value changes.\r\n * This is used for both the $watch() api and directives.\r\n */\r\n var Watcher = function Watcher(vm, expOrFn, cb, options) {\r\n this.vm = vm\r\n vm._watchers.push(this)\r\n // options\r\n if (options) {\r\n this.deep = !!options.deep\r\n this.user = !!options.user\r\n this.lazy = !!options.lazy\r\n this.sync = !!options.sync\r\n } else {\r\n this.deep = this.user = this.lazy = this.sync = false\r\n }\r\n this.cb = cb\r\n this.id = ++uid$2 // uid for batching\r\n this.active = true\r\n this.dirty = this.lazy // for lazy watchers\r\n this.deps = []\r\n this.newDeps = []\r\n this.depIds = new _Set()\r\n this.newDepIds = new _Set()\r\n this.expression = \"\"\r\n // parse expression for getter\r\n if (typeof expOrFn === \"function\") {\r\n this.getter = expOrFn\r\n } else {\r\n this.getter = parsePath(expOrFn)\r\n if (!this.getter) {\r\n this.getter = function() {}\r\n \"production\" !== \"production\" &&\r\n warn(\r\n 'Failed watching path: \"' +\r\n expOrFn +\r\n '\" ' +\r\n \"Watcher only accepts simple dot-delimited paths. \" +\r\n \"For full control, use a function instead.\",\r\n vm\r\n )\r\n }\r\n }\r\n this.value = this.lazy ? undefined : this.get()\r\n }\r\n\r\n /**\r\n * Evaluate the getter, and re-collect dependencies.\r\n */\r\n Watcher.prototype.get = function get() {\r\n pushTarget(this)\r\n var value\r\n var vm = this.vm\r\n try {\r\n value = this.getter.call(vm, vm)\r\n } catch (e) {\r\n if (this.user) {\r\n handleError(e, vm, 'getter for watcher \"' + this.expression + '\"')\r\n } else {\r\n throw e\r\n }\r\n } finally {\r\n // \"touch\" every property so they are all tracked as\r\n // dependencies for deep watching\r\n if (this.deep) {\r\n traverse(value)\r\n }\r\n popTarget()\r\n this.cleanupDeps()\r\n }\r\n return value\r\n }\r\n\r\n /**\r\n * Add a dependency to this directive.\r\n */\r\n Watcher.prototype.addDep = function addDep(dep) {\r\n var id = dep.id\r\n if (!this.newDepIds.has(id)) {\r\n this.newDepIds.add(id)\r\n this.newDeps.push(dep)\r\n if (!this.depIds.has(id)) {\r\n dep.addSub(this)\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Clean up for dependency collection.\r\n */\r\n Watcher.prototype.cleanupDeps = function cleanupDeps() {\r\n var this$1 = this\r\n\r\n var i = this.deps.length\r\n while (i--) {\r\n var dep = this$1.deps[i]\r\n if (!this$1.newDepIds.has(dep.id)) {\r\n dep.removeSub(this$1)\r\n }\r\n }\r\n var tmp = this.depIds\r\n this.depIds = this.newDepIds\r\n this.newDepIds = tmp\r\n this.newDepIds.clear()\r\n tmp = this.deps\r\n this.deps = this.newDeps\r\n this.newDeps = tmp\r\n this.newDeps.length = 0\r\n }\r\n\r\n /**\r\n * Subscriber interface.\r\n * Will be called when a dependency changes.\r\n */\r\n Watcher.prototype.update = function update() {\r\n /* istanbul ignore else */\r\n if (this.lazy) {\r\n this.dirty = true\r\n } else if (this.sync) {\r\n this.run()\r\n } else {\r\n queueWatcher(this)\r\n }\r\n }\r\n\r\n /**\r\n * Scheduler job interface.\r\n * Will be called by the scheduler.\r\n */\r\n Watcher.prototype.run = function run() {\r\n if (this.active) {\r\n var value = this.get()\r\n if (\r\n value !== this.value ||\r\n // Deep watchers and watchers on Object/Arrays should fire even\r\n // when the value is the same, because the value may\r\n // have mutated.\r\n isObject(value) ||\r\n this.deep\r\n ) {\r\n // set new value\r\n var oldValue = this.value\r\n this.value = value\r\n if (this.user) {\r\n try {\r\n this.cb.call(this.vm, value, oldValue)\r\n } catch (e) {\r\n handleError(e, this.vm, 'callback for watcher \"' + this.expression + '\"')\r\n }\r\n } else {\r\n this.cb.call(this.vm, value, oldValue)\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Evaluate the value of the watcher.\r\n * This only gets called for lazy watchers.\r\n */\r\n Watcher.prototype.evaluate = function evaluate() {\r\n this.value = this.get()\r\n this.dirty = false\r\n }\r\n\r\n /**\r\n * Depend on all deps collected by this watcher.\r\n */\r\n Watcher.prototype.depend = function depend() {\r\n var this$1 = this\r\n\r\n var i = this.deps.length\r\n while (i--) {\r\n this$1.deps[i].depend()\r\n }\r\n }\r\n\r\n /**\r\n * Remove self from all dependencies' subscriber list.\r\n */\r\n Watcher.prototype.teardown = function teardown() {\r\n var this$1 = this\r\n\r\n if (this.active) {\r\n // remove self from vm's watcher list\r\n // this is a somewhat expensive operation so we skip it\r\n // if the vm is being destroyed.\r\n if (!this.vm._isBeingDestroyed) {\r\n remove(this.vm._watchers, this)\r\n }\r\n var i = this.deps.length\r\n while (i--) {\r\n this$1.deps[i].removeSub(this$1)\r\n }\r\n this.active = false\r\n }\r\n }\r\n\r\n /**\r\n * Recursively traverse an object to evoke all converted\r\n * getters, so that every nested property inside the object\r\n * is collected as a \"deep\" dependency.\r\n */\r\n var seenObjects = new _Set()\r\n\r\n function traverse(val) {\r\n seenObjects.clear()\r\n _traverse(val, seenObjects)\r\n }\r\n\r\n function _traverse(val, seen) {\r\n var i, keys\r\n var isA = Array.isArray(val)\r\n if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {\r\n return\r\n }\r\n if (val.__ob__) {\r\n var depId = val.__ob__.dep.id\r\n if (seen.has(depId)) {\r\n return\r\n }\r\n seen.add(depId)\r\n }\r\n if (isA) {\r\n i = val.length\r\n while (i--) {\r\n _traverse(val[i], seen)\r\n }\r\n } else {\r\n keys = Object.keys(val)\r\n i = keys.length\r\n while (i--) {\r\n _traverse(val[keys[i]], seen)\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n var sharedPropertyDefinition = {\r\n enumerable: true,\r\n configurable: true,\r\n get: noop,\r\n set: noop\r\n }\r\n\r\n function proxy(target, sourceKey, key) {\r\n sharedPropertyDefinition.get = function proxyGetter() {\r\n return this[sourceKey][key]\r\n }\r\n sharedPropertyDefinition.set = function proxySetter(val) {\r\n this[sourceKey][key] = val\r\n }\r\n Object.defineProperty(target, key, sharedPropertyDefinition)\r\n }\r\n\r\n function initState(vm) {\r\n vm._watchers = []\r\n var opts = vm.$options\r\n if (opts.props) {\r\n initProps(vm, opts.props)\r\n }\r\n if (opts.methods) {\r\n initMethods(vm, opts.methods)\r\n }\r\n if (opts.data) {\r\n initData(vm)\r\n } else {\r\n observe((vm._data = {}), true /* asRootData */)\r\n }\r\n if (opts.computed) {\r\n initComputed(vm, opts.computed)\r\n }\r\n if (opts.watch && opts.watch !== nativeWatch) {\r\n initWatch(vm, opts.watch)\r\n }\r\n }\r\n\r\n function checkOptionType(vm, name) {\r\n var option = vm.$options[name]\r\n if (!isPlainObject(option)) {\r\n warn('component option \"' + name + '\" should be an object.', vm)\r\n }\r\n }\r\n\r\n function initProps(vm, propsOptions) {\r\n var propsData = vm.$options.propsData || {}\r\n var props = (vm._props = {})\r\n // cache prop keys so that future props updates can iterate using Array\r\n // instead of dynamic object key enumeration.\r\n var keys = (vm.$options._propKeys = [])\r\n var isRoot = !vm.$parent\r\n // root instance props should be converted\r\n observerState.shouldConvert = isRoot\r\n var loop = function(key) {\r\n keys.push(key)\r\n var value = validateProp(key, propsOptions, propsData, vm)\r\n /* istanbul ignore else */\r\n {\r\n defineReactive$$1(props, key, value)\r\n }\r\n // static props are already proxied on the component's prototype\r\n // during Vue.extend(). We only need to proxy props defined at\r\n // instantiation here.\r\n if (!(key in vm)) {\r\n proxy(vm, \"_props\", key)\r\n }\r\n }\r\n\r\n for (var key in propsOptions) loop(key)\r\n observerState.shouldConvert = true\r\n }\r\n\r\n function initData(vm) {\r\n var data = vm.$options.data\r\n data = vm._data = typeof data === \"function\" ? getData(data, vm) : data || {}\r\n if (!isPlainObject(data)) {\r\n data = {}\r\n \"production\" !== \"production\" &&\r\n warn(\r\n \"data functions should return an object:\\n\" +\r\n \"https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function\",\r\n vm\r\n )\r\n }\r\n // proxy data on instance\r\n var keys = Object.keys(data)\r\n var props = vm.$options.props\r\n var methods = vm.$options.methods\r\n var i = keys.length\r\n while (i--) {\r\n var key = keys[i]\r\n if (props && hasOwn(props, key)) {\r\n \"production\" !== \"production\" &&\r\n warn(\r\n 'The data property \"' +\r\n key +\r\n '\" is already declared as a prop. ' +\r\n \"Use prop default value instead.\",\r\n vm\r\n )\r\n } else if (!isReserved(key)) {\r\n proxy(vm, \"_data\", key)\r\n }\r\n }\r\n // observe data\r\n observe(data, true /* asRootData */)\r\n }\r\n\r\n function getData(data, vm) {\r\n try {\r\n return data.call(vm)\r\n } catch (e) {\r\n handleError(e, vm, \"data()\")\r\n return {}\r\n }\r\n }\r\n\r\n var computedWatcherOptions = {\r\n lazy: true\r\n }\r\n\r\n function initComputed(vm, computed) {\r\n \"production\" !== \"production\" && checkOptionType(vm, \"computed\")\r\n var watchers = (vm._computedWatchers = Object.create(null))\r\n\r\n for (var key in computed) {\r\n var userDef = computed[key]\r\n var getter = typeof userDef === \"function\" ? userDef : userDef.get\r\n watchers[key] = new Watcher(vm, getter, noop, computedWatcherOptions)\r\n\r\n // component-defined computed properties are already defined on the\r\n // component prototype. We only need to define computed properties defined\r\n // at instantiation here.\r\n if (!(key in vm)) {\r\n defineComputed(vm, key, userDef)\r\n } else {\r\n }\r\n }\r\n }\r\n\r\n function defineComputed(target, key, userDef) {\r\n if (typeof userDef === \"function\") {\r\n sharedPropertyDefinition.get = createComputedGetter(key)\r\n sharedPropertyDefinition.set = noop\r\n } else {\r\n sharedPropertyDefinition.get = userDef.get\r\n ? userDef.cache !== false\r\n ? createComputedGetter(key)\r\n : userDef.get\r\n : noop\r\n sharedPropertyDefinition.set = userDef.set ? userDef.set : noop\r\n }\r\n Object.defineProperty(target, key, sharedPropertyDefinition)\r\n }\r\n\r\n function createComputedGetter(key) {\r\n return function computedGetter() {\r\n var watcher = this._computedWatchers && this._computedWatchers[key]\r\n if (watcher) {\r\n if (watcher.dirty) {\r\n watcher.evaluate()\r\n }\r\n if (Dep.target) {\r\n watcher.depend()\r\n }\r\n return watcher.value\r\n }\r\n }\r\n }\r\n\r\n function initMethods(vm, methods) {\r\n \"production\" !== \"production\" && checkOptionType(vm, \"methods\")\r\n var props = vm.$options.props\r\n for (var key in methods) {\r\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm)\r\n }\r\n }\r\n\r\n function initWatch(vm, watch) {\r\n \"production\" !== \"production\" && checkOptionType(vm, \"watch\")\r\n for (var key in watch) {\r\n var handler = watch[key]\r\n if (Array.isArray(handler)) {\r\n for (var i = 0; i < handler.length; i++) {\r\n createWatcher(vm, key, handler[i])\r\n }\r\n } else {\r\n createWatcher(vm, key, handler)\r\n }\r\n }\r\n }\r\n\r\n function createWatcher(vm, keyOrFn, handler, options) {\r\n if (isPlainObject(handler)) {\r\n options = handler\r\n handler = handler.handler\r\n }\r\n if (typeof handler === \"string\") {\r\n handler = vm[handler]\r\n }\r\n return vm.$watch(keyOrFn, handler, options)\r\n }\r\n\r\n function stateMixin(Vue) {\r\n // flow somehow has problems with directly declared definition object\r\n // when using Object.defineProperty, so we have to procedurally build up\r\n // the object here.\r\n var dataDef = {}\r\n dataDef.get = function() {\r\n return this._data\r\n }\r\n var propsDef = {}\r\n propsDef.get = function() {\r\n return this._props\r\n }\r\n Object.defineProperty(Vue.prototype, \"$data\", dataDef)\r\n Object.defineProperty(Vue.prototype, \"$props\", propsDef)\r\n\r\n Vue.prototype.$set = set\r\n Vue.prototype.$delete = del\r\n\r\n Vue.prototype.$watch = function(expOrFn, cb, options) {\r\n var vm = this\r\n if (isPlainObject(cb)) {\r\n return createWatcher(vm, expOrFn, cb, options)\r\n }\r\n options = options || {}\r\n options.user = true\r\n var watcher = new Watcher(vm, expOrFn, cb, options)\r\n if (options.immediate) {\r\n cb.call(vm, watcher.value)\r\n }\r\n return function unwatchFn() {\r\n watcher.teardown()\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n function initProvide(vm) {\r\n var provide = vm.$options.provide\r\n if (provide) {\r\n vm._provided = typeof provide === \"function\" ? provide.call(vm) : provide\r\n }\r\n }\r\n\r\n function initInjections(vm) {\r\n var result = resolveInject(vm.$options.inject, vm)\r\n if (result) {\r\n observerState.shouldConvert = false\r\n Object.keys(result).forEach(function(key) {\r\n /* istanbul ignore else */\r\n {\r\n defineReactive$$1(vm, key, result[key])\r\n }\r\n })\r\n observerState.shouldConvert = true\r\n }\r\n }\r\n\r\n function resolveInject(inject, vm) {\r\n if (inject) {\r\n // inject is :any because flow is not smart enough to figure out cached\r\n var result = Object.create(null)\r\n var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject)\r\n\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i]\r\n var provideKey = inject[key]\r\n var source = vm\r\n while (source) {\r\n if (source._provided && provideKey in source._provided) {\r\n result[key] = source._provided[provideKey]\r\n break\r\n }\r\n source = source.$parent\r\n }\r\n if (\"production\" !== \"production\" && !hasOwn(result, key)) {\r\n warn('Injection \"' + key + '\" not found', vm)\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n\r\n /* */\r\n\r\n function createFunctionalComponent(Ctor, propsData, data, context, children) {\r\n var props = {}\r\n var propOptions = Ctor.options.props\r\n if (isDef(propOptions)) {\r\n for (var key in propOptions) {\r\n props[key] = validateProp(key, propOptions, propsData || {})\r\n }\r\n } else {\r\n if (isDef(data.attrs)) {\r\n mergeProps(props, data.attrs)\r\n }\r\n if (isDef(data.props)) {\r\n mergeProps(props, data.props)\r\n }\r\n }\r\n // ensure the createElement function in functional components\r\n // gets a unique context - this is necessary for correct named slot check\r\n var _context = Object.create(context)\r\n var h = function(a, b, c, d) {\r\n return createElement(_context, a, b, c, d, true)\r\n }\r\n var vnode = Ctor.options.render.call(null, h, {\r\n data: data,\r\n props: props,\r\n children: children,\r\n parent: context,\r\n listeners: data.on || {},\r\n injections: resolveInject(Ctor.options.inject, context),\r\n slots: function() {\r\n return resolveSlots(children, context)\r\n }\r\n })\r\n if (vnode instanceof VNode) {\r\n vnode.functionalContext = context\r\n vnode.functionalOptions = Ctor.options\r\n if (data.slot) {\r\n ;(vnode.data || (vnode.data = {})).slot = data.slot\r\n }\r\n }\r\n return vnode\r\n }\r\n\r\n function mergeProps(to, from) {\r\n for (var key in from) {\r\n to[camelize(key)] = from[key]\r\n }\r\n }\r\n\r\n /* */\r\n\r\n // hooks to be invoked on component VNodes during patch\r\n var componentVNodeHooks = {\r\n init: function init(vnode, hydrating, parentElm, refElm) {\r\n if (!vnode.componentInstance || vnode.componentInstance._isDestroyed) {\r\n var child = (vnode.componentInstance = createComponentInstanceForVnode(\r\n vnode,\r\n activeInstance,\r\n parentElm,\r\n refElm\r\n ))\r\n child.$mount(hydrating ? vnode.elm : undefined, hydrating)\r\n } else if (vnode.data.keepAlive) {\r\n // kept-alive components, treat as a patch\r\n var mountedNode = vnode // work around flow\r\n componentVNodeHooks.prepatch(mountedNode, mountedNode)\r\n }\r\n },\r\n\r\n prepatch: function prepatch(oldVnode, vnode) {\r\n var options = vnode.componentOptions\r\n var child = (vnode.componentInstance = oldVnode.componentInstance)\r\n updateChildComponent(\r\n child,\r\n options.propsData, // updated props\r\n options.listeners, // updated listeners\r\n vnode, // new parent vnode\r\n options.children // new children\r\n )\r\n },\r\n\r\n insert: function insert(vnode) {\r\n var context = vnode.context\r\n var componentInstance = vnode.componentInstance\r\n\r\n if (!componentInstance._isMounted) {\r\n componentInstance._isMounted = true\r\n callHook(componentInstance, \"mounted\")\r\n }\r\n if (vnode.data.keepAlive) {\r\n if (context._isMounted) {\r\n // vue-router#1212\r\n // During updates, a kept-alive component's child components may\r\n // change, so directly walking the tree here may call activated hooks\r\n // on incorrect children. Instead we push them into a queue which will\r\n // be processed after the whole patch process ended.\r\n queueActivatedComponent(componentInstance)\r\n } else {\r\n activateChildComponent(componentInstance, true /* direct */)\r\n }\r\n }\r\n },\r\n\r\n destroy: function destroy(vnode) {\r\n var componentInstance = vnode.componentInstance\r\n if (!componentInstance._isDestroyed) {\r\n if (!vnode.data.keepAlive) {\r\n componentInstance.$destroy()\r\n } else {\r\n deactivateChildComponent(componentInstance, true /* direct */)\r\n }\r\n }\r\n }\r\n }\r\n\r\n var hooksToMerge = Object.keys(componentVNodeHooks)\r\n\r\n function createComponent(Ctor, data, context, children, tag) {\r\n if (isUndef(Ctor)) {\r\n return\r\n }\r\n\r\n var baseCtor = context.$options._base\r\n\r\n // plain options object: turn it into a constructor\r\n if (isObject(Ctor)) {\r\n Ctor = baseCtor.extend(Ctor)\r\n }\r\n\r\n // if at this stage it's not a constructor or an async component factory,\r\n // reject.\r\n if (typeof Ctor !== \"function\") {\r\n return\r\n }\r\n\r\n // async component\r\n var asyncFactory\r\n if (isUndef(Ctor.cid)) {\r\n asyncFactory = Ctor\r\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context)\r\n if (Ctor === undefined) {\r\n // return a placeholder node for async component, which is rendered\r\n // as a comment node but preserves all the raw information for the node.\r\n // the information will be used for async server-rendering and hydration.\r\n return createAsyncPlaceholder(asyncFactory, data, context, children, tag)\r\n }\r\n }\r\n\r\n data = data || {}\r\n\r\n // resolve constructor options in case global mixins are applied after\r\n // component constructor creation\r\n resolveConstructorOptions(Ctor)\r\n\r\n // transform component v-model data into props & events\r\n if (isDef(data.model)) {\r\n transformModel(Ctor.options, data)\r\n }\r\n\r\n // extract props\r\n var propsData = extractPropsFromVNodeData(data, Ctor, tag)\r\n\r\n // functional component\r\n if (isTrue(Ctor.options.functional)) {\r\n return createFunctionalComponent(Ctor, propsData, data, context, children)\r\n }\r\n\r\n // keep listeners\r\n var listeners = data.on\r\n\r\n if (isTrue(Ctor.options.abstract)) {\r\n // abstract components do not keep anything\r\n // other than props & listeners & slot\r\n\r\n // work around flow\r\n var slot = data.slot\r\n data = {}\r\n if (slot) {\r\n data.slot = slot\r\n }\r\n }\r\n\r\n // merge component management hooks onto the placeholder node\r\n mergeHooks(data)\r\n\r\n // return a placeholder vnode\r\n var name = Ctor.options.name || tag\r\n var vnode = new VNode(\r\n \"vue-component-\" + Ctor.cid + (name ? \"-\" + name : \"\"),\r\n data,\r\n undefined,\r\n undefined,\r\n undefined,\r\n context,\r\n {\r\n Ctor: Ctor,\r\n propsData: propsData,\r\n listeners: listeners,\r\n tag: tag,\r\n children: children\r\n },\r\n asyncFactory\r\n )\r\n return vnode\r\n }\r\n\r\n function createComponentInstanceForVnode(\r\n vnode, // we know it's MountedComponentVNode but flow doesn't\r\n parent, // activeInstance in lifecycle state\r\n parentElm,\r\n refElm\r\n ) {\r\n var vnodeComponentOptions = vnode.componentOptions\r\n var options = {\r\n _isComponent: true,\r\n parent: parent,\r\n propsData: vnodeComponentOptions.propsData,\r\n _componentTag: vnodeComponentOptions.tag,\r\n _parentVnode: vnode,\r\n _parentListeners: vnodeComponentOptions.listeners,\r\n _renderChildren: vnodeComponentOptions.children,\r\n _parentElm: parentElm || null,\r\n _refElm: refElm || null\r\n }\r\n // check inline-template render functions\r\n var inlineTemplate = vnode.data.inlineTemplate\r\n if (isDef(inlineTemplate)) {\r\n options.render = inlineTemplate.render\r\n options.staticRenderFns = inlineTemplate.staticRenderFns\r\n }\r\n return new vnodeComponentOptions.Ctor(options)\r\n }\r\n\r\n function mergeHooks(data) {\r\n if (!data.hook) {\r\n data.hook = {}\r\n }\r\n for (var i = 0; i < hooksToMerge.length; i++) {\r\n var key = hooksToMerge[i]\r\n var fromParent = data.hook[key]\r\n var ours = componentVNodeHooks[key]\r\n data.hook[key] = fromParent ? mergeHook$1(ours, fromParent) : ours\r\n }\r\n }\r\n\r\n function mergeHook$1(one, two) {\r\n return function(a, b, c, d) {\r\n one(a, b, c, d)\r\n two(a, b, c, d)\r\n }\r\n }\r\n\r\n // transform component v-model info (value and callback) into\r\n // prop and event handler respectively.\r\n function transformModel(options, data) {\r\n var prop = (options.model && options.model.prop) || \"value\"\r\n var event = (options.model && options.model.event) || \"input\"\r\n ;(data.props || (data.props = {}))[prop] = data.model.value\r\n var on = data.on || (data.on = {})\r\n if (isDef(on[event])) {\r\n on[event] = [data.model.callback].concat(on[event])\r\n } else {\r\n on[event] = data.model.callback\r\n }\r\n }\r\n\r\n /* */\r\n\r\n var SIMPLE_NORMALIZE = 1\r\n var ALWAYS_NORMALIZE = 2\r\n\r\n // wrapper function for providing a more flexible interface\r\n // without getting yelled at by flow\r\n function createElement(context, tag, data, children, normalizationType, alwaysNormalize) {\r\n if (Array.isArray(data) || isPrimitive(data)) {\r\n normalizationType = children\r\n children = data\r\n data = undefined\r\n }\r\n if (isTrue(alwaysNormalize)) {\r\n normalizationType = ALWAYS_NORMALIZE\r\n }\r\n return _createElement(context, tag, data, children, normalizationType)\r\n }\r\n\r\n function _createElement(context, tag, data, children, normalizationType) {\r\n if (isDef(data) && isDef(data.__ob__)) {\r\n \"production\" !== \"production\" &&\r\n warn(\r\n \"Avoid using observed data object as vnode data: \" +\r\n JSON.stringify(data) +\r\n \"\\n\" +\r\n \"Always create fresh vnode data objects in each render!\",\r\n context\r\n )\r\n return createEmptyVNode()\r\n }\r\n // object syntax in v-bind\r\n if (isDef(data) && isDef(data.is)) {\r\n tag = data.is\r\n }\r\n if (!tag) {\r\n // in case of component :is set to falsy value\r\n return createEmptyVNode()\r\n }\r\n // warn against non-primitive key\r\n if (\r\n \"production\" !== \"production\" &&\r\n isDef(data) &&\r\n isDef(data.key) &&\r\n !isPrimitive(data.key)\r\n ) {\r\n warn(\r\n \"Avoid using non-primitive value as key, \" + \"use string/number value instead.\",\r\n context\r\n )\r\n }\r\n // support single function children as default scoped slot\r\n if (Array.isArray(children) && typeof children[0] === \"function\") {\r\n data = data || {}\r\n data.scopedSlots = {\r\n default: children[0]\r\n }\r\n children.length = 0\r\n }\r\n if (normalizationType === ALWAYS_NORMALIZE) {\r\n children = normalizeChildren(children)\r\n } else if (normalizationType === SIMPLE_NORMALIZE) {\r\n children = simpleNormalizeChildren(children)\r\n }\r\n var vnode, ns\r\n if (typeof tag === \"string\") {\r\n var Ctor\r\n ns = config.getTagNamespace(tag)\r\n if (config.isReservedTag(tag)) {\r\n // platform built-in elements\r\n vnode = new VNode(\r\n config.parsePlatformTagName(tag),\r\n data,\r\n children,\r\n undefined,\r\n undefined,\r\n context\r\n )\r\n } else if (isDef((Ctor = resolveAsset(context.$options, \"components\", tag)))) {\r\n // component\r\n vnode = createComponent(Ctor, data, context, children, tag)\r\n } else {\r\n // unknown or unlisted namespaced elements\r\n // check at runtime because it may get assigned a namespace when its\r\n // parent normalizes children\r\n vnode = new VNode(tag, data, children, undefined, undefined, context)\r\n }\r\n } else {\r\n // direct component options / constructor\r\n vnode = createComponent(tag, data, context, children)\r\n }\r\n if (isDef(vnode)) {\r\n if (ns) {\r\n applyNS(vnode, ns)\r\n }\r\n return vnode\r\n } else {\r\n return createEmptyVNode()\r\n }\r\n }\r\n\r\n function applyNS(vnode, ns) {\r\n vnode.ns = ns\r\n if (vnode.tag === \"foreignObject\") {\r\n // use default namespace inside foreignObject\r\n return\r\n }\r\n if (isDef(vnode.children)) {\r\n for (var i = 0, l = vnode.children.length; i < l; i++) {\r\n var child = vnode.children[i]\r\n if (isDef(child.tag) && isUndef(child.ns)) {\r\n applyNS(child, ns)\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Runtime helper for rendering v-for lists.\r\n */\r\n function renderList(val, render) {\r\n var ret, i, l, keys, key\r\n if (Array.isArray(val) || typeof val === \"string\") {\r\n ret = new Array(val.length)\r\n for (i = 0, l = val.length; i < l; i++) {\r\n ret[i] = render(val[i], i)\r\n }\r\n } else if (typeof val === \"number\") {\r\n ret = new Array(val)\r\n for (i = 0; i < val; i++) {\r\n ret[i] = render(i + 1, i)\r\n }\r\n } else if (isObject(val)) {\r\n keys = Object.keys(val)\r\n ret = new Array(keys.length)\r\n for (i = 0, l = keys.length; i < l; i++) {\r\n key = keys[i]\r\n ret[i] = render(val[key], key, i)\r\n }\r\n }\r\n if (isDef(ret)) {\r\n ret._isVList = true\r\n }\r\n return ret\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Runtime helper for rendering <slot>\r\n */\r\n function renderSlot(name, fallback, props, bindObject) {\r\n var scopedSlotFn = this.$scopedSlots[name]\r\n if (scopedSlotFn) {\r\n // scoped slot\r\n props = props || {}\r\n if (bindObject) {\r\n props = extend(extend({}, bindObject), props)\r\n }\r\n return scopedSlotFn(props) || fallback\r\n } else {\r\n var slotNodes = this.$slots[name]\r\n // warn duplicate slot usage\r\n if (slotNodes && \"production\" !== \"production\") {\r\n slotNodes._rendered &&\r\n warn(\r\n 'Duplicate presence of slot \"' +\r\n name +\r\n '\" found in the same render tree ' +\r\n \"- this will likely cause render errors.\",\r\n this\r\n )\r\n slotNodes._rendered = true\r\n }\r\n return slotNodes || fallback\r\n }\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Runtime helper for resolving filters\r\n */\r\n function resolveFilter(id) {\r\n return resolveAsset(this.$options, \"filters\", id, true) || identity\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Runtime helper for checking keyCodes from config.\r\n */\r\n function checkKeyCodes(eventKeyCode, key, builtInAlias) {\r\n var keyCodes = config.keyCodes[key] || builtInAlias\r\n if (Array.isArray(keyCodes)) {\r\n return keyCodes.indexOf(eventKeyCode) === -1\r\n } else {\r\n return keyCodes !== eventKeyCode\r\n }\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\r\n */\r\n function bindObjectProps(data, tag, value, asProp, isSync) {\r\n if (value) {\r\n if (!isObject(value)) {\r\n \"production\" !== \"production\" &&\r\n warn(\"v-bind without argument expects an Object or Array value\", this)\r\n } else {\r\n if (Array.isArray(value)) {\r\n value = toObject(value)\r\n }\r\n var hash\r\n var loop = function(key) {\r\n if (key === \"class\" || key === \"style\" || isReservedAttribute(key)) {\r\n hash = data\r\n } else {\r\n var type = data.attrs && data.attrs.type\r\n hash =\r\n asProp || config.mustUseProp(tag, type, key)\r\n ? data.domProps || (data.domProps = {})\r\n : data.attrs || (data.attrs = {})\r\n }\r\n if (!(key in hash)) {\r\n hash[key] = value[key]\r\n\r\n if (isSync) {\r\n var on = data.on || (data.on = {})\r\n on[\"update:\" + key] = function($event) {\r\n value[key] = $event\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (var key in value) loop(key)\r\n }\r\n }\r\n return data\r\n }\r\n\r\n /* */\r\n\r\n /**\r\n * Runtime helper for rendering static trees.\r\n */\r\n function renderStatic(index, isInFor) {\r\n var tree = this._staticTrees[index]\r\n // if has already-rendered static tree and not inside v-for,\r\n // we can reuse the same tree by doing a shallow clone.\r\n if (tree && !isInFor) {\r\n return Array.isArray(tree) ? cloneVNodes(tree) : cloneVNode(tree)\r\n }\r\n // otherwise, render a fresh tree.\r\n tree = this._staticTrees[index] = this.$options.staticRenderFns[index].call(\r\n this._renderProxy\r\n )\r\n markStatic(tree, \"__static__\" + index, false)\r\n return tree\r\n }\r\n\r\n /**\r\n * Runtime helper for v-once.\r\n * Effectively it means marking the node as static with a unique key.\r\n */\r\n function markOnce(tree, index, key) {\r\n markStatic(tree, \"__once__\" + index + (key ? \"_\" + key : \"\"), true)\r\n return tree\r\n }\r\n\r\n function markStatic(tree, key, isOnce) {\r\n if (Array.isArray(tree)) {\r\n for (var i = 0; i < tree.length; i++) {\r\n if (tree[i] && typeof tree[i] !== \"string\") {\r\n markStaticNode(tree[i], key + \"_\" + i, isOnce)\r\n }\r\n }\r\n } else {\r\n markStaticNode(tree, key, isOnce)\r\n }\r\n }\r\n\r\n function markStaticNode(node, key, isOnce) {\r\n node.isStatic = true\r\n node.key = key\r\n node.isOnce = isOnce\r\n }\r\n\r\n /* */\r\n\r\n function bindObjectListeners(data, value) {\r\n if (value) {\r\n if (!isPlainObject(value)) {\r\n \"production\" !== \"production\" &&\r\n warn(\"v-on without argument expects an Object value\", this)\r\n } else {\r\n var on = (data.on = data.on ? extend({}, data.on) : {})\r\n for (var key in value) {\r\n var existing = on[key]\r\n var ours = value[key]\r\n on[key] = existing ? [].concat(ours, existing) : ours\r\n }\r\n }\r\n }\r\n return data\r\n }\r\n\r\n /* */\r\n\r\n function initRender(vm) {\r\n vm._vnode = null // the root of the child tree\r\n vm._staticTrees = null\r\n var parentVnode = (vm.$vnode = vm.$options._parentVnode) // the placeholder node in parent tree\r\n var renderContext = parentVnode && parentVnode.context\r\n vm.$slots = resolveSlots(vm.$options._renderChildren, renderContext)\r\n vm.$scopedSlots = emptyObject\r\n // bind the createElement fn to this instance\r\n // so that we get proper render context inside it.\r\n // args order: tag, data, children, normalizationType, alwaysNormalize\r\n // internal version is used by render functions compiled from templates\r\n vm._c = function(a, b, c, d) {\r\n return createElement(vm, a, b, c, d, false)\r\n }\r\n // normalization is always applied for the public version, used in\r\n // user-written render functions.\r\n vm.$createElement = function(a, b, c, d) {\r\n return createElement(vm, a, b, c, d, true)\r\n }\r\n\r\n // $attrs & $listeners are exposed for easier HOC creation.\r\n // they need to be reactive so that HOCs using them are always updated\r\n var parentData = parentVnode && parentVnode.data\r\n /* istanbul ignore else */\r\n {\r\n defineReactive$$1(vm, \"$attrs\", parentData && parentData.attrs, null, true)\r\n defineReactive$$1(vm, \"$listeners\", parentData && parentData.on, null, true)\r\n }\r\n }\r\n\r\n function renderMixin(Vue) {\r\n Vue.prototype.$nextTick = function(fn) {\r\n return nextTick(fn, this)\r\n }\r\n\r\n Vue.prototype._render = function() {\r\n var vm = this\r\n var ref = vm.$options\r\n var render = ref.render\r\n var staticRenderFns = ref.staticRenderFns\r\n var _parentVnode = ref._parentVnode\r\n\r\n if (vm._isMounted) {\r\n // clone slot nodes on re-renders\r\n for (var key in vm.$slots) {\r\n vm.$slots[key] = cloneVNodes(vm.$slots[key])\r\n }\r\n }\r\n\r\n vm.$scopedSlots = (_parentVnode && _parentVnode.data.scopedSlots) || emptyObject\r\n\r\n if (staticRenderFns && !vm._staticTrees) {\r\n vm._staticTrees = []\r\n }\r\n // set parent vnode. this allows render functions to have access\r\n // to the data on the placeholder node.\r\n vm.$vnode = _parentVnode\r\n // render self\r\n var vnode\r\n try {\r\n vnode = render.call(vm._renderProxy, vm.$createElement)\r\n } catch (e) {\r\n handleError(e, vm, \"render function\")\r\n // return error render result,\r\n // or previous vnode to prevent render error causing blank component\r\n /* istanbul ignore else */\r\n {\r\n vnode = vm._vnode\r\n }\r\n }\r\n // return empty vnode in case the render function errored out\r\n if (!(vnode instanceof VNode)) {\r\n if (\"production\" !== \"production\" && Array.isArray(vnode)) {\r\n warn(\r\n \"Multiple root nodes returned from render function. Render function \" +\r\n \"should return a single root node.\",\r\n vm\r\n )\r\n }\r\n vnode = createEmptyVNode()\r\n }\r\n // set parent\r\n vnode.parent = _parentVnode\r\n return vnode\r\n }\r\n\r\n // internal render helpers.\r\n // these are exposed on the instance prototype to reduce generated render\r\n // code size.\r\n Vue.prototype._o = markOnce\r\n Vue.prototype._n = toNumber\r\n Vue.prototype._s = toString\r\n Vue.prototype._l = renderList\r\n Vue.prototype._t = renderSlot\r\n Vue.prototype._q = looseEqual\r\n Vue.prototype._i = looseIndexOf\r\n Vue.prototype._m = renderStatic\r\n Vue.prototype._f = resolveFilter\r\n Vue.prototype._k = checkKeyCodes\r\n Vue.prototype._b = bindObjectProps\r\n Vue.prototype._v = createTextVNode\r\n Vue.prototype._e = createEmptyVNode\r\n Vue.prototype._u = resolveScopedSlots\r\n Vue.prototype._g = bindObjectListeners\r\n }\r\n\r\n /* */\r\n\r\n var uid = 0\r\n\r\n function initMixin(Vue) {\r\n Vue.prototype._init = function(options) {\r\n var vm = this\r\n // a uid\r\n vm._uid = uid++\r\n\r\n var startTag, endTag\r\n /* istanbul ignore if */\r\n if (\"production\" !== \"production\" && config.performance && mark) {\r\n startTag = \"vue-perf-init:\" + vm._uid\r\n endTag = \"vue-perf-end:\" + vm._uid\r\n mark(startTag)\r\n }\r\n\r\n // a flag to avoid this being observed\r\n vm._isVue = true\r\n // merge options\r\n if (options && options._isComponent) {\r\n // optimize internal component instantiation\r\n // since dynamic options merging is pretty slow, and none of the\r\n // internal component options needs special treatment.\r\n initInternalComponent(vm, options)\r\n } else {\r\n vm.$options = mergeOptions(\r\n resolveConstructorOptions(vm.constructor),\r\n options || {},\r\n vm\r\n )\r\n }\r\n /* istanbul ignore else */\r\n {\r\n vm._renderProxy = vm\r\n }\r\n // expose real self\r\n vm._self = vm\r\n initLifecycle(vm)\r\n initEvents(vm)\r\n initRender(vm)\r\n callHook(vm, \"beforeCreate\")\r\n initInjections(vm) // resolve injections before data/props\r\n initState(vm)\r\n initProvide(vm) // resolve provide after data/props\r\n callHook(vm, \"created\")\r\n\r\n /* istanbul ignore if */\r\n if (\"production\" !== \"production\" && config.performance && mark) {\r\n vm._name = formatComponentName(vm, false)\r\n mark(endTag)\r\n measure(vm._name + \" init\", startTag, endTag)\r\n }\r\n\r\n if (vm.$options.el) {\r\n vm.$mount(vm.$options.el)\r\n }\r\n }\r\n }\r\n\r\n function initInternalComponent(vm, options) {\r\n var opts = (vm.$options = Object.create(vm.constructor.options))\r\n // doing this because it's faster than dynamic enumeration.\r\n opts.parent = options.parent\r\n opts.propsData = options.propsData\r\n opts._parentVnode = options._parentVnode\r\n opts._parentListeners = options._parentListeners\r\n opts._renderChildren = options._renderChildren\r\n opts._componentTag = options._componentTag\r\n opts._parentElm = options._parentElm\r\n opts._refElm = options._refElm\r\n if (options.render) {\r\n opts.render = options.render\r\n opts.staticRenderFns = options.staticRenderFns\r\n }\r\n }\r\n\r\n function resolveConstructorOptions(Ctor) {\r\n var options = Ctor.options\r\n if (Ctor.super) {\r\n var superOptions = resolveConstructorOptions(Ctor.super)\r\n var cachedSuperOptions = Ctor.superOptions\r\n if (superOptions !== cachedSuperOptions) {\r\n // super option changed,\r\n // need to resolve new options.\r\n Ctor.superOptions = superOptions\r\n // check if there are any late-modified/attached options (#4976)\r\n var modifiedOptions = resolveModifiedOptions(Ctor)\r\n // update base extend options\r\n if (modifiedOptions) {\r\n extend(Ctor.extendOptions, modifiedOptions)\r\n }\r\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions)\r\n if (options.name) {\r\n options.components[options.name] = Ctor\r\n }\r\n }\r\n }\r\n return options\r\n }\r\n\r\n function resolveModifiedOptions(Ctor) {\r\n var modified\r\n var latest = Ctor.options\r\n var extended = Ctor.extendOptions\r\n var sealed = Ctor.sealedOptions\r\n for (var key in latest) {\r\n if (latest[key] !== sealed[key]) {\r\n if (!modified) {\r\n modified = {}\r\n }\r\n modified[key] = dedupe(latest[key], extended[key], sealed[key])\r\n }\r\n }\r\n return modified\r\n }\r\n\r\n function dedupe(latest, extended, sealed) {\r\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\r\n // between merges\r\n if (Array.isArray(latest)) {\r\n var res = []\r\n sealed = Array.isArray(sealed) ? sealed : [sealed]\r\n extended = Array.isArray(extended) ? extended : [extended]\r\n for (var i = 0; i < latest.length; i++) {\r\n // push original options and not sealed options to exclude duplicated options\r\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\r\n res.push(latest[i])\r\n }\r\n }\r\n return res\r\n } else {\r\n return latest\r\n }\r\n }\r\n\r\n function Vue$3(options) {\r\n if (\"production\" !== \"production\" && !(this instanceof Vue$3)) {\r\n warn(\"Vue is a constructor and should be called with the `new` keyword\")\r\n }\r\n this._init(options)\r\n }\r\n\r\n initMixin(Vue$3)\r\n stateMixin(Vue$3)\r\n eventsMixin(Vue$3)\r\n lifecycleMixin(Vue$3)\r\n renderMixin(Vue$3)\r\n\r\n /* */\r\n\r\n function initUse(Vue) {\r\n Vue.use = function(plugin) {\r\n var installedPlugins = this._installedPlugins || (this._installedPlugins = [])\r\n if (installedPlugins.indexOf(plugin) > -1) {\r\n return this\r\n }\r\n\r\n // additional parameters\r\n var args = toArray(arguments, 1)\r\n args.unshift(this)\r\n if (typeof plugin.install === \"function\") {\r\n plugin.install.apply(plugin, args)\r\n } else if (typeof plugin === \"function\") {\r\n plugin.apply(null, args)\r\n }\r\n installedPlugins.push(plugin)\r\n return this\r\n }\r\n }\r\n\r\n /* */\r\n\r\n function initMixin$1(Vue) {\r\n Vue.mixin = function(mixin) {\r\n this.options = mergeOptions(this.options, mixin)\r\n return this\r\n }\r\n }\r\n\r\n /* */\r\n\r\n function initExtend(Vue) {\r\n /**\r\n * Each instance constructor, including Vue, has a unique\r\n * cid. This enables us to create wrapped \"child\r\n * constructors\" for prototypal inheritance and cache them.\r\n */\r\n Vue.cid = 0\r\n var cid = 1\r\n\r\n /**\r\n * Class inheritance\r\n */\r\n Vue.extend = function(extendOptions) {\r\n extendOptions = extendOptions || {}\r\n var Super = this\r\n var SuperId = Super.cid\r\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {})\r\n if (cachedCtors[SuperId]) {\r\n return cachedCtors[SuperId]\r\n }\r\n\r\n var name = extendOptions.name || Super.options.name\r\n var Sub = function VueComponent(options) {\r\n this._init(options)\r\n }\r\n Sub.prototype = Object.create(Super.prototype)\r\n Sub.prototype.constructor = Sub\r\n Sub.cid = cid++\r\n Sub.options = mergeOptions(Super.options, extendOptions)\r\n Sub[\"super\"] = Super\r\n\r\n // For props and computed properties, we define the proxy getters on\r\n // the Vue instances at extension time, on the extended prototype. This\r\n // avoids Object.defineProperty calls for each instance created.\r\n if (Sub.options.props) {\r\n initProps$1(Sub)\r\n }\r\n if (Sub.options.computed) {\r\n initComputed$1(Sub)\r\n }\r\n\r\n // allow further extension/mixin/plugin usage\r\n Sub.extend = Super.extend\r\n Sub.mixin = Super.mixin\r\n Sub.use = Super.use\r\n\r\n // create asset registers, so extended classes\r\n // can have their private assets too.\r\n ASSET_TYPES.forEach(function(type) {\r\n Sub[type] = Super[type]\r\n })\r\n // enable recursive self-lookup\r\n if (name) {\r\n Sub.options.components[name] = Sub\r\n }\r\n\r\n // keep a reference to the super options at extension time.\r\n // later at instantiation we can check if Super's options have\r\n // been updated.\r\n Sub.superOptions = Super.options\r\n Sub.extendOptions = extendOptions\r\n Sub.sealedOptions = extend({}, Sub.options)\r\n\r\n // cache constructor\r\n cachedCtors[SuperId] = Sub\r\n return Sub\r\n }\r\n }\r\n\r\n function initProps$1(Comp) {\r\n var props = Comp.options.props\r\n for (var key in props) {\r\n proxy(Comp.prototype, \"_props\", key)\r\n }\r\n }\r\n\r\n function initComputed$1(Comp) {\r\n var computed = Comp.options.computed\r\n for (var key in computed) {\r\n defineComputed(Comp.prototype, key, computed[key])\r\n }\r\n }\r\n\r\n /* */\r\n\r\n function initAssetRegisters(Vue) {\r\n /**\r\n * Create asset registration methods.\r\n */\r\n ASSET_TYPES.forEach(function(type) {\r\n Vue[type] = function(id, definition) {\r\n if (!definition) {\r\n return this.options[type + \"s\"][id]\r\n } else {\r\n /* istanbul ignore if */\r\n if (type === \"component\" && isPlainObject(definition)) {\r\n definition.name = definition.name || id\r\n definition = this.options._base.extend(definition)\r\n }\r\n if (type === \"directive\" && typeof definition === \"function\") {\r\n definition = {\r\n bind: definition,\r\n update: definition\r\n }\r\n }\r\n this.options[type + \"s\"][id] = definition\r\n return definition\r\n }\r\n }\r\n })\r\n }\r\n\r\n /* */\r\n\r\n var patternTypes = [String, RegExp, Array]\r\n\r\n function getComponentName(opts) {\r\n return opts && (opts.Ctor.options.name || opts.tag)\r\n }\r\n\r\n function matches(pattern, name) {\r\n if (Array.isArray(pattern)) {\r\n return pattern.indexOf(name) > -1\r\n } else if (typeof pattern === \"string\") {\r\n return pattern.split(\",\").indexOf(name) > -1\r\n } else if (isRegExp(pattern)) {\r\n return pattern.test(name)\r\n }\r\n /* istanbul ignore next */\r\n return false\r\n }\r\n\r\n function pruneCache(cache, current, filter) {\r\n for (var key in cache) {\r\n var cachedNode = cache[key]\r\n if (cachedNode) {\r\n var name = getComponentName(cachedNode.componentOptions)\r\n if (name && !filter(name)) {\r\n if (cachedNode !== current) {\r\n pruneCacheEntry(cachedNode)\r\n }\r\n cache[key] = null\r\n }\r\n }\r\n }\r\n }\r\n\r\n function pruneCacheEntry(vnode) {\r\n if (vnode) {\r\n vnode.componentInstance.$destroy()\r\n }\r\n }\r\n\r\n var KeepAlive = {\r\n name: \"keep-alive\",\r\n abstract: true,\r\n\r\n props: {\r\n include: patternTypes,\r\n exclude: patternTypes\r\n },\r\n\r\n created: function created() {\r\n this.cache = Object.create(null)\r\n },\r\n\r\n destroyed: function destroyed() {\r\n var this$1 = this\r\n\r\n for (var key in this$1.cache) {\r\n pruneCacheEntry(this$1.cache[key])\r\n }\r\n },\r\n\r\n watch: {\r\n include: function include(val) {\r\n pruneCache(this.cache, this._vnode, function(name) {\r\n return matches(val, name)\r\n })\r\n },\r\n exclude: function exclude(val) {\r\n pruneCache(this.cache, this._vnode, function(name) {\r\n return !matches(val, name)\r\n })\r\n }\r\n },\r\n\r\n render: function render() {\r\n var vnode = getFirstComponentChild(this.$slots.default)\r\n var componentOptions = vnode && vnode.componentOptions\r\n if (componentOptions) {\r\n // check pattern\r\n var name = getComponentName(componentOptions)\r\n if (\r\n name &&\r\n ((this.include && !matches(this.include, name)) ||\r\n (this.exclude && matches(this.exclude, name)))\r\n ) {\r\n return vnode\r\n }\r\n var key =\r\n vnode.key == null\r\n ? // same constructor may get registered as different local components\r\n // so cid alone is not enough (#3269)\r\n componentOptions.Ctor.cid +\r\n (componentOptions.tag ? \"::\" + componentOptions.tag : \"\")\r\n : vnode.key\r\n if (this.cache[key]) {\r\n vnode.componentInstance = this.cache[key].componentInstance\r\n } else {\r\n this.cache[key] = vnode\r\n }\r\n vnode.data.keepAlive = true\r\n }\r\n return vnode\r\n }\r\n }\r\n\r\n var builtInComponents = {\r\n KeepAlive: KeepAlive\r\n }\r\n\r\n /* */\r\n\r\n function initGlobalAPI(Vue) {\r\n // config\r\n var configDef = {}\r\n configDef.get = function() {\r\n return config\r\n }\r\n Object.defineProperty(Vue, \"config\", configDef)\r\n\r\n // exposed util methods.\r\n // NOTE: these are not considered part of the public API - avoid relying on\r\n // them unless you are aware of the risk.\r\n Vue.util = {\r\n warn: warn,\r\n extend: extend,\r\n mergeOptions: mergeOptions,\r\n defineReactive: defineReactive$$1\r\n }\r\n\r\n Vue.set = set\r\n Vue.delete = del\r\n Vue.nextTick = nextTick\r\n\r\n Vue.options = Object.create(null)\r\n ASSET_TYPES.forEach(function(type) {\r\n Vue.options[type + \"s\"] = Object.create(null)\r\n })\r\n\r\n // this is used to identify the \"base\" constructor to extend all plain-object\r\n // components with in Weex's multi-instance scenarios.\r\n Vue.options._base = Vue\r\n\r\n extend(Vue.options.components, builtInComponents)\r\n\r\n initUse(Vue)\r\n initMixin$1(Vue)\r\n initExtend(Vue)\r\n initAssetRegisters(Vue)\r\n }\r\n\r\n initGlobalAPI(Vue$3)\r\n\r\n Object.defineProperty(Vue$3.prototype, \"$isServer\", {\r\n get: isServerRendering\r\n })\r\n\r\n Object.defineProperty(Vue$3.prototype, \"$ssrContext\", {\r\n get: function get() {\r\n /* istanbul ignore next */\r\n return this.$vnode && this.$vnode.ssrContext\r\n }\r\n })\r\n\r\n Vue$3.version = \"2.4.1\"\r\n Vue$3.mpvueVersion = \"1.0.12\"\r\n\r\n /* globals renderer */\r\n\r\n var isReservedTag = makeMap(\r\n \"template,script,style,element,content,slot,link,meta,svg,view,\" +\r\n \"a,div,img,image,text,span,richtext,input,switch,textarea,spinner,select,\" +\r\n \"slider,slider-neighbor,indicator,trisition,trisition-group,canvas,\" +\r\n \"list,cell,header,loading,loading-indicator,refresh,scrollable,scroller,\" +\r\n \"video,web,embed,tabbar,tabheader,datepicker,timepicker,marquee,countdown\",\r\n true\r\n )\r\n\r\n // these are reserved for web because they are directly compiled away\r\n // during template compilation\r\n var isReservedAttr = makeMap(\"style,class\")\r\n\r\n // Elements that you can, intentionally, leave open (and which close themselves)\r\n // more flexable than web\r\n var canBeLeftOpenTag = makeMap(\r\n \"web,spinner,switch,video,textarea,canvas,\" + \"indicator,marquee,countdown\",\r\n true\r\n )\r\n\r\n var isUnaryTag = makeMap(\"embed,img,image,input,link,meta\", true)\r\n\r\n function mustUseProp() {\r\n /* console.log('mustUseProp') */\r\n }\r\n\r\n function getTagNamespace() {\r\n /* console.log('getTagNamespace') */\r\n }\r\n\r\n function isUnknownElement() {\r\n /* console.log('isUnknownElement') */\r\n }\r\n\r\n function getComKey(vm) {\r\n return vm && vm.$attrs ? vm.$attrs[\"mpcomid\"] : \"0\"\r\n }\r\n\r\n // 用于小程序的 event type 到 web 的 event\r\n var eventTypeMap = {\r\n tap: [\"tap\", \"click\"],\r\n touchstart: [\"touchstart\"],\r\n touchmove: [\"touchmove\"],\r\n touchcancel: [\"touchcancel\"],\r\n touchend: [\"touchend\"],\r\n longtap: [\"longtap\"],\r\n input: [\"input\"],\r\n blur: [\"change\", \"blur\"],\r\n submit: [\"submit\"],\r\n focus: [\"focus\"],\r\n scrolltoupper: [\"scrolltoupper\"],\r\n scrolltolower: [\"scrolltolower\"],\r\n scroll: [\"scroll\"]\r\n }\r\n\r\n /* */\r\n\r\n // import { namespaceMap } from 'mp/util/index'\r\n\r\n var obj = {}\r\n\r\n function createElement$1(tagName, vnode) {\r\n return obj\r\n }\r\n\r\n function createElementNS(namespace, tagName) {\r\n return obj\r\n }\r\n\r\n function createTextNode(text) {\r\n return obj\r\n }\r\n\r\n function createComment(text) {\r\n return obj\r\n }\r\n\r\n function insertBefore(parentNode, newNode, referenceNode) {}\r\n\r\n function removeChild(node, child) {}\r\n\r\n function appendChild(node, child) {}\r\n\r\n function parentNode(node) {\r\n return obj\r\n }\r\n\r\n function nextSibling(node) {\r\n return obj\r\n }\r\n\r\n function tagName(node) {\r\n return \"div\"\r\n }\r\n\r\n function setTextContent(node, text) {\r\n return obj\r\n }\r\n\r\n function setAttribute(node, key, val) {\r\n return obj\r\n }\r\n\r\n var nodeOps = Object.freeze({\r\n createElement: createElement$1,\r\n createElementNS: createElementNS,\r\n createTextNode: createTextNode,\r\n createComment: createComment,\r\n insertBefore: insertBefore,\r\n removeChild: removeChild,\r\n appendChild: appendChild,\r\n parentNode: parentNode,\r\n nextSibling: nextSibling,\r\n tagName: tagName,\r\n setTextContent: setTextContent,\r\n setAttribute: setAttribute\r\n })\r\n\r\n /* */\r\n\r\n var ref = {\r\n create: function create(_, vnode) {\r\n registerRef(vnode)\r\n },\r\n update: function update(oldVnode, vnode) {\r\n if (oldVnode.data.ref !== vnode.data.ref) {\r\n registerRef(oldVnode, true)\r\n registerRef(vnode)\r\n }\r\n },\r\n destroy: function destroy(vnode) {\r\n registerRef(vnode, true)\r\n }\r\n }\r\n\r\n function registerRef(vnode, isRemoval) {\r\n var key = vnode.data.ref\r\n if (!key) {\r\n return\r\n }\r\n\r\n var vm = vnode.context\r\n var ref = vnode.componentInstance || vnode.elm\r\n var refs = vm.$refs\r\n if (isRemoval) {\r\n if (Array.isArray(refs[key])) {\r\n remove(refs[key], ref)\r\n } else if (refs[key] === ref) {\r\n refs[key] = undefined\r\n }\r\n } else {\r\n if (vnode.data.refInFor) {\r\n if (!Array.isArray(refs[key])) {\r\n refs[key] = [ref]\r\n } else if (refs[key].indexOf(ref) < 0) {\r\n // $flow-disable-line\r\n refs[key].push(ref)\r\n }\r\n } else {\r\n refs[key] = ref\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Virtual DOM patching algorithm based on Snabbdom by\r\n * Simon Friis Vindum (@paldepind)\r\n * Licensed under the MIT License\r\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\r\n *\r\n * modified by Evan You (@yyx990803)\r\n *\r\n\r\n /*\r\n * Not type-checking this because this file is perf-critical and the cost\r\n * of making flow understand it is not worth it.\r\n */\r\n\r\n var emptyNode = new VNode(\"\", {}, [])\r\n\r\n var hooks = [\"create\", \"activate\", \"update\", \"remove\", \"destroy\"]\r\n\r\n function sameVnode(a, b) {\r\n return (\r\n a.key === b.key &&\r\n ((a.tag === b.tag &&\r\n a.isComment === b.isComment &&\r\n isDef(a.data) === isDef(b.data) &&\r\n sameInputType(a, b)) ||\r\n (isTrue(a.isAsyncPlaceholder) &&\r\n a.asyncFactory === b.asyncFactory &&\r\n isUndef(b.asyncFactory.error)))\r\n )\r\n }\r\n\r\n // Some browsers do not support dynamically changing type for <input>\r\n // so they need to be treated as different nodes\r\n function sameInputType(a, b) {\r\n if (a.tag !== \"input\") {\r\n return true\r\n }\r\n var i\r\n var typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type\r\n var typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type\r\n return typeA === typeB\r\n }\r\n\r\n function createKeyToOldIdx(children, beginIdx, endIdx) {\r\n var i, key\r\n var map = {}\r\n for (i = beginIdx; i <= endIdx; ++i) {\r\n key = children[i].key\r\n if (isDef(key)) {\r\n map[key] = i\r\n }\r\n }\r\n return map\r\n }\r\n\r\n function createPatchFunction(backend) {\r\n var i, j\r\n var cbs = {}\r\n\r\n var modules = backend.modules\r\n var nodeOps = backend.nodeOps\r\n\r\n for (i = 0; i < hooks.length; ++i) {\r\n cbs[hooks[i]] = []\r\n for (j = 0; j < modules.length; ++j) {\r\n if (isDef(modules[j][hooks[i]])) {\r\n cbs[hooks[i]].push(modules[j][hooks[i]])\r\n }\r\n }\r\n }\r\n\r\n function emptyNodeAt(elm) {\r\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\r\n }\r\n\r\n function createRmCb(childElm, listeners) {\r\n function remove$$1() {\r\n if (--remove$$1.listeners === 0) {\r\n removeNode(childElm)\r\n }\r\n }\r\n remove$$1.listeners = listeners\r\n return remove$$1\r\n }\r\n\r\n function removeNode(el) {\r\n var parent = nodeOps.parentNode(el)\r\n // element may have already been removed due to v-html / v-text\r\n if (isDef(parent)) {\r\n nodeOps.removeChild(parent, el)\r\n }\r\n }\r\n\r\n var inPre = 0\r\n\r\n function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested) {\r\n vnode.isRootInsert = !nested // for transition enter check\r\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\r\n return\r\n }\r\n\r\n var data = vnode.data\r\n var children = vnode.children\r\n var tag = vnode.tag\r\n if (isDef(tag)) {\r\n vnode.elm = vnode.ns\r\n ? nodeOps.createElementNS(vnode.ns, tag)\r\n : nodeOps.createElement(tag, vnode)\r\n setScope(vnode)\r\n\r\n /* istanbul ignore if */\r\n {\r\n createChildren(vnode, children, insertedVnodeQueue)\r\n if (isDef(data)) {\r\n invokeCreateHooks(vnode, insertedVnodeQueue)\r\n }\r\n insert(parentElm, vnode.elm, refElm)\r\n }\r\n\r\n if (\"production\" !== \"production\" && data && data.pre) {\r\n inPre--\r\n }\r\n } else if (isTrue(vnode.isComment)) {\r\n vnode.elm = nodeOps.createComment(vnode.text)\r\n insert(parentElm, vnode.elm, refElm)\r\n } else {\r\n vnode.elm = nodeOps.createTextNode(vnode.text)\r\n insert(parentElm, vnode.elm, refElm)\r\n }\r\n }\r\n\r\n function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n var i = vnode.data\r\n if (isDef(i)) {\r\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive\r\n if (isDef((i = i.hook)) && isDef((i = i.init))) {\r\n i(vnode, false /* hydrating */, parentElm, refElm)\r\n }\r\n // after calling the init hook, if the vnode is a child component\r\n // it should've created a child instance and mounted it. the child\r\n // component also has set the placeholder vnode's elm.\r\n // in that case we can just return the element and be done.\r\n if (isDef(vnode.componentInstance)) {\r\n initComponent(vnode, insertedVnodeQueue)\r\n if (isTrue(isReactivated)) {\r\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm)\r\n }\r\n return true\r\n }\r\n }\r\n }\r\n\r\n function initComponent(vnode, insertedVnodeQueue) {\r\n if (isDef(vnode.data.pendingInsert)) {\r\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert)\r\n vnode.data.pendingInsert = null\r\n }\r\n vnode.elm = vnode.componentInstance.$el\r\n if (isPatchable(vnode)) {\r\n invokeCreateHooks(vnode, insertedVnodeQueue)\r\n setScope(vnode)\r\n } else {\r\n // empty component root.\r\n // skip all element-related modules except for ref (#3455)\r\n registerRef(vnode)\r\n // make sure to invoke the insert hook\r\n insertedVnodeQueue.push(vnode)\r\n }\r\n }\r\n\r\n function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n var i\r\n // hack for #4339: a reactivated component with inner transition\r\n // does not trigger because the inner node's created hooks are not called\r\n // again. It's not ideal to involve module-specific logic in here but\r\n // there doesn't seem to be a better way to do it.\r\n var innerNode = vnode\r\n while (innerNode.componentInstance) {\r\n innerNode = innerNode.componentInstance._vnode\r\n if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {\r\n for (i = 0; i < cbs.activate.length; ++i) {\r\n cbs.activate[i](emptyNode, innerNode)\r\n }\r\n insertedVnodeQueue.push(innerNode)\r\n break\r\n }\r\n }\r\n // unlike a newly created component,\r\n // a reactivated keep-alive component doesn't insert itself\r\n insert(parentElm, vnode.elm, refElm)\r\n }\r\n\r\n function insert(parent, elm, ref$$1) {\r\n if (isDef(parent)) {\r\n if (isDef(ref$$1)) {\r\n if (ref$$1.parentNode === parent) {\r\n nodeOps.insertBefore(parent, elm, ref$$1)\r\n }\r\n } else {\r\n nodeOps.appendChild(parent, elm)\r\n }\r\n }\r\n }\r\n\r\n function createChildren(vnode, children, insertedVnodeQueue) {\r\n if (Array.isArray(children)) {\r\n for (var i = 0; i < children.length; ++i) {\r\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true)\r\n }\r\n } else if (isPrimitive(vnode.text)) {\r\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(vnode.text))\r\n }\r\n }\r\n\r\n function isPatchable(vnode) {\r\n while (vnode.componentInstance) {\r\n vnode = vnode.componentInstance._vnode\r\n }\r\n return isDef(vnode.tag)\r\n }\r\n\r\n function invokeCreateHooks(vnode, insertedVnodeQueue) {\r\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\r\n cbs.create[i$1](emptyNode, vnode)\r\n }\r\n i = vnode.data.hook // Reuse variable\r\n if (isDef(i)) {\r\n if (isDef(i.create)) {\r\n i.create(emptyNode, vnode)\r\n }\r\n if (isDef(i.insert)) {\r\n insertedVnodeQueue.push(vnode)\r\n }\r\n }\r\n }\r\n\r\n // set scope id attribute for scoped CSS.\r\n // this is implemented as a special case to avoid the overhead\r\n // of going through the normal attribute patching process.\r\n function setScope(vnode) {\r\n var i\r\n var ancestor = vnode\r\n while (ancestor) {\r\n if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {\r\n nodeOps.setAttribute(vnode.elm, i, \"\")\r\n }\r\n ancestor = ancestor.parent\r\n }\r\n // for slot content they should also get the scopeId from the host instance.\r\n if (\r\n isDef((i = activeInstance)) &&\r\n i !== vnode.context &&\r\n isDef((i = i.$options._scopeId))\r\n ) {\r\n nodeOps.setAttribute(vnode.elm, i, \"\")\r\n }\r\n }\r\n\r\n function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\r\n for (; startIdx <= endIdx; ++startIdx) {\r\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm)\r\n }\r\n }\r\n\r\n function invokeDestroyHook(vnode) {\r\n var i, j\r\n var data = vnode.data\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.destroy))) {\r\n i(vnode)\r\n }\r\n for (i = 0; i < cbs.destroy.length; ++i) {\r\n cbs.destroy[i](vnode)\r\n }\r\n }\r\n if (isDef((i = vnode.children))) {\r\n for (j = 0; j < vnode.children.length; ++j) {\r\n invokeDestroyHook(vnode.children[j])\r\n }\r\n }\r\n }\r\n\r\n function removeVnodes(parentElm, vnodes, startIdx, endIdx) {\r\n for (; startIdx <= endIdx; ++startIdx) {\r\n var ch = vnodes[startIdx]\r\n if (isDef(ch)) {\r\n if (isDef(ch.tag)) {\r\n removeAndInvokeRemoveHook(ch)\r\n invokeDestroyHook(ch)\r\n } else {\r\n // Text node\r\n removeNode(ch.elm)\r\n }\r\n }\r\n }\r\n }\r\n\r\n function removeAndInvokeRemoveHook(vnode, rm) {\r\n if (isDef(rm) || isDef(vnode.data)) {\r\n var i\r\n var listeners = cbs.remove.length + 1\r\n if (isDef(rm)) {\r\n // we have a recursively passed down rm callback\r\n // increase the listeners count\r\n rm.listeners += listeners\r\n } else {\r\n // directly removing\r\n rm = createRmCb(vnode.elm, listeners)\r\n }\r\n // recursively invoke hooks on child component root node\r\n if (\r\n isDef((i = vnode.componentInstance)) &&\r\n isDef((i = i._vnode)) &&\r\n isDef(i.data)\r\n ) {\r\n removeAndInvokeRemoveHook(i, rm)\r\n }\r\n for (i = 0; i < cbs.remove.length; ++i) {\r\n cbs.remove[i](vnode, rm)\r\n }\r\n if (isDef((i = vnode.data.hook)) && isDef((i = i.remove))) {\r\n i(vnode, rm)\r\n } else {\r\n rm()\r\n }\r\n } else {\r\n removeNode(vnode.elm)\r\n }\r\n }\r\n\r\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\r\n var oldStartIdx = 0\r\n var newStartIdx = 0\r\n var oldEndIdx = oldCh.length - 1\r\n var oldStartVnode = oldCh[0]\r\n var oldEndVnode = oldCh[oldEndIdx]\r\n var newEndIdx = newCh.length - 1\r\n var newStartVnode = newCh[0]\r\n var newEndVnode = newCh[newEndIdx]\r\n var oldKeyToIdx, idxInOld, elmToMove, refElm\r\n\r\n // removeOnly is a special flag used only by <transition-group>\r\n // to ensure removed elements stay in correct relative positions\r\n // during leaving transitions\r\n var canMove = !removeOnly\r\n\r\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\r\n if (isUndef(oldStartVnode)) {\r\n oldStartVnode = oldCh[++oldStartIdx] // Vnode has been moved left\r\n } else if (isUndef(oldEndVnode)) {\r\n oldEndVnode = oldCh[--oldEndIdx]\r\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\r\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue)\r\n oldStartVnode = oldCh[++oldStartIdx]\r\n newStartVnode = newCh[++newStartIdx]\r\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\r\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue)\r\n oldEndVnode = oldCh[--oldEndIdx]\r\n newEndVnode = newCh[--newEndIdx]\r\n } else if (sameVnode(oldStartVnode, newEndVnode)) {\r\n // Vnode moved right\r\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue)\r\n canMove &&\r\n nodeOps.insertBefore(\r\n parentElm,\r\n oldStartVnode.elm,\r\n nodeOps.nextSibling(oldEndVnode.elm)\r\n )\r\n oldStartVnode = oldCh[++oldStartIdx]\r\n newEndVnode = newCh[--newEndIdx]\r\n } else if (sameVnode(oldEndVnode, newStartVnode)) {\r\n // Vnode moved left\r\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue)\r\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm)\r\n oldEndVnode = oldCh[--oldEndIdx]\r\n newStartVnode = newCh[++newStartIdx]\r\n } else {\r\n if (isUndef(oldKeyToIdx)) {\r\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx)\r\n }\r\n idxInOld = isDef(newStartVnode.key) ? oldKeyToIdx[newStartVnode.key] : null\r\n if (isUndef(idxInOld)) {\r\n // New element\r\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm)\r\n newStartVnode = newCh[++newStartIdx]\r\n } else {\r\n elmToMove = oldCh[idxInOld]\r\n /* istanbul ignore if */\r\n if (\"production\" !== \"production\" && !elmToMove) {\r\n warn(\r\n \"It seems there are duplicate keys that is causing an update error. \" +\r\n \"Make sure each v-for item has a unique key.\"\r\n )\r\n }\r\n if (sameVnode(elmToMove, newStartVnode)) {\r\n patchVnode(elmToMove, newStartVnode, insertedVnodeQueue)\r\n oldCh[idxInOld] = undefined\r\n canMove &&\r\n nodeOps.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm)\r\n newStartVnode = newCh[++newStartIdx]\r\n } else {\r\n // same key but different element. treat as new element\r\n createElm(\r\n newStartVnode,\r\n insertedVnodeQueue,\r\n parentElm,\r\n oldStartVnode.elm\r\n )\r\n newStartVnode = newCh[++newStartIdx]\r\n }\r\n }\r\n }\r\n }\r\n if (oldStartIdx > oldEndIdx) {\r\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm\r\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue)\r\n } else if (newStartIdx > newEndIdx) {\r\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx)\r\n }\r\n }\r\n\r\n function patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly) {\r\n if (oldVnode === vnode) {\r\n return\r\n }\r\n\r\n var elm = (vnode.elm = oldVnode.elm)\r\n\r\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\r\n if (isDef(vnode.asyncFactory.resolved)) {\r\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue)\r\n } else {\r\n vnode.isAsyncPlaceholder = true\r\n }\r\n return\r\n }\r\n\r\n // reuse element for static trees.\r\n // note we only do this if the vnode is cloned -\r\n // if the new node is not cloned it means the render functions have been\r\n // reset by the hot-reload-api and we need to do a proper re-render.\r\n if (\r\n isTrue(vnode.isStatic) &&\r\n isTrue(oldVnode.isStatic) &&\r\n vnode.key === oldVnode.key &&\r\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\r\n ) {\r\n vnode.componentInstance = oldVnode.componentInstance\r\n return\r\n }\r\n\r\n var i\r\n var data = vnode.data\r\n if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {\r\n i(oldVnode, vnode)\r\n }\r\n\r\n var oldCh = oldVnode.children\r\n var ch = vnode.children\r\n if (isDef(data) && isPatchable(vnode)) {\r\n for (i = 0; i < cbs.update.length; ++i) {\r\n cbs.update[i](oldVnode, vnode)\r\n }\r\n if (isDef((i = data.hook)) && isDef((i = i.update))) {\r\n i(oldVnode, vnode)\r\n }\r\n }\r\n if (isUndef(vnode.text)) {\r\n if (isDef(oldCh) && isDef(ch)) {\r\n if (oldCh !== ch) {\r\n updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly)\r\n }\r\n } else if (isDef(ch)) {\r\n if (isDef(oldVnode.text)) {\r\n nodeOps.setTextContent(elm, \"\")\r\n }\r\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue)\r\n } else if (isDef(oldCh)) {\r\n removeVnodes(elm, oldCh, 0, oldCh.length - 1)\r\n } else if (isDef(oldVnode.text)) {\r\n nodeOps.setTextContent(elm, \"\")\r\n }\r\n } else if (oldVnode.text !== vnode.text) {\r\n nodeOps.setTextContent(elm, vnode.text)\r\n }\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.postpatch))) {\r\n i(oldVnode, vnode)\r\n }\r\n }\r\n }\r\n\r\n function invokeInsertHook(vnode, queue, initial) {\r\n // delay insert hooks for component root nodes, invoke them after the\r\n // element is really inserted\r\n if (isTrue(initial) && isDef(vnode.parent)) {\r\n vnode.parent.data.pendingInsert = queue\r\n } else {\r\n for (var i = 0; i < queue.length; ++i) {\r\n queue[i].data.hook.insert(queue[i])\r\n }\r\n }\r\n }\r\n\r\n var bailed = false\r\n // list of modules that can skip create hook during hydration because they\r\n // are already rendered on the client or has no need for initialization\r\n var isRenderedModule = makeMap(\"attrs,style,class,staticClass,staticStyle,key\")\r\n\r\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\r\n function hydrate(elm, vnode, insertedVnodeQueue) {\r\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\r\n vnode.elm = elm\r\n vnode.isAsyncPlaceholder = true\r\n return true\r\n }\r\n vnode.elm = elm\r\n var tag = vnode.tag\r\n var data = vnode.data\r\n var children = vnode.children\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.init))) {\r\n i(vnode, true /* hydrating */)\r\n }\r\n if (isDef((i = vnode.componentInstance))) {\r\n // child component. it should have hydrated its own tree.\r\n initComponent(vnode, insertedVnodeQueue)\r\n return true\r\n }\r\n }\r\n if (isDef(tag)) {\r\n if (isDef(children)) {\r\n // empty element, allow client to pick up and populate children\r\n if (!elm.hasChildNodes()) {\r\n createChildren(vnode, children, insertedVnodeQueue)\r\n } else {\r\n var childrenMatch = true\r\n var childNode = elm.firstChild\r\n for (var i$1 = 0; i$1 < children.length; i$1++) {\r\n if (\r\n !childNode ||\r\n !hydrate(childNode, children[i$1], insertedVnodeQueue)\r\n ) {\r\n childrenMatch = false\r\n break\r\n }\r\n childNode = childNode.nextSibling\r\n }\r\n // if childNode is not null, it means the actual childNodes list is\r\n // longer than the virtual children list.\r\n if (!childrenMatch || childNode) {\r\n if (\r\n \"production\" !== \"production\" &&\r\n typeof console !== \"undefined\" &&\r\n !bailed\r\n ) {\r\n bailed = true\r\n console.warn(\"Parent: \", elm)\r\n console.warn(\r\n \"Mismatching childNodes vs. VNodes: \",\r\n elm.childNodes,\r\n children\r\n )\r\n }\r\n return false\r\n }\r\n }\r\n }\r\n if (isDef(data)) {\r\n for (var key in data) {\r\n if (!isRenderedModule(key)) {\r\n invokeCreateHooks(vnode, insertedVnodeQueue)\r\n break\r\n }\r\n }\r\n }\r\n } else if (elm.data !== vnode.text) {\r\n elm.data = vnode.text\r\n }\r\n return true\r\n }\r\n\r\n return function patch(oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\r\n if (isUndef(vnode)) {\r\n if (isDef(oldVnode)) {\r\n invokeDestroyHook(oldVnode)\r\n }\r\n return\r\n }\r\n\r\n var isInitialPatch = false\r\n var insertedVnodeQueue = []\r\n\r\n if (isUndef(oldVnode)) {\r\n // empty mount (likely as component), create new root element\r\n isInitialPatch = true\r\n createElm(vnode, insertedVnodeQueue, parentElm, refElm)\r\n } else {\r\n var isRealElement = isDef(oldVnode.nodeType)\r\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\r\n // patch existing root node\r\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly)\r\n } else {\r\n if (isRealElement) {\r\n // mounting to a real element\r\n // check if this is server-rendered content and if we can perform\r\n // a successful hydration.\r\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\r\n oldVnode.removeAttribute(SSR_ATTR)\r\n hydrating = true\r\n }\r\n if (isTrue(hydrating)) {\r\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\r\n invokeInsertHook(vnode, insertedVnodeQueue, true)\r\n return oldVnode\r\n } else {\r\n }\r\n }\r\n // either not server-rendered, or hydration failed.\r\n // create an empty node and replace it\r\n oldVnode = emptyNodeAt(oldVnode)\r\n }\r\n // replacing existing element\r\n var oldElm = oldVnode.elm\r\n var parentElm$1 = nodeOps.parentNode(oldElm)\r\n createElm(\r\n vnode,\r\n insertedVnodeQueue,\r\n // extremely rare edge case: do not insert if old element is in a\r\n // leaving transition. Only happens when combining transition +\r\n // keep-alive + HOCs. (#4590)\r\n oldElm._leaveCb ? null : parentElm$1,\r\n nodeOps.nextSibling(oldElm)\r\n )\r\n\r\n if (isDef(vnode.parent)) {\r\n // component root element replaced.\r\n // update parent placeholder node element, recursively\r\n var ancestor = vnode.parent\r\n while (ancestor) {\r\n ancestor.elm = vnode.elm\r\n ancestor = ancestor.parent\r\n }\r\n if (isPatchable(vnode)) {\r\n for (var i = 0; i < cbs.create.length; ++i) {\r\n cbs.create[i](emptyNode, vnode.parent)\r\n }\r\n }\r\n }\r\n\r\n if (isDef(parentElm$1)) {\r\n removeVnodes(parentElm$1, [oldVnode], 0, 0)\r\n } else if (isDef(oldVnode.tag)) {\r\n invokeDestroyHook(oldVnode)\r\n }\r\n }\r\n }\r\n\r\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch)\r\n return vnode.elm\r\n }\r\n }\r\n\r\n /* */\r\n\r\n // import baseModules from 'core/vdom/modules/index'\r\n // const platformModules = []\r\n // import platformModules from 'web/runtime/modules/index'\r\n\r\n // the directive module should be applied last, after all\r\n // built-in modules have been applied.\r\n // const modules = platformModules.concat(baseModules)\r\n var modules = [ref]\r\n\r\n var corePatch = createPatchFunction({\r\n nodeOps: nodeOps,\r\n modules: modules\r\n })\r\n\r\n function patch() {\r\n corePatch.apply(this, arguments)\r\n this.$updateDataToMP()\r\n }\r\n\r\n function callHook$1(vm, hook, params) {\r\n var handlers = vm.$options[hook]\r\n if (hook === \"onError\" && handlers) {\r\n handlers = [handlers]\r\n }\r\n\r\n var ret\r\n if (handlers) {\r\n for (var i = 0, j = handlers.length; i < j; i++) {\r\n try {\r\n ret = handlers[i].call(vm, params)\r\n } catch (e) {\r\n handleError(e, vm, hook + \" hook\")\r\n }\r\n }\r\n }\r\n if (vm._hasHookEvent) {\r\n vm.$emit(\"hook:\" + hook)\r\n }\r\n\r\n // for child\r\n if (vm.$children.length) {\r\n vm.$children.forEach(function(v) {\r\n return callHook$1(v, hook, params)\r\n })\r\n }\r\n\r\n return ret\r\n }\r\n\r\n // mpType 小程序实例的类型,可能的值是 'app', 'page'\r\n // rootVueVM 是 vue 的根组件实例,子组件中访问 this.$root 可得\r\n function getGlobalData(app, rootVueVM) {\r\n var mp = rootVueVM.$mp\r\n if (app && app.globalData) {\r\n mp.appOptions = app.globalData.appOptions\r\n }\r\n }\r\n\r\n // 格式化 properties 属性,并给每个属性加上 observer 方法\r\n\r\n // properties 的 一些类型 https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html\r\n // properties: {\r\n // paramA: Number,\r\n // myProperty: { // 属性名\r\n // type: String, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)\r\n // value: '', // 属性初始值(可选),如果未指定则会根据类型选择一个\r\n // observer: function(newVal, oldVal, changedPath) {\r\n // // 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串, 如:'_propertyChange'\r\n // // 通常 newVal 就是新设置的数据, oldVal 是旧数据\r\n // }\r\n // },\r\n // }\r\n\r\n // props 的一些类型 https://cn.vuejs.org/v2/guide/components-props.html#ad\r\n // props: {\r\n // // 基础的类型检查 (`null` 匹配任何类型)\r\n // propA: Number,\r\n // // 多个可能的类型\r\n // propB: [String, Number],\r\n // // 必填的字符串\r\n // propC: {\r\n // type: String,\r\n // required: true\r\n // },\r\n // // 带有默认值的数字\r\n // propD: {\r\n // type: Number,\r\n // default: 100\r\n // },\r\n // // 带有默认值的对象\r\n // propE: {\r\n // type: Object,\r\n // // 对象或数组且一定会从一个工厂函数返回默认值\r\n // default: function () {\r\n // return { message: 'hello' }\r\n // }\r\n // },\r\n // // 自定义验证函数\r\n // propF: {\r\n // validator: function (value) {\r\n // // 这个值必须匹配下列字符串中的一个\r\n // return ['success', 'warning', 'danger'].indexOf(value) !== -1\r\n // }\r\n // }\r\n // }\r\n\r\n // core/util/options\r\n function normalizeProps$1(props, res, vm) {\r\n if (!props) {\r\n return\r\n }\r\n var i, val, name\r\n if (Array.isArray(props)) {\r\n i = props.length\r\n while (i--) {\r\n val = props[i]\r\n if (typeof val === \"string\") {\r\n name = camelize(val)\r\n res[name] = {\r\n type: null\r\n }\r\n } else {\r\n }\r\n }\r\n } else if (isPlainObject(props)) {\r\n for (var key in props) {\r\n val = props[key]\r\n name = camelize(key)\r\n res[name] = isPlainObject(val)\r\n ? val\r\n : {\r\n type: val\r\n }\r\n }\r\n }\r\n\r\n // fix vueProps to properties\r\n for (var key$1 in res) {\r\n if (res.hasOwnProperty(key$1)) {\r\n var item = res[key$1]\r\n if (item.default) {\r\n item.value = item.default\r\n }\r\n var oldObserver = item.observer\r\n item.observer = function(newVal, oldVal) {\r\n vm[name] = newVal\r\n // 先修改值再触发原始的 observer,跟 watch 行为保持一致\r\n if (typeof oldObserver === \"function\") {\r\n oldObserver.call(vm, newVal, oldVal)\r\n }\r\n }\r\n }\r\n }\r\n\r\n return res\r\n }\r\n\r\n function normalizeProperties(vm) {\r\n var properties = vm.$options.properties\r\n var vueProps = vm.$options.props\r\n var res = {}\r\n\r\n normalizeProps$1(properties, res, vm)\r\n normalizeProps$1(vueProps, res, vm)\r\n\r\n return res\r\n }\r\n\r\n /**\r\n * 把 properties 中的属性 proxy 到 vm 上\r\n */\r\n function initMpProps(vm) {\r\n var mpProps = (vm._mpProps = {})\r\n var keys = Object.keys(vm.$options.properties || {})\r\n keys.forEach(function(key) {\r\n if (!(key in vm)) {\r\n proxy(vm, \"_mpProps\", key)\r\n mpProps[key] = undefined // for observe\r\n }\r\n })\r\n observe(mpProps, true)\r\n }\r\n\r\n function initMP(mpType, next) {\r\n var rootVueVM = this.$root\r\n if (!rootVueVM.$mp) {\r\n rootVueVM.$mp = {}\r\n }\r\n\r\n var mp = rootVueVM.$mp\r\n\r\n // Please do not register multiple Pages\r\n // if (mp.registered) {\r\n if (mp.status) {\r\n // 处理子组件的小程序生命周期\r\n if (mpType === \"app\") {\r\n callHook$1(this, \"onLaunch\", mp.appOptions)\r\n } else {\n this.__wxWebviewId__ = rootVueVM.__wxWebviewId__\n this.__wxExparserNodeId__ = rootVueVM.__wxExparserNodeId__\r\n callHook$1(this, \"onLoad\", mp.query)\r\n // callHook$1(this, \"onReady\") // 避免 onReady触发两次\r\n }\r\n return next()\r\n }\r\n // mp.registered = true\r\n\r\n mp.mpType = mpType\r\n mp.status = \"register\"\r\n\r\n if (mpType === \"app\") {\r\n global.App({\r\n // 页面的初始数据\r\n globalData: {\r\n appOptions: {}\r\n },\r\n\r\n handleProxy: function handleProxy(e) {\r\n return rootVueVM.$handleProxyWithVue(e)\r\n },\r\n\r\n // Do something initial when launch.\r\n onLaunch: function onLaunch(options) {\r\n if (options === void 0) options = {}\r\n\r\n mp.app = this\r\n mp.status = \"launch\"\r\n this.globalData.appOptions = mp.appOptions = options\r\n callHook$1(rootVueVM, \"onLaunch\", options)\r\n next()\r\n },\r\n\r\n // Do something when app show.\r\n onShow: function onShow(options) {\r\n if (options === void 0) options = {}\r\n\r\n mp.status = \"show\"\r\n this.globalData.appOptions = mp.appOptions = options\r\n callHook$1(rootVueVM, \"onShow\", options)\r\n },\r\n\r\n // Do something when app hide.\r\n onHide: function onHide() {\r\n mp.status = \"hide\"\r\n callHook$1(rootVueVM, \"onHide\")\r\n },\r\n\r\n onError: function onError(err) {\r\n callHook$1(rootVueVM, \"onError\", err)\r\n },\r\n //fixed by xxxxxx\r\n onUniNViewMessage: function onUniNViewMessage(e) {\r\n callHook$1(rootVueVM, \"onUniNViewMessage\", e)\r\n }\r\n })\r\n } else if (mpType === \"component\") {\r\n initMpProps(rootVueVM)\r\n\r\n global.Component({\r\n // 小程序原生的组件属性\r\n properties: normalizeProperties(rootVueVM),\r\n // 页面的初始数据\r\n data: {\r\n $root: {}\r\n },\r\n methods: {\r\n handleProxy: function handleProxy(e) {\r\n return rootVueVM.$handleProxyWithVue(e)\r\n }\r\n },\r\n // mp lifecycle for vue\r\n // 组件生命周期函数,在组件实例进入页面节点树时执行,注意此时不能调用 setData\r\n created: function created() {\r\n mp.status = \"created\"\r\n mp.page = this\r\n },\r\n // 组件生命周期函数,在组件实例进入页面节点树时执行\r\n attached: function attached() {\r\n mp.status = \"attached\"\r\n callHook$1(rootVueVM, \"attached\")\r\n },\r\n // 组件生命周期函数,在组件布局完成后执行,此时可以获取节点信息(使用 SelectorQuery )\r\n ready: function ready() {\r\n mp.status = \"ready\"\r\n\r\n callHook$1(rootVueVM, \"ready\")\r\n next()\r\n\r\n // 只有页面需要 setData\r\n rootVueVM.$nextTick(function() {\r\n rootVueVM._initDataToMP()\r\n })\r\n },\r\n // 组件生命周期函数,在组件实例被移动到节点树另一个位置时执行\r\n moved: function moved() {\r\n callHook$1(rootVueVM, \"moved\")\r\n },\r\n // 组件生命周期函数,在组件实例被从页面节点树移除时执行\r\n detached: function detached() {\r\n mp.status = \"detached\"\r\n callHook$1(rootVueVM, \"detached\")\r\n }\r\n })\r\n } else {\r\n var app = global.getApp()\r\n \n \r\n global.Page({\r\n // 页面的初始数据\r\n data: {\r\n $root: {}\r\n },\r\n\r\n handleProxy: function handleProxy(e) {\r\n return rootVueVM.$handleProxyWithVue(e)\r\n },\r\n\r\n // mp lifecycle for vue\r\n // 生命周期函数--监听页面加载\r\n onLoad: function onLoad(query) {\r\n rootVueVM.__wxWebviewId__ = this.__wxWebviewId__//fixed by xxxxxx(createIntersectionObserver)\r\n rootVueVM.__wxExparserNodeId__ = this.__wxExparserNodeId__\n mp.page = this\r\n mp.query = query\r\n mp.status = \"load\"\r\n getGlobalData(app, rootVueVM)\n //仅load时重置数据\n if (rootVueVM.$options && typeof rootVueVM.$options.data === \"function\") {\n \t\tObject.assign(rootVueVM.$data, rootVueVM.$options.data())\n }\r\n callHook$1(rootVueVM, \"onLoad\", query)\r\n },\r\n\r\n // 生命周期函数--监听页面显示\r\n onShow: function onShow() {\n rootVueVM.__wxWebviewId__ = this.__wxWebviewId__//fixed by xxxxxx(createIntersectionObserver)\r\n rootVueVM.__wxExparserNodeId__ = this.__wxExparserNodeId__\n mp.page = this\r\n mp.status = \"show\"\n \r\n callHook$1(rootVueVM, \"onShow\")\n \n // // 只有页面需要 setData\n rootVueVM.$nextTick(function () {\n \trootVueVM._initDataToMP();\n });\r\n },\r\n\r\n // 生命周期函数--监听页面初次渲染完成\r\n onReady: function onReady() {\r\n mp.status = \"ready\"\r\n\r\n callHook$1(rootVueVM, \"onReady\")\r\n next()\r\n },\r\n\r\n // 生命周期函数--监听页面隐藏\r\n onHide: function onHide() {\r\n mp.status = \"hide\"\r\n callHook$1(rootVueVM, \"onHide\")\r\n },\r\n\r\n // 生命周期函数--监听页面卸载\r\n onUnload: function onUnload() {\r\n mp.status = \"unload\"\r\n callHook$1(rootVueVM, \"onUnload\")\r\n mp.page = null\r\n },\r\n\r\n // 页面相关事件处理函数--监听用户下拉动作\r\n onPullDownRefresh: function onPullDownRefresh() {\r\n callHook$1(rootVueVM, \"onPullDownRefresh\")\r\n },\r\n\r\n // 页面上拉触底事件的处理函数\r\n onReachBottom: function onReachBottom() {\r\n callHook$1(rootVueVM, \"onReachBottom\")\r\n },\r\n\r\n // 用户点击右上角分享\r\n onShareAppMessage: rootVueVM.$options.onShareAppMessage\r\n ? function(options) {\r\n return callHook$1(rootVueVM, \"onShareAppMessage\", options)\r\n }\r\n : null,\r\n\r\n // Do something when page scroll\r\n onPageScroll: function onPageScroll(options) {\r\n callHook$1(rootVueVM, \"onPageScroll\", options)\r\n },\r\n\r\n // 当前是 tab 页时,点击 tab 时触发\r\n onTabItemTap: function onTabItemTap(options) {\r\n callHook$1(rootVueVM, \"onTabItemTap\", options)\r\n }\r\n })\r\n }\r\n }\r\n\r\n // 节流方法,性能优化\r\n // 全局的命名约定,为了节省编译的包大小一律采取形象的缩写,说明如下。\r\n // $c === $child\r\n // $k === $comKey\r\n\r\n // 新型的被拍平的数据结构\r\n // {\r\n // $root: {\r\n // '1-1'{\r\n // // ... data\r\n // },\r\n // '1.2-1': {\r\n // // ... data1\r\n // },\r\n // '1.2-2': {\r\n // // ... data2\r\n // }\r\n // }\r\n // }\r\n\r\n function getVmData(vm) {\r\n // 确保当前 vm 所有数据被同步\r\n var dataKeys = [].concat(\r\n Object.keys(vm._data || {}),\r\n Object.keys(vm._props || {}),\r\n Object.keys(vm._mpProps || {}),\r\n Object.keys(vm._computedWatchers || {})\r\n )\r\n return dataKeys.reduce(function(res, key) {\r\n res[key] = vm[key]\r\n return res\r\n }, {})\r\n }\r\n\r\n function getParentComKey(vm, res) {\r\n if (res === void 0) res = []\r\n\r\n var ref = vm || {}\r\n var $parent = ref.$parent\r\n if (!$parent) {\r\n return res\r\n }\r\n res.unshift(getComKey($parent))\r\n if ($parent.$parent) {\r\n return getParentComKey($parent, res)\r\n }\r\n return res\r\n }\r\n\r\n function formatVmData(vm) {\r\n var $p = getParentComKey(vm).join(\",\")\r\n var $k = $p + ($p ? \",\" : \"\") + getComKey(vm)\r\n\r\n // getVmData 这儿获取当前组件内的所有数据,包含 props、computed 的数据\r\n // 改动 vue.runtime 所获的的核心能力\r\n var data = Object.assign(getVmData(vm), {\r\n $k: $k,\r\n $kk: $k + \",\",\r\n $p: $p\r\n })\r\n var key = \"$root.\" + $k\r\n var res = {}\r\n res[key] = data\r\n return res\r\n }\r\n\r\n function collectVmData(vm, res) {\r\n if (res === void 0) res = {}\r\n\r\n var vms = vm.$children\r\n if (vms && vms.length) {\r\n vms.forEach(function(v) {\r\n return collectVmData(v, res)\r\n })\r\n }\r\n return Object.assign(res, formatVmData(vm))\r\n }\r\n\r\n /**\r\n * 频率控制 返回函数连续调用时,func 执行频率限定为 次 / wait\r\n * 自动合并 data\r\n *\r\n * @param {function} func 传入函数\r\n * @param {number} wait 表示时间窗口的间隔\r\n * @param {object} options 如果想忽略开始边界上的调用,传入{leading: false}。\r\n * 如果想忽略结尾边界上的调用,传入{trailing: false}\r\n * @return {function} 返回客户调用函数\r\n */\r\n function throttle(func, wait, options) {\r\n var context, args, result\r\n var timeout = null\r\n // 上次执行时间点\r\n var previous = 0\r\n if (!options) {\r\n options = {}\r\n }\r\n // 延迟执行函数\r\n function later() {\r\n // 若设定了开始边界不执行选项,上次执行时间始终为0\r\n previous = options.leading === false ? 0 : Date.now()\r\n timeout = null\r\n result = func.apply(context, args)\r\n if (!timeout) {\r\n context = args = null\r\n }\r\n }\r\n return function(handle, data) {\r\n var now = Date.now()\r\n // 首次执行时,如果设定了开始边界不执行选项,将上次执行时间设定为当前时间。\r\n if (!previous && options.leading === false) {\r\n previous = now\r\n }\r\n // 延迟执行时间间隔\r\n var remaining = wait - (now - previous)\r\n context = this\r\n args = args ? [handle, Object.assign(args[1], data)] : [handle, data]\r\n // 延迟时间间隔remaining小于等于0,表示上次执行至此所间隔时间已经超过一个时间窗口\r\n // remaining大于时间窗口wait,表示客户端系统时间被调整过\r\n if (remaining <= 0 || remaining > wait) {\r\n clearTimeout(timeout)\r\n timeout = null\r\n previous = now\r\n result = func.apply(context, args)\r\n if (!timeout) {\r\n context = args = null\r\n }\r\n // 如果延迟执行不存在,且没有设定结尾边界不执行选项\r\n } else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(later, remaining)\r\n }\r\n return result\r\n }\r\n }\r\n\r\n // 优化频繁的 setData: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/performance/tips.html\r\n var throttleSetData = throttle(function(handle, data) {\r\n handle && handle(data)\r\n }, 50)\r\n\r\n function getPage(vm) {\r\n var rootVueVM = vm.$root\r\n var ref = rootVueVM.$mp || {}\r\n var mpType = ref.mpType\r\n if (mpType === void 0) mpType = \"\"\r\n var page = ref.page\r\n\r\n // 优化后台态页面进行 setData: https://mp.weixin.qq.com/debug/wxadoc/dev/framework/performance/tips.html\r\n if (mpType === \"app\" || !page || typeof page.setData !== \"function\") {\r\n return\r\n }\r\n return page\r\n }\r\n\r\n // 优化每次 setData 都传递大量新数据\r\n function updateDataToMP() {\r\n var page = getPage(this)\r\n if (!page) {\r\n return\r\n }\r\n\r\n var data = JSON.parse(JSON.stringify(formatVmData(this)))\n //fixed by xxxxxx\r\n throttleSetData(page.setData.bind(page), diff(data, page.data))\r\n }\r\n\r\n function initDataToMP() {\r\n var page = getPage(this)\r\n if (!page) {\r\n return\r\n }\r\n\r\n var data = collectVmData(this.$root)\n //fixed by xxxxxx\r\n page.setData(JSON.parse(JSON.stringify(data)))\r\n }\r\n\r\n function getVM(vm, comkeys) {\r\n if (comkeys === void 0) comkeys = []\r\n\r\n var keys = comkeys.slice(1)\r\n if (!keys.length) {\r\n return vm\r\n }\r\n\r\n return keys.reduce(function(res, key) {\r\n var len = res.$children.length\r\n for (var i = 0; i < len; i++) {\r\n var v = res.$children[i]\r\n var k = getComKey(v)\r\n if (k === key) {\r\n res = v\r\n return res\r\n }\r\n }\r\n return res\r\n }, vm)\r\n }\r\n\r\n function getHandle(vnode, eventid, eventTypes) {\r\n if (eventTypes === void 0) eventTypes = []\r\n\r\n var res = []\r\n if (!vnode || !vnode.tag) {\r\n return res\r\n }\r\n\r\n var ref = vnode || {}\r\n var data = ref.data\r\n if (data === void 0) data = {}\r\n var children = ref.children\r\n if (children === void 0) children = []\r\n var componentInstance = ref.componentInstance\r\n if (componentInstance) {\r\n // 增加 slot 情况的处理\r\n // Object.values 会多增加几行编译后的代码\r\n Object.keys(componentInstance.$slots).forEach(function(slotKey) {\r\n var slot = componentInstance.$slots[slotKey]\r\n var slots = Array.isArray(slot) ? slot : [slot]\r\n slots.forEach(function(node) {\r\n res = res.concat(getHandle(node, eventid, eventTypes))\r\n })\r\n })\r\n } else {\r\n // 避免遍历超出当前组件的 vm\r\n children.forEach(function(node) {\r\n res = res.concat(getHandle(node, eventid, eventTypes))\r\n })\r\n }\r\n\r\n var attrs = data.attrs\r\n var on = data.on\r\n if (attrs && on && attrs[\"eventid\"] === eventid) {\r\n eventTypes.forEach(function(et) {\r\n var h = on[et]\r\n if (typeof h === \"function\") {\r\n res.push(h)\r\n } else if (Array.isArray(h)) {\r\n res = res.concat(h)\r\n }\r\n })\r\n return res\r\n }\r\n\r\n return res\r\n }\r\n\r\n function getWebEventByMP(e) {\r\n var type = e.type\r\n var timeStamp = e.timeStamp\r\n var touches = e.touches\r\n var detail = e.detail\r\n if (detail === void 0) detail = {}\r\n var target = e.target\r\n if (target === void 0) target = {}\r\n var currentTarget = e.currentTarget\r\n if (currentTarget === void 0) currentTarget = {}\r\n var x = detail.x\r\n var y = detail.y\r\n var event = {\r\n mp: e,\r\n type: type,\r\n timeStamp: timeStamp,\r\n x: x,\r\n y: y,\r\n target: Object.assign({}, target, detail),\r\n detail: detail, //fixed by xxxxxx\r\n currentTarget: currentTarget,\r\n stopPropagation: noop,\r\n preventDefault: noop\r\n }\r\n\r\n if (touches && touches.length) {\r\n Object.assign(event, touches[0])\r\n event.touches = touches\r\n }\r\n return event\r\n }\r\n\r\n function handleProxyWithVue(e) {\r\n var rootVueVM = this.$root\r\n var type = e.type\r\n var target = e.target\r\n if (target === void 0) target = {}\r\n var currentTarget = e.currentTarget\r\n var ref = currentTarget || target\r\n var dataset = ref.dataset\r\n if (dataset === void 0) dataset = {}\r\n var comkey = dataset.comkey\r\n if (comkey === void 0) comkey = \"\"\r\n var eventid = dataset.eventid\r\n var vm = getVM(rootVueVM, comkey.split(\",\"))\r\n\r\n if (!vm) {\r\n return\r\n }\r\n\r\n var webEventTypes = eventTypeMap[type] || [type]\r\n var handles = getHandle(vm._vnode, eventid, webEventTypes)\r\n\r\n // TODO, enevt 还需要处理更多\r\n // https://developer.mozilla.org/zh-CN/docs/Web/API/Event\r\n if (handles.length) {\r\n var event = getWebEventByMP(e)\r\n if (handles.length === 1) {\r\n var result = handles[0](event)\r\n return result\r\n }\r\n handles.forEach(function(h) {\r\n return h(event)\r\n })\r\n }\r\n }\r\n\r\n // for platforms\r\n // import config from 'core/config'\r\n // install platform specific utils\r\n Vue$3.config.mustUseProp = mustUseProp\r\n Vue$3.config.isReservedTag = isReservedTag\r\n Vue$3.config.isReservedAttr = isReservedAttr\r\n Vue$3.config.getTagNamespace = getTagNamespace\r\n Vue$3.config.isUnknownElement = isUnknownElement\r\n\r\n // install platform patch function\r\n Vue$3.prototype.__patch__ = patch\r\n\r\n // public mount method\r\n Vue$3.prototype.$mount = function(el, hydrating) {\r\n var this$1 = this\r\n\r\n // el = el && inBrowser ? query(el) : undefined\r\n // return mountComponent(this, el, hydrating)\r\n\r\n // 初始化小程序生命周期相关\r\n var options = this.$options\r\n\r\n if (options && (options.render || options.mpType)) {\r\n var mpType = options.mpType\r\n if (mpType === void 0) mpType = \"page\"\r\n return this._initMP(mpType, function() {\r\n return mountComponent(this$1, undefined, undefined)\r\n })\r\n } else {\r\n return mountComponent(this, undefined, undefined)\r\n }\r\n }\r\n\r\n // for mp\r\n Vue$3.prototype._initMP = initMP\r\n\r\n Vue$3.prototype.$updateDataToMP = updateDataToMP\r\n Vue$3.prototype._initDataToMP = initDataToMP\r\n\r\n Vue$3.prototype.$handleProxyWithVue = handleProxyWithVue\r\n\r\n /* */\r\n\r\n return Vue$3\r\n})\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","var render, staticRenderFns\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../HBuilderX/plugins/uniapp-cli/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"E:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('65adfccb', component.options)\n } else {\n api.reload('65adfccb', component.options)\n }\n \n }\n}\ncomponent.options.__file = \"web/gangjurenminiprogram/App.vue\"\nexport default component.exports","import mod from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--18-0!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../HBuilderX/plugins/uniapp-cli/node_modules/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--18-0!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../HBuilderX/plugins/uniapp-cli/node_modules/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"","<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\t// console.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\t// console.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\t// console.log('App Hide')\r\n\t\t},\r\n\r\n\t\tpost: function(url, data,method) {\r\n\r\n\t\t\t// (showLoad == undefined || showLoad) ?\r\n\t\t\t// wx.showLoading({\r\n\t\t\t// title: '加载中',\r\n\t\t\t// }) : ''\r\n\t\t\t// wx.showNavigationBarLoading()\r\n\t\t\tvar promise = new Promise((resolve, reject) => {\r\n\t\t\t\t//init\r\n\t\t\t\tlet that = this,\r\n\t\t\t\t\ttoken = uni.getStorageSync('token'),\r\n\t\t\t\t\theader = {\r\n\t\t\t\t\t\ttoken: token || ''\r\n\t\t\t\t\t},\r\n\t\t\t\t\tpostData;\r\n\t\t\t\t\t// console.log(token,\"token\")\r\n\t\t\t\t//网络请求 \r\n\t\t\t\tuni.request({\r\n\t\t\t\t\turl: this.globalData.baseUrl + url,\r\n\t\t\t\t\tdata: data,\r\n\t\t\t\t\tmethod: method,\r\n\t\t\t\t\theader: header,\r\n\t\t\t\t\tsuccess: function(res) { //返回取得的数据\r\n\t\t\t\t\t\tconsole.log(res)\r\n\t\t\t\t\t\tif (res.data.code == 1) {\r\n\t\t\t\t\t\t\tresolve(res.data.data);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// uni.showToast({\r\n\t\t\t\t\t\t\t// \ttitle: res.data.msg,\r\n\t\t\t\t\t\t\t// \ticon: 'none',\r\n\t\t\t\t\t\t\t// })\r\n\t\t\t\t\t\t\treject(res.data)\r\n\t\t\t\t\t\t\tif (res.data.code == '401') {}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// (showLoad || showLoad == undefined) ? wx.hideLoading(): \"\";\r\n\t\t\t\t\t\t// wx.hideNavigationBarLoading()\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfail: function(e) {\r\n\t\t\t\t\t\tconsole.log(e)\r\n\t\t\t\t\t\treject('网络出错');\r\n\t\t\t\t\t\t// (showLoad || showLoad == undefined) ? wx.hideLoading() : \"\";\r\n\t\t\t\t\t\twx.hideNavigationBarLoading()\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcomplete: function(daa) {\r\n\t\t\t\t\t\tconsole.log(daa)\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t\treturn promise;\r\n\t\t},\r\n\t\ttimeFormate(timestamp, timeType) {\r\n\t\t\tif (timestamp) {\r\n\t\t\t\tvar timeStamp = timestamp.length == 13 ? timestamp : timestamp * 1000\r\n\t\t\t\tvar date = new Date(timeStamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000\r\n\t\t\t\tvar Y = date.getFullYear() + '-';\r\n\t\t\t\tvar M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';\r\n\t\t\t\tvar D = date.getDate() + ' ';\r\n\t\t\t\tvar h = date.getHours() + ':';\r\n\t\t\t\tvar m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());\r\n\t\t\t\tvar s = date.getSeconds();\r\n\t\t\t\tif (timeType == 'YYMMDD') {\r\n\t\t\t\t\treturn Y + M + D;\r\n\t\t\t\t} else if (timeType == 'YYMMDDHHMM') {\r\n\t\t\t\t\treturn Y + M + D + \" \" + h + m;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn h + m;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tglobalData: {\r\n\t\t\tuserInfo: null,\r\n\t\t\t// baseUrl: 'http://icrgangjuren.w.brotop.cn/'\r\n\t\t\tbaseUrl:'https://icr.gangjuren.com/'\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style>\r\n\t/*每个页面公共css */\r\n\t/*每个页面公共css */\r\n\tbody {\r\n\t\tbackground-color: #f6f6f6;\r\n\t}\r\n\r\n\t/* 布局 */\r\n\t.layor_start {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: flex-start;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.layor_center {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.layor_between {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.layor_around {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-around;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.layor_end {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: flex-end;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.flex_center {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\talign-items: center;\r\n\t}\r\n\r\n\t.layor_start-warp {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tflex-wrap: wrap;\r\n\t}\r\n\r\n\t.register {\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t\tbackground-color: rgba(0, 0, 0, 0.5);\r\n\t\tposition: fixed;\r\n\t\ttop: 0rpx;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tz-index: 5;\r\n\t}\r\n\t.box{\r\n\t\tbackground: #F5F5F5;\r\n\t}\r\n\t.remaintime {\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: space-between;\r\n\t\t\talign-items: center;\r\n\t\t\twidth: 686rpx;\r\n\t\t\theight: 100rpx;\r\n\t\t\tbackground: rgba(62, 58, 57, 1);\r\n\t\t\tbox-shadow: 0rpx 4rpx 18rpx rgba(0, 0, 0, 0.04);\r\n\t\t\topacity: 1;\r\n\t\t\tborder-radius: 10rpx;\r\n\t\t\tmargin: 24rpx auto 0;\r\n\t\t\tpadding: 0 18rpx 0 32rpx;\r\n\t\t\tbox-sizing: border-box;\r\n\t\r\n\t\t}\r\n\t\t.remainleft {\r\n\t\t\tcolor: #fff;\r\n\t\t\tfont-size: 28rpx;\r\n\t\t}\r\n\t\t\r\n\t\t.remainright {\r\n\t\t\twidth: 48rpx;\r\n\t\t\theight: 48rpx;\r\n\t\t\tfont-size: 0;\r\n\t\t}\r\n\t\timage{\r\n\t\t\twidth:100%;\r\n\t\t\theight:100%;\r\n\t\t}\r\n\t\t.nodata{\r\n\t\t\tcolor:#999;\r\n\t\t\tfont-size: 30rpx;\r\n\t\t\ttext-align: center;\r\n\t\t\tmargin-top:100rpx;\r\n\t\t}\r\n</style>\r\n","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.then(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 /^\\$|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\nconst CALLBACK_API_RE = /^on/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name)\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name)\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name)\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\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 /* eslint-disable no-extend-native */\r\n if (!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\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 return 1\r\n } else {\r\n return 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\n\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n upx2px: upx2px,\r\n interceptors: interceptors,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor\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 protocols = {\r\n previewImage\r\n};\r\nconst todos = [];\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 (let 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(`微信小程序 ${methodName}暂不支持${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 toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\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(`微信小程序 暂不支持${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 const returnValue = wx[options.name || 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 '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:暂不支持 ${name} 方法`\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 + ']不存在'\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 getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n if (typeof getUniEmitter === 'function') {\r\n /* eslint-disable no-undef */\r\n return getUniEmitter\r\n }\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 $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\n\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n\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('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\n\r\nPage = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n};\r\n\r\nComponent = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n};\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\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 vueOptions = VueComponent.extendOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\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 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 (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 const vFor = dataPath ? vm.__get_value(dataPath, context) : context;\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.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 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 (\r\n handlerCtx.$options.generic &&\r\n handlerCtx.$parent &&\r\n handlerCtx.$parent.$parent\r\n ) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = handlerCtx.$parent.$parent;\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 ret.push(handler.apply(handlerCtx, 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 }\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 hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound'\r\n];\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\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\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('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\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\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 // 优先查找直属\r\n let parentVm = $children.find(childVm => childVm.$scope._$vueId === vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n // 反向递归查找\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 initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n const components = mpInstance.selectAllComponents('.vue-ref');\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || component;\r\n });\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\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}) {\r\n let [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const componentOptions = {\r\n options: {\r\n multipleSlots: true,\r\n addGlobalClass: true\r\n },\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.$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\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 (args) {\r\n this.$vm.$mp.query = args; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', args);\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\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 (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 });\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\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage };\r\n","import mod from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-1!../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/index.js??ref--6-oneOf-1-2!../../HBuilderX/plugins/uniapp-cli/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../HBuilderX/plugins/uniapp-cli/node_modules/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-1!../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/index.js??ref--6-oneOf-1-2!../../HBuilderX/plugins/uniapp-cli/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../HBuilderX/plugins/uniapp-cli/node_modules/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin","/* 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) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\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","import Vue from 'vue';\n\nfunction callHook$1(vm, hook, params) {\n var handlers = vm.$options[hook];\n if (hook === 'onError' && handlers) {\n handlers = [handlers];\n }\n if(typeof handlers === 'function'){\n handlers = [handlers]\n }\n\n var ret;\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n// try {\n ret = handlers[i].call(vm, params);\n// } catch (e) {//fixed by xxxxxx\n// handleError(e, vm, (hook + \" hook\"));\n// }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n\n // for child\n if (vm.$children.length) {\n vm.$children.forEach(function (v) {\n return callHook$1(v, hook, params);\n });\n }\n\n return ret\n}\n\nfunction getRootVueVm(page) {\n return page.$vm.$root;\n}\n\nexport default function (App) {\n return {\n // 页面的初始数据\n data: {\n $root: {}\n },\n\n // mp lifecycle for vue\n // 生命周期函数--监听页面加载\n onLoad:function onLoad(query) {\n //页面加载的时候\n var app = new Vue(App);\n // 挂载Vue对象到page上\n this.$vm = app;\n var rootVueVM = app.$root;\n rootVueVM.__wxExparserNodeId__ = this.__wxExparserNodeId__//fixed by xxxxxx(createIntersectionObserver)\n rootVueVM.__wxWebviewId__ = this.__wxWebviewId__//fixed by xxxxxx(createIntersectionObserver)\r\n \n //初始化mp对象\n if (!rootVueVM.$mp) {\n rootVueVM.$mp = {};\n }\n var mp = rootVueVM.$mp;\n mp.mpType = 'page';\n mp.page = this;\n mp.query = query;\n mp.status = 'load';\n //mount 要在 mp.status = 'load';赋值之后,不然mount方法会重复添加微信Page\n //具体原因参考mpvue核心库源码,_initMP方法\n app.$mount();\n },\n\n handleProxy: function handleProxy(e) {\n var rootVueVM = getRootVueVm(this);\n return rootVueVM.$handleProxyWithVue(e)\n },\n\n // 生命周期函数--监听页面显示\n onShow:function onShow() {\n var rootVueVM = getRootVueVm(this);\n var mp = rootVueVM.$mp;\n mp.status = 'show';\n callHook$1(rootVueVM, 'onShow');\n // // 只有页面需要 setData\n rootVueVM.$nextTick(function () {\n rootVueVM._initDataToMP();\n });\n },\n\n // 生命周期函数--监听页面初次渲染完成\n onReady:function onReady() {\n var rootVueVM = getRootVueVm(this);\n var mp = rootVueVM.$mp;\n mp.status = 'ready';\n callHook$1(rootVueVM, 'onReady');\n },\n\n // 生命周期函数--监听页面隐藏\n onHide: function onHide() {\n var rootVueVM = getRootVueVm(this);\n var mp = rootVueVM.$mp;\n mp.status = 'hide';\n callHook$1(rootVueVM, 'onHide');\n },\n\n // 生命周期函数--监听页面卸载\n onUnload: function onUnload() {\n var rootVueVM = getRootVueVm(this);\n callHook$1(rootVueVM, 'onUnload');\n rootVueVM.$destroy();\n },\n\n // 页面相关事件处理函数--监听用户下拉动作\n onPullDownRefresh: function onPullDownRefresh() {\n var rootVueVM = getRootVueVm(this);\n callHook$1(rootVueVM, 'onPullDownRefresh');\n },\n\n // 页面上拉触底事件的处理函数\n onReachBottom: function onReachBottom() {\n var rootVueVM = getRootVueVm(this);\n callHook$1(rootVueVM, 'onReachBottom');\n },\n\n // Do something when page scroll\n onPageScroll: function onPageScroll(options) {\n var rootVueVM = getRootVueVm(this);\n callHook$1(rootVueVM, 'onPageScroll', options);\n },\n\n // 当前是 tab 页时,点击 tab 时触发\n onTabItemTap: function onTabItemTap(options) {\n var rootVueVM = getRootVueVm(this);\n callHook$1(rootVueVM, 'onTabItemTap', options);\n },\r\n\t\t\n // // 用户点击右上角分享\n onShareAppMessage: App.onShareAppMessage ?\n function (options) {\n var rootVueVM = getRootVueVm(this);\n return callHook$1(rootVueVM, 'onShareAppMessage', options);\n } : null,\n\n //fixed by xxxxxx\n onNavigationBarButtonTap: function onNavigationBarButtonTap(options) {\n var rootVueVM = getRootVueVm(this);\n \t\tcallHook$1(rootVueVM, \"onNavigationBarButtonTap\", options)\n },\n onNavigationBarSearchInputChanged: function onNavigationBarSearchInputChanged(options) {\n var rootVueVM = getRootVueVm(this);\n \t\tcallHook$1(rootVueVM, \"onNavigationBarSearchInputChanged\", options)\n },\n onNavigationBarSearchInputConfirmed: function onNavigationBarSearchInputConfirmed(options) {\n var rootVueVM = getRootVueVm(this);\n \t\tcallHook$1(rootVueVM, \"onNavigationBarSearchInputConfirmed\", options)\n },\n onNavigationBarSearchInputClicked: function onNavigationBarSearchInputClicked(options) {\n var rootVueVM = getRootVueVm(this);\n \t\tcallHook$1(rootVueVM, \"onNavigationBarSearchInputClicked\", options)\n },\n onBackPress: function onBackPress(options) {\n var rootVueVM = getRootVueVm(this);\n \t\treturn callHook$1(rootVueVM, \"onBackPress\",options)\n },\r\n\t\t$getAppWebview:function (e) {\r\n\t\t\t\treturn plus.webview.getWebviewById('' + this.__wxWebviewId__)\r\n\t\t}\n };\n}\n"],"sourceRoot":""}