{"version":3,"sources":["webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js"],"names":["activeEffectScope","effectScopeStack","EffectScope","detached","this","active","effects","cleanups","parent","index","scopes","push","fn","on","off","pop","length","fromParent","forEach","e","stop","cleanup","last","recordEffectScope","effect","scope","createDep","dep","Set","w","n","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","i","finalizeDepMarkers","ptr","delete","targetMap","WeakMap","effectTrackDepth","maxMarkerBits","effectStack","activeEffect","ITERATE_KEY","Symbol","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","includes","enableTracking","cleanupEffect","resetTracking","undefined","onStop","shouldTrack","trackStack","pauseTracking","track","target","type","key","isTracking","depsMap","get","set","Map","eventInfo","trackEffects","debuggerEventExtraInfo","has","add","trigger","newValue","oldValue","oldTarget","values","triggerEffects","allowRecurse","run","isNonTrackableKeys","builtInSymbols","Object","getOwnPropertyNames","map","filter","createGetter","shallowGet","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","arr","toRaw","l","res","apply","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","shouldUnwrap","value","readonly","reactive","createSetter","shallowSet","hadKey","Number","result","deleteProperty","ownKeys","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","v","getPrototypeOf","get$1","isShallow","rawTarget","rawKey","wrap","toReadonly","toReactive","call","has$1","size","proto","set$1","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","iterator","isKeyOnly","innerIterator","done","next","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","Proxy","isReactive","isProxy","raw","markRaw","trackRefValue","ref","triggerRefValue","newVal","r","Boolean","__v_isRef","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","ComputedRefImpl","getter","_setter","_dirty","self","_value","getterOrOptions","debugOptions","setter","onlyGetter","cRef","Promise","resolve","emit$1","instance","event","rawArgs","props","vnode","isModelListener","startsWith","modelArg","slice","modifiersKey","number","trim","a","handlerName","handler","callWithAsyncErrorHandling","onceHandler","emitted","normalizeEmitsOptions","comp","appContext","asMixin","cache","emitsCache","cached","emits","normalized","hasExtends","extendEmits","normalizedFromExtend","mixins","extends","isEmitListener","options","replace","toLowerCase","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","withCtx","ctx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","emit","render","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","err","blockStack","handleError","createVNode","Comment","root","keys","some","filterModelListeners","cloneVNode","dirs","concat","transition","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","children","prevChildren","component","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","el","subTree","isSuspense","__isSuspense","queueEffectWithSuspense","suspense","pendingBranch","queuePostFlushCb","provide","currentInstance","provides","parentProvides","create","inject","defaultValue","treatDefaultAsFactory","arguments","useTransitionState","state","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","Function","Array","BaseTransitionImpl","name","mode","String","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","default","getTransitionRawChildren","rawProps","child","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","hook","hooks","leavingVNode","afterHook","cancelHook","called","_enterCb","cancelled","remove","isKeepAlive","ssContent","clone","ssFallback","keepComment","ret","keyedFragmentCount","Fragment","isAsyncWrapper","__asyncLoader","__isKeepAlive","RegExp","matches","pattern","p","split","indexOf","test","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","current","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","resetShapeFlag","getInnerChild","prepend","__weh","isUnmounted","setCurrentInstance","unsetCurrentInstance","unshift","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","shouldCacheAccess","applyOptions","resolveMergedOptions","publicThis","beforeCreate","dataOptions","computed","computedOptions","methods","watch","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","directives","filters","checkDuplicateProperties","resolveInjections","config","unwrapInjectedRef","methodHandler","bind","opt","c","defineProperty","enumerable","configurable","createWatcher","registerLifecycleHook","register","_hook","exposed","val","unwrapRef","normalizeInject","from","h","createPathGetter","base","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","resolved","m","mergeOptions","to","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","initProps","isStateful","isSSR","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","match","toString","isSameType","b","expectedTypes","findIndex","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","_","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","internalInstance","bindings","dir","arg","modifiers","deep","traverse","invokeDirectiveHook","oldBindings","binding","createAppContext","app","isNativeTag","performance","globalProperties","errorHandler","warnHandler","compilerOptions","uid","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","_instance","version","plugin","install","mixin","directive","rootContainer","isHydrate","isSVG","__vue_app__","getExposeProxy","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","oldRef","refs","callWithErrorHandling","_isString","_isRef","doSet","f","existing","k","id","queuePostRenderEffect","initFeatureFlags","createRenderer","baseCreateRenderer","createHydrationFns","__VUE__","insert","hostInsert","hostRemove","patchProp","hostPatchProp","createElement","hostCreateElement","createText","hostCreateText","createComment","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","parentNode","hostParentNode","nextSibling","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","dynamicChildren","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","process","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","vnodeHook","is","mountChildren","unmountChildren","onVnodeBeforeMount","invokeVNodeHook","scopeId","needCallTransitionHooks","beforeEnter","onVnodeMounted","enter","parentVNode","start","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","class","style","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","activate","mountComponent","updateComponent","initialVNode","createComponentInstance","renderer","setupComponent","asyncDep","registerDep","setupRenderEffect","placeholder","asyncResolved","updateComponentPreRender","invalidateJob","componentUpdateFn","bu","u","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","then","scopedInitialVNode","queueJob","flushPreFlushCbs","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","Math","min","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","move","moveType","needTransition","leave","performLeave","doRemove","deactivate","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","onVnodeUnmounted","removeFragment","performRemove","cur","end","bum","um","suspenseId","pendingId","_vnode","flushPostFlushCbs","mt","mc","pc","pbc","o","createApp","allowed","ch1","ch2","len","arrI","isTeleport","__isTeleport","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","warnMissing","selfName","getComponentName","registry","currentBlock","openBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","createBlock","isVNode","__v_isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","targetAnchor","staticCount","normalizeChildren","normalize","_createVNode","cloned","isClassComponent","__vccOpts","guardReactiveProps","klass","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","memo","slot","slotFlag","toMerge","incoming","renderList","source","renderItem","item","renderSlot","fallback","noSlotted","isCE","validSlotContent","ensureValidVNode","rendered","vnodes","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","$slots","$refs","$parent","$root","$emit","$options","$forceUpdate","$nextTick","nextTick","$watch","instanceWatch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","emptyAppContext","uid$1","exposeProxy","setupContext","bc","da","rtg","rtc","ec","sp","ce","compile","installWithProxy","setupResult","setupStatefulComponent","setup","createSetupContext","resolvedResult","handleSetupResult","catch","finishComponentSetup","__ssrInlineRender","ssrRender","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","displayName","throwInDev","contextVNode","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","console","error","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","findInsertionIndex","middle","middleJobId","getId","job","splice","queueFlush","flushJobs","queueCb","cb","activeQueue","pendingQueue","queuePreFlushCb","seen","parentJob","deduped","sort","Infinity","INITIAL_WATCHER_VALUE","doWatch","immediate","flush","onTrack","onTrigger","forceTrigger","isMultiSource","_shallow","s","onInvalidate","baseGetter","path","segments","propsOrChildren","prototype","svgNS","doc","document","staticTemplateCache","nodeOps","insertBefore","removeChild","tag","createElementNS","multiple","setAttribute","createTextNode","node","nodeValue","textContent","querySelector","selector","before","previousSibling","lastChild","innerHTML","wrapper","firstChild","appendChild","patchClass","transitionClasses","_vtc","join","removeAttribute","className","patchStyle","isCssString","setStyle","currentDisplay","display","cssText","importantRE","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","tagName","_a","_getNow","Date","now","skipTimestampCheck","window","createEvent","timeStamp","ffMatch","navigator","userAgent","cachedNow","getNow","addEventListener","removeEventListener","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","HTMLElement","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","hasExplicitCallback","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","classList","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","setTimeout","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","max","hasTransform","delays","d","toMs","body","offsetHeight","getModelAssigner","onCompositionStart","composing","onCompositionEnd","initEvent","dispatchEvent","vModelText","lazy","_assign","castToNumber","domValue","activeElement","systemModifiers","modifierGuards","stopPropagation","prevent","preventDefault","currentTarget","ctrl","ctrlKey","shift","shiftKey","alt","altKey","meta","metaKey","left","button","right","exact","withModifiers","guard","rendererOptions","ensureRenderer","mount","containerOrSelector","normalizeContainer","SVGElement","Element","makeMap","str","expectsLowerCase","list","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","normalizeStyle","isArray","isString","parseStringStyle","isObject","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","isDate","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","hasOwnProperty","bHasKey","looseIndexOf","toDisplayString","objectToString","isFunction","JSON","stringify","replacer","_key","isMap","entries","reduce","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","extend","assign","hasOwn","toTypeString","isSymbol","isPromise","toRawType","isIntegerKey","parseInt","isReservedProp","cacheStringFunction","hit","camelizeRE","camelize","toUpperCase","hyphenateRE","hyphenate","capitalize","charAt","toHandlerKey","hasChanged","invokeArrayFns","fns","def","obj","toNumber","parseFloat","isNaN","_globalThis","getGlobalThis","globalThis","global","g","module","exports","sfc"],"mappings":"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","file":"js/chunk-vendors.b8365793.js","sourcesContent":["import { extend, isArray, isMap, isIntegerKey, isSymbol, hasOwn, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nconst effectScopeStack = [];\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n this.active = true;\r\n this.effects = [];\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n try {\r\n this.on();\r\n return fn();\r\n }\r\n finally {\r\n this.off();\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n on() {\r\n if (this.active) {\r\n effectScopeStack.push(this);\r\n activeEffectScope = this;\r\n }\r\n }\r\n off() {\r\n if (this.active) {\r\n effectScopeStack.pop();\r\n activeEffectScope = effectScopeStack[effectScopeStack.length - 1];\r\n }\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n this.effects.forEach(e => e.stop());\r\n this.cleanups.forEach(cleanup => cleanup());\r\n if (this.scopes) {\r\n this.scopes.forEach(e => e.stop(true));\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope) {\r\n scope = scope || activeEffectScope;\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nconst effectStack = [];\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n if (!effectStack.includes(this)) {\r\n try {\r\n effectStack.push((activeEffect = this));\r\n enableTracking();\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n resetTracking();\r\n effectStack.pop();\r\n const n = effectStack.length;\r\n activeEffect = n > 0 ? effectStack[n - 1] : undefined;\r\n }\r\n }\r\n }\r\n stop() {\r\n if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (!isTracking()) {\r\n return;\r\n }\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n}\r\nfunction isTracking() {\r\n return shouldTrack && activeEffect !== undefined;\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({\r\n effect: activeEffect\r\n }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n for (const effect of isArray(dep) ? dep : [...dep]) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - does not apply for Array + integer key.\r\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\r\n return shouldUnwrap ? res.value : res;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (!shallow && !isReadonly(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, rawKey);\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, rawKey);\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (target && target[\"__v_isReadonly\" /* IS_READONLY */]) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only a whitelist of value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (isTracking()) {\r\n ref = toRaw(ref);\r\n if (!ref.dep) {\r\n ref.dep = createDep();\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep, {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return Boolean(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, _shallow) {\r\n this._shallow = _shallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = _shallow ? value : toRaw(value);\r\n this._value = _shallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this._shallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this._shallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = true;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { toRaw, ref, pauseTracking, resetTracking, reactive, computed, isRef, shallowReactive, trigger, ReactiveEffect, isProxy, shallowReadonly, track, EffectScope, markRaw, proxyRefs, isReactive, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, computed, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, isFunction, toNumber, hyphenate, camelize, isArray, isOn, hasOwn, isModelListener, isObject, remove, isString, invokeArrayFns, isPromise, NOOP, def, isReservedProp, EMPTY_ARR, capitalize, toRawType, makeMap, NO, normalizeClass, normalizeStyle, isGloballyWhitelisted, hasChanged, isSet, isMap, isPlainObject } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n // eslint-disable-next-line no-restricted-globals\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the intance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if ((process.env.NODE_ENV !== 'production') && children.length > 1) {\r\n warn(' can only be used on a single element or component. Use ' +\r\n ' for lists.');\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' && mode !== 'out-in' && mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n // at this point children has a guaranteed length of 1.\r\n const child = children[0];\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n name: 'AsyncComponentWrapper',\r\n __asyncLoader: load,\r\n get __asyncResolved() {\r\n return resolvedComp;\r\n },\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (isInSSRComponentSetup)) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\r\n // parent is keep-alive, force update so the loaded component's\r\n // name is taken into account\r\n queueJob(instance.parent.update);\r\n }\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return slots.default;\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n instance.__v_cache = cache;\r\n }\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n // for async components, name check should be based in its loaded\r\n // inner component if available\r\n const name = getComponentName(isAsyncWrapper(vnode)\r\n ? vnode.type.__asyncResolved || {}\r\n : comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n return hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n unsetCurrentInstance();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* SERVER_PREFETCH */) &&\r\n injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onServerPrefetch = createHook(\"sp\" /* SERVER_PREFETCH */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n}\n\nfunction createDuplicateChecker() {\r\n const cache = Object.create(null);\r\n return (type, key) => {\r\n if (cache[key]) {\r\n warn(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\r\n }\r\n else {\r\n cache[key] = type;\r\n }\r\n };\r\n}\r\nlet shouldCacheAccess = true;\r\nfunction applyOptions(instance) {\r\n const options = resolveMergedOptions(instance);\r\n const publicThis = instance.proxy;\r\n const ctx = instance.ctx;\r\n // do not cache property access on public proxy during state initialization\r\n shouldCacheAccess = false;\r\n // call beforeCreate first before accessing other options since\r\n // the hook may mutate resolved options (#2791)\r\n if (options.beforeCreate) {\r\n callHook(options.beforeCreate, instance, \"bc\" /* BEFORE_CREATE */);\r\n }\r\n const { \r\n // state\r\n data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, \r\n // lifecycle\r\n created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, \r\n // public API\r\n expose, inheritAttrs, \r\n // assets\r\n components, directives, filters } = options;\r\n const checkDuplicateProperties = (process.env.NODE_ENV !== 'production') ? createDuplicateChecker() : null;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const [propsOptions] = instance.propsOptions;\r\n if (propsOptions) {\r\n for (const key in propsOptions) {\r\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\r\n }\r\n }\r\n }\r\n // options initialization order (to be consistent with Vue 2):\r\n // - props (already done outside of this function)\r\n // - inject\r\n // - methods\r\n // - data (deferred since it relies on `this` access)\r\n // - computed\r\n // - watch (deferred since it relies on `this` access)\r\n if (injectOptions) {\r\n resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);\r\n }\r\n if (methods) {\r\n for (const key in methods) {\r\n const methodHandler = methods[key];\r\n if (isFunction(methodHandler)) {\r\n // In dev mode, we use the `createRenderContext` function to define\r\n // methods to the proxy target, and those are read-only but\r\n // reconfigurable, so it needs to be redefined here\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n Object.defineProperty(ctx, key, {\r\n value: methodHandler.bind(publicThis),\r\n configurable: true,\r\n enumerable: true,\r\n writable: true\r\n });\r\n }\r\n else {\r\n ctx[key] = methodHandler.bind(publicThis);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. ` +\r\n `Did you reference the function correctly?`);\r\n }\r\n }\r\n }\r\n if (dataOptions) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(dataOptions)) {\r\n warn(`The data option must be a function. ` +\r\n `Plain object usage is no longer supported.`);\r\n }\r\n const data = dataOptions.call(publicThis, publicThis);\r\n if ((process.env.NODE_ENV !== 'production') && isPromise(data)) {\r\n warn(`data() returned a Promise - note data() cannot be async; If you ` +\r\n `intend to perform data fetching before component renders, use ` +\r\n `async setup() + .`);\r\n }\r\n if (!isObject(data)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`data() should return an object.`);\r\n }\r\n else {\r\n instance.data = reactive(data);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n for (const key in data) {\r\n checkDuplicateProperties(\"Data\" /* DATA */, key);\r\n // expose data on ctx during dev\r\n if (key[0] !== '$' && key[0] !== '_') {\r\n Object.defineProperty(ctx, key, {\r\n configurable: true,\r\n enumerable: true,\r\n get: () => data[key],\r\n set: NOOP\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state initialization complete at this point - start caching access\r\n shouldCacheAccess = true;\r\n if (computedOptions) {\r\n for (const key in computedOptions) {\r\n const opt = computedOptions[key];\r\n const get = isFunction(opt)\r\n ? opt.bind(publicThis, publicThis)\r\n : isFunction(opt.get)\r\n ? opt.get.bind(publicThis, publicThis)\r\n : NOOP;\r\n if ((process.env.NODE_ENV !== 'production') && get === NOOP) {\r\n warn(`Computed property \"${key}\" has no getter.`);\r\n }\r\n const set = !isFunction(opt) && isFunction(opt.set)\r\n ? opt.set.bind(publicThis)\r\n : (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n warn(`Write operation failed: computed property \"${key}\" is readonly.`);\r\n }\r\n : NOOP;\r\n const c = computed({\r\n get,\r\n set\r\n });\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => c.value,\r\n set: v => (c.value = v)\r\n });\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\r\n }\r\n }\r\n }\r\n if (watchOptions) {\r\n for (const key in watchOptions) {\r\n createWatcher(watchOptions[key], ctx, publicThis, key);\r\n }\r\n }\r\n if (provideOptions) {\r\n const provides = isFunction(provideOptions)\r\n ? provideOptions.call(publicThis)\r\n : provideOptions;\r\n Reflect.ownKeys(provides).forEach(key => {\r\n provide(key, provides[key]);\r\n });\r\n }\r\n if (created) {\r\n callHook(created, instance, \"c\" /* CREATED */);\r\n }\r\n function registerLifecycleHook(register, hook) {\r\n if (isArray(hook)) {\r\n hook.forEach(_hook => register(_hook.bind(publicThis)));\r\n }\r\n else if (hook) {\r\n register(hook.bind(publicThis));\r\n }\r\n }\r\n registerLifecycleHook(onBeforeMount, beforeMount);\r\n registerLifecycleHook(onMounted, mounted);\r\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\r\n registerLifecycleHook(onUpdated, updated);\r\n registerLifecycleHook(onActivated, activated);\r\n registerLifecycleHook(onDeactivated, deactivated);\r\n registerLifecycleHook(onErrorCaptured, errorCaptured);\r\n registerLifecycleHook(onRenderTracked, renderTracked);\r\n registerLifecycleHook(onRenderTriggered, renderTriggered);\r\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\r\n registerLifecycleHook(onUnmounted, unmounted);\r\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\r\n if (isArray(expose)) {\r\n if (expose.length) {\r\n const exposed = instance.exposed || (instance.exposed = {});\r\n expose.forEach(key => {\r\n Object.defineProperty(exposed, key, {\r\n get: () => publicThis[key],\r\n set: val => (publicThis[key] = val)\r\n });\r\n });\r\n }\r\n else if (!instance.exposed) {\r\n instance.exposed = {};\r\n }\r\n }\r\n // options that are handled when creating the instance but also need to be\r\n // applied from mixins\r\n if (render && instance.render === NOOP) {\r\n instance.render = render;\r\n }\r\n if (inheritAttrs != null) {\r\n instance.inheritAttrs = inheritAttrs;\r\n }\r\n // asset options.\r\n if (components)\r\n instance.components = components;\r\n if (directives)\r\n instance.directives = directives;\r\n}\r\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {\r\n if (isArray(injectOptions)) {\r\n injectOptions = normalizeInject(injectOptions);\r\n }\r\n for (const key in injectOptions) {\r\n const opt = injectOptions[key];\r\n let injected;\r\n if (isObject(opt)) {\r\n if ('default' in opt) {\r\n injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);\r\n }\r\n else {\r\n injected = inject(opt.from || key);\r\n }\r\n }\r\n else {\r\n injected = inject(opt);\r\n }\r\n if (isRef(injected)) {\r\n // TODO remove the check in 3.3\r\n if (unwrapRef) {\r\n Object.defineProperty(ctx, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: () => injected.value,\r\n set: v => (injected.value = v)\r\n });\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injected property \"${key}\" is a ref and will be auto-unwrapped ` +\r\n `and no longer needs \\`.value\\` in the next minor release. ` +\r\n `To opt-in to the new behavior now, ` +\r\n `set \\`app.config.unwrapInjectedRef = true\\` (this config is ` +\r\n `temporary and will not be needed in the future.)`);\r\n }\r\n ctx[key] = injected;\r\n }\r\n }\r\n else {\r\n ctx[key] = injected;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\r\n }\r\n }\r\n}\r\nfunction callHook(hook, instance, type) {\r\n callWithAsyncErrorHandling(isArray(hook)\r\n ? hook.map(h => h.bind(instance.proxy))\r\n : hook.bind(instance.proxy), instance, type);\r\n}\r\nfunction createWatcher(raw, ctx, publicThis, key) {\r\n const getter = key.includes('.')\r\n ? createPathGetter(publicThis, key)\r\n : () => publicThis[key];\r\n if (isString(raw)) {\r\n const handler = ctx[raw];\r\n if (isFunction(handler)) {\r\n watch(getter, handler);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw}\"`, handler);\r\n }\r\n }\r\n else if (isFunction(raw)) {\r\n watch(getter, raw.bind(publicThis));\r\n }\r\n else if (isObject(raw)) {\r\n if (isArray(raw)) {\r\n raw.forEach(r => createWatcher(r, ctx, publicThis, key));\r\n }\r\n else {\r\n const handler = isFunction(raw.handler)\r\n ? raw.handler.bind(publicThis)\r\n : ctx[raw.handler];\r\n if (isFunction(handler)) {\r\n watch(getter, handler, raw);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\r\n }\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid watch option: \"${key}\"`, raw);\r\n }\r\n}\r\n/**\r\n * Resolve merged options and cache it on the component.\r\n * This is done only once per-component since the merging does not involve\r\n * instances.\r\n */\r\nfunction resolveMergedOptions(instance) {\r\n const base = instance.type;\r\n const { mixins, extends: extendsOptions } = base;\r\n const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;\r\n const cached = cache.get(base);\r\n let resolved;\r\n if (cached) {\r\n resolved = cached;\r\n }\r\n else if (!globalMixins.length && !mixins && !extendsOptions) {\r\n {\r\n resolved = base;\r\n }\r\n }\r\n else {\r\n resolved = {};\r\n if (globalMixins.length) {\r\n globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));\r\n }\r\n mergeOptions(resolved, base, optionMergeStrategies);\r\n }\r\n cache.set(base, resolved);\r\n return resolved;\r\n}\r\nfunction mergeOptions(to, from, strats, asMixin = false) {\r\n const { mixins, extends: extendsOptions } = from;\r\n if (extendsOptions) {\r\n mergeOptions(to, extendsOptions, strats, true);\r\n }\r\n if (mixins) {\r\n mixins.forEach((m) => mergeOptions(to, m, strats, true));\r\n }\r\n for (const key in from) {\r\n if (asMixin && key === 'expose') {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`\"expose\" option is ignored when declared in mixins or extends. ` +\r\n `It should only be declared in the base component itself.`);\r\n }\r\n else {\r\n const strat = internalOptionMergeStrats[key] || (strats && strats[key]);\r\n to[key] = strat ? strat(to[key], from[key]) : from[key];\r\n }\r\n }\r\n return to;\r\n}\r\nconst internalOptionMergeStrats = {\r\n data: mergeDataFn,\r\n props: mergeObjectOptions,\r\n emits: mergeObjectOptions,\r\n // objects\r\n methods: mergeObjectOptions,\r\n computed: mergeObjectOptions,\r\n // lifecycle\r\n beforeCreate: mergeAsArray,\r\n created: mergeAsArray,\r\n beforeMount: mergeAsArray,\r\n mounted: mergeAsArray,\r\n beforeUpdate: mergeAsArray,\r\n updated: mergeAsArray,\r\n beforeDestroy: mergeAsArray,\r\n beforeUnmount: mergeAsArray,\r\n destroyed: mergeAsArray,\r\n unmounted: mergeAsArray,\r\n activated: mergeAsArray,\r\n deactivated: mergeAsArray,\r\n errorCaptured: mergeAsArray,\r\n serverPrefetch: mergeAsArray,\r\n // assets\r\n components: mergeObjectOptions,\r\n directives: mergeObjectOptions,\r\n // watch\r\n watch: mergeWatchOptions,\r\n // provide / inject\r\n provide: mergeDataFn,\r\n inject: mergeInject\r\n};\r\nfunction mergeDataFn(to, from) {\r\n if (!from) {\r\n return to;\r\n }\r\n if (!to) {\r\n return from;\r\n }\r\n return function mergedDataFn() {\r\n return (extend)(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);\r\n };\r\n}\r\nfunction mergeInject(to, from) {\r\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\r\n}\r\nfunction normalizeInject(raw) {\r\n if (isArray(raw)) {\r\n const res = {};\r\n for (let i = 0; i < raw.length; i++) {\r\n res[raw[i]] = raw[i];\r\n }\r\n return res;\r\n }\r\n return raw;\r\n}\r\nfunction mergeAsArray(to, from) {\r\n return to ? [...new Set([].concat(to, from))] : from;\r\n}\r\nfunction mergeObjectOptions(to, from) {\r\n return to ? extend(extend(Object.create(null), to), from) : from;\r\n}\r\nfunction mergeWatchOptions(to, from) {\r\n if (!to)\r\n return from;\r\n if (!from)\r\n return to;\r\n const merged = extend(Object.create(null), to);\r\n for (const key in from) {\r\n merged[key] = mergeAsArray(to[key], from[key]);\r\n }\r\n return merged;\r\n}\n\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n instance.propsDefaults = Object.create(null);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // ensure all declared prop keys are present\r\n for (const key in instance.propsOptions[0]) {\r\n if (!(key in props)) {\r\n props[key] = undefined;\r\n }\r\n }\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n if (\r\n // always force full diff in dev\r\n // - #1942 if hmr is enabled with sfc component\r\n // - vite#872 non-sfc component used by sfc component\r\n !((process.env.NODE_ENV !== 'production') &&\r\n (instance.type.__hmrId ||\r\n (instance.parent && instance.parent.type.__hmrId))) &&\r\n (optimized || patchFlag > 0) &&\r\n !(patchFlag & 16 /* FULL_PROPS */)) {\r\n if (patchFlag & 8 /* PROPS */) {\r\n // Compiler-generated props & no keys change, just set the updated\r\n // the props.\r\n const propsToUpdate = instance.vnode.dynamicProps;\r\n for (let i = 0; i < propsToUpdate.length; i++) {\r\n let key = propsToUpdate[i];\r\n // PROPS flag guarantees rawProps to be non-null\r\n const value = rawProps[key];\r\n if (options) {\r\n // attr / props separation was done on init and will be consistent\r\n // in this code path, so just check if attrs have it.\r\n if (hasOwn(attrs, key)) {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);\r\n }\r\n }\r\n else {\r\n if (value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n if (setFullProps(instance, rawProps, props, attrs)) {\r\n hasAttrsChanged = true;\r\n }\r\n // in case of dynamic props, check if we need to delete keys from\r\n // the props object\r\n let kebabKey;\r\n for (const key in rawCurrentProps) {\r\n if (!rawProps ||\r\n // for camelCase\r\n (!hasOwn(rawProps, key) &&\r\n // it's possible the original props was passed in as kebab-case\r\n // and converted to camelCase (#955)\r\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))) {\r\n if (options) {\r\n if (rawPrevProps &&\r\n // for camelCase\r\n (rawPrevProps[key] !== undefined ||\r\n // for kebab-case\r\n rawPrevProps[kebabKey] !== undefined)) {\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);\r\n }\r\n }\r\n else {\r\n delete props[key];\r\n }\r\n }\r\n }\r\n // in the case of functional component w/o props declaration, props and\r\n // attrs point to the same object so it should already have been updated.\r\n if (attrs !== rawCurrentProps) {\r\n for (const key in attrs) {\r\n if (!rawProps || !hasOwn(rawProps, key)) {\r\n delete attrs[key];\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n if (hasAttrsChanged) {\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n let hasAttrsChanged = false;\r\n let rawCastValues;\r\n if (rawProps) {\r\n for (let key in rawProps) {\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\r\n const value = rawProps[key];\r\n // prop option names are camelized during normalization, so to support\r\n // kebab -> camel conversion here we need to camelize the key.\r\n let camelKey;\r\n if (options && hasOwn(options, (camelKey = camelize(key)))) {\r\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\r\n props[camelKey] = value;\r\n }\r\n else {\r\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\r\n }\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n if (!(key in attrs) || value !== attrs[key]) {\r\n attrs[key] = value;\r\n hasAttrsChanged = true;\r\n }\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n const castValues = rawCastValues || EMPTY_OBJ;\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));\r\n }\r\n }\r\n return hasAttrsChanged;\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\r\n const opt = options[key];\r\n if (opt != null) {\r\n const hasDefault = hasOwn(opt, 'default');\r\n // default values\r\n if (hasDefault && value === undefined) {\r\n const defaultValue = opt.default;\r\n if (opt.type !== Function && isFunction(defaultValue)) {\r\n const { propsDefaults } = instance;\r\n if (key in propsDefaults) {\r\n value = propsDefaults[key];\r\n }\r\n else {\r\n setCurrentInstance(instance);\r\n value = propsDefaults[key] = defaultValue.call(null, props);\r\n unsetCurrentInstance();\r\n }\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (isAbsent && !hasDefault) {\r\n value = false;\r\n }\r\n else if (opt[1 /* shouldCastTrue */] &&\r\n (value === '' || value === hyphenate(key))) {\r\n value = true;\r\n }\r\n }\r\n }\r\n return value;\r\n}\r\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.propsCache;\r\n const cached = cache.get(comp);\r\n if (cached) {\r\n return cached;\r\n }\r\n const raw = comp.props;\r\n const normalized = {};\r\n const needCastKeys = [];\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendProps = (raw) => {\r\n hasExtends = true;\r\n const [props, keys] = normalizePropsOptions(raw, appContext, true);\r\n extend(normalized, props);\r\n if (keys)\r\n needCastKeys.push(...keys);\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendProps);\r\n }\r\n if (comp.extends) {\r\n extendProps(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendProps);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, EMPTY_ARR);\r\n return EMPTY_ARR;\r\n }\r\n if (isArray(raw)) {\r\n for (let i = 0; i < raw.length; i++) {\r\n if ((process.env.NODE_ENV !== 'production') && !isString(raw[i])) {\r\n warn(`props must be strings when using array syntax.`, raw[i]);\r\n }\r\n const normalizedKey = camelize(raw[i]);\r\n if (validatePropName(normalizedKey)) {\r\n normalized[normalizedKey] = EMPTY_OBJ;\r\n }\r\n }\r\n }\r\n else if (raw) {\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(raw)) {\r\n warn(`invalid props options`, raw);\r\n }\r\n for (const key in raw) {\r\n const normalizedKey = camelize(key);\r\n if (validatePropName(normalizedKey)) {\r\n const opt = raw[key];\r\n const prop = (normalized[normalizedKey] =\r\n isArray(opt) || isFunction(opt) ? { type: opt } : opt);\r\n if (prop) {\r\n const booleanIndex = getTypeIndex(Boolean, prop.type);\r\n const stringIndex = getTypeIndex(String, prop.type);\r\n prop[0 /* shouldCast */] = booleanIndex > -1;\r\n prop[1 /* shouldCastTrue */] =\r\n stringIndex < 0 || booleanIndex < stringIndex;\r\n // if the prop needs boolean casting or default value\r\n if (booleanIndex > -1 || hasOwn(prop, 'default')) {\r\n needCastKeys.push(normalizedKey);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const res = [normalized, needCastKeys];\r\n cache.set(comp, res);\r\n return res;\r\n}\r\nfunction validatePropName(key) {\r\n if (key[0] !== '$') {\r\n return true;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Invalid prop name: \"${key}\" is a reserved property.`);\r\n }\r\n return false;\r\n}\r\n// use function string name to check type constructors\r\n// so that it works across vms / iframes.\r\nfunction getType(ctor) {\r\n const match = ctor && ctor.toString().match(/^\\s*function (\\w+)/);\r\n return match ? match[1] : ctor === null ? 'null' : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (isArray(expectedTypes)) {\r\n return expectedTypes.findIndex(t => isSameType(t, type));\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(rawProps, props, instance) {\r\n const resolvedValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else if (expectedType === 'null') {\r\n valid = value === null;\r\n }\r\n else {\r\n valid = value instanceof type;\r\n }\r\n return {\r\n valid,\r\n expectedType\r\n };\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n let message = `Invalid prop: type check failed for prop \"${name}\".` +\r\n ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;\r\n const expectedType = expectedTypes[0];\r\n const receivedType = toRawType(value);\r\n const expectedValue = styleValue(value, expectedType);\r\n const receivedValue = styleValue(value, receivedType);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += ` with value ${expectedValue}`;\r\n }\r\n message += `, got ${receivedType} `;\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += `with value ${receivedValue}.`;\r\n }\r\n return message;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return `\"${value}\"`;\r\n }\r\n else if (type === 'Number') {\r\n return `${Number(value)}`;\r\n }\r\n else {\r\n return `${value}`;\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isExplicable(type) {\r\n const explicitTypes = ['string', 'number', 'boolean'];\r\n return explicitTypes.some(elem => type.toLowerCase() === elem);\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction isBoolean(...args) {\r\n return args.some(elem => elem.toLowerCase() === 'boolean');\r\n}\n\nconst isInternalKey = (key) => key[0] === '_' || key === '$stable';\r\nconst normalizeSlotValue = (value) => isArray(value)\r\n ? value.map(normalizeVNode)\r\n : [normalizeVNode(value)];\r\nconst normalizeSlot = (key, rawSlot, ctx) => {\r\n const normalized = withCtx((...args) => {\r\n if ((process.env.NODE_ENV !== 'production') && currentInstance) {\r\n warn(`Slot \"${key}\" invoked outside of the render function: ` +\r\n `this will not track dependencies used in the slot. ` +\r\n `Invoke the slot function inside the render function instead.`);\r\n }\r\n return normalizeSlotValue(rawSlot(...args));\r\n }, ctx);\r\n normalized._c = false;\r\n return normalized;\r\n};\r\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\r\n const ctx = rawSlots._ctx;\r\n for (const key in rawSlots) {\r\n if (isInternalKey(key))\r\n continue;\r\n const value = rawSlots[key];\r\n if (isFunction(value)) {\r\n slots[key] = normalizeSlot(key, value, ctx);\r\n }\r\n else if (value != null) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !(false )) {\r\n warn(`Non-function value encountered for slot \"${key}\". ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(value);\r\n slots[key] = () => normalized;\r\n }\r\n }\r\n};\r\nconst normalizeVNodeSlots = (instance, children) => {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !isKeepAlive(instance.vnode) &&\r\n !(false )) {\r\n warn(`Non-function value encountered for default slot. ` +\r\n `Prefer function slots for better performance.`);\r\n }\r\n const normalized = normalizeSlotValue(children);\r\n instance.slots.default = () => normalized;\r\n};\r\nconst initSlots = (instance, children) => {\r\n if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // users can get the shallow readonly version of the slots object through `this.$slots`,\r\n // we should avoid the proxy object polluting the slots of the internal instance\r\n instance.slots = toRaw(children);\r\n // make compiler marker non-enumerable\r\n def(children, '_', type);\r\n }\r\n else {\r\n normalizeObjectSlots(children, (instance.slots = {}));\r\n }\r\n }\r\n else {\r\n instance.slots = {};\r\n if (children) {\r\n normalizeVNodeSlots(instance, children);\r\n }\r\n }\r\n def(instance.slots, InternalObjectKey, 1);\r\n};\r\nconst updateSlots = (instance, children, optimized) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (optimized && type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n // #2893\r\n // when rendering the optimized slots by manually written render function,\r\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\r\n // i.e. let the `renderSlot` create the bailed Fragment\r\n if (!optimized && type === 1 /* STABLE */) {\r\n delete slots._;\r\n }\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n let hook = binding.dir[name];\r\n if (hook) {\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n resetTracking();\r\n }\r\n }\r\n}\n\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n errorHandler: undefined,\r\n warnHandler: undefined,\r\n compilerOptions: {}\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null),\r\n optionsCache: new WeakMap(),\r\n propsCache: new WeakMap(),\r\n emitsCache: new WeakMap()\r\n };\r\n}\r\nlet uid = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (rootProps != null && !isObject(rootProps)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = new Set();\r\n let isMounted = false;\r\n const app = (context.app = {\r\n _uid: uid++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n _instance: null,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`app.config cannot be replaced. Modify individual options instead.`);\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Plugin has already been applied to target app.`);\r\n }\r\n else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n }\r\n else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`A plugin must either be a function or an object with an \"install\" ` +\r\n `function.`);\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixin has already been applied to target app' +\r\n (mixin.name ? `: ${mixin.name}` : ''));\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Mixins are only available in builds supporting Options API');\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.components[name]) {\r\n warn(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && context.directives[name]) {\r\n warn(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n mount(rootContainer, isHydrate, isSVG) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer, isSVG);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer, isSVG);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = vnode.component;\r\n devtoolsInitApp(app, version);\r\n }\r\n return getExposeProxy(vnode.component) || vnode.component.proxy;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`App has already been mounted.\\n` +\r\n `If you want to remount the same app, move your app creation logic ` +\r\n `into a factory function and create fresh app instances for each ` +\r\n `mount - e.g. \\`const createMyApp = () => createApp(App)\\``);\r\n }\r\n },\r\n unmount() {\r\n if (isMounted) {\r\n render(null, app._container);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n app._instance = null;\r\n devtoolsUnmountApp(app);\r\n }\r\n delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\n/**\r\n * Function for handling a template ref\r\n */\r\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));\r\n return;\r\n }\r\n if (isAsyncWrapper(vnode) && !isUnmount) {\r\n // when mounting async components, nothing needs to be done,\r\n // because the template ref is forwarded to inner component\r\n return;\r\n }\r\n const refValue = vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */\r\n ? getExposeProxy(vnode.component) || vnode.component.proxy\r\n : vnode.el;\r\n const value = isUnmount ? null : refValue;\r\n const { i: owner, r: ref } = rawRef;\r\n if ((process.env.NODE_ENV !== 'production') && !owner) {\r\n warn(`Missing ref owner context. ref cannot be used on hoisted vnodes. ` +\r\n `A vnode with ref must be created inside the render function.`);\r\n return;\r\n }\r\n const oldRef = oldRawRef && oldRawRef.r;\r\n const refs = owner.refs === EMPTY_OBJ ? (owner.refs = {}) : owner.refs;\r\n const setupState = owner.setupState;\r\n // dynamic ref changed. unset old ref\r\n if (oldRef != null && oldRef !== ref) {\r\n if (isString(oldRef)) {\r\n refs[oldRef] = null;\r\n if (hasOwn(setupState, oldRef)) {\r\n setupState[oldRef] = null;\r\n }\r\n }\r\n else if (isRef(oldRef)) {\r\n oldRef.value = null;\r\n }\r\n }\r\n if (isFunction(ref)) {\r\n callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);\r\n }\r\n else {\r\n const _isString = isString(ref);\r\n const _isRef = isRef(ref);\r\n if (_isString || _isRef) {\r\n const doSet = () => {\r\n if (rawRef.f) {\r\n const existing = _isString ? refs[ref] : ref.value;\r\n if (isUnmount) {\r\n isArray(existing) && remove(existing, refValue);\r\n }\r\n else {\r\n if (!isArray(existing)) {\r\n if (_isString) {\r\n refs[ref] = [refValue];\r\n }\r\n else {\r\n ref.value = [refValue];\r\n if (rawRef.k)\r\n refs[rawRef.k] = ref.value;\r\n }\r\n }\r\n else if (!existing.includes(refValue)) {\r\n existing.push(refValue);\r\n }\r\n }\r\n }\r\n else if (_isString) {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n setupState[ref] = value;\r\n }\r\n }\r\n else if (isRef(ref)) {\r\n ref.value = value;\r\n if (rawRef.k)\r\n refs[rawRef.k] = value;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\r\n }\r\n };\r\n if (value) {\r\n doSet.id = -1;\r\n queuePostRenderEffect(doSet, parentSuspense);\r\n }\r\n else {\r\n doSet();\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', ref, `(${typeof ref})`);\r\n }\r\n }\r\n}\n\nlet hasMismatch = false;\r\nconst isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';\r\nconst isComment = (node) => node.nodeType === 8 /* COMMENT */;\r\n// Note: hydration is DOM-specific\r\n// But we have to place it in core due to tight coupling with core - splitting\r\n// it out creates a ton of unnecessary complexity.\r\n// Hydration also depends on some renderer internal logic which needs to be\r\n// passed in via arguments.\r\nfunction createHydrationFunctions(rendererInternals) {\r\n const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;\r\n const hydrate = (vnode, container) => {\r\n if (!container.hasChildNodes()) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Attempting to hydrate existing markup but container is empty. ` +\r\n `Performing full mount instead.`);\r\n patch(null, vnode, container);\r\n flushPostFlushCbs();\r\n return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, null, null, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type.toLowerCase() !==\r\n node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n vnode.slotScopeIds = slotScopeIds;\r\n const container = parentNode(node);\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n // component may be async, so in the case of fragments we cannot rely\r\n // on component's rendered output to determine the end of the fragment\r\n // instead, we do a lookahead to find the end anchor node.\r\n nextNode = isFragmentStart\r\n ? locateClosingAsyncAnchor(node)\r\n : nextSibling(node);\r\n // #3787\r\n // if component is async, it may get moved / unmounted before its\r\n // inner component is loaded, so we need to give it a placeholder\r\n // vnode that matches its adopted DOM.\r\n if (isAsyncWrapper(vnode)) {\r\n let subTree;\r\n if (isFragmentStart) {\r\n subTree = createVNode(Fragment);\r\n subTree.anchor = nextNode\r\n ? nextNode.previousSibling\r\n : container.lastChild;\r\n }\r\n else {\r\n subTree =\r\n node.nodeType === 3 ? createTextVNode('') : createVNode('div');\r\n }\r\n subTree.el = node;\r\n vnode.component.subTree = subTree;\r\n }\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n if (domType !== 8 /* COMMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { type, props, patchFlag, shapeFlag, dirs } = vnode;\r\n // #4006 for form elements with non-string v-model value bindings\r\n // e.g.