{"version":3,"sources":["webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js"],"names":["stack","warn","msg","args","instance","length","component","appWarnHandler","appContext","config","warnHandler","trace","getComponentTrace","callWithErrorHandling","join","proxy","map","vnode","formatComponentName","type","warnArgs","push","formatTrace","console","currentVNode","normalizedStack","last","recurseCount","parentInstance","parent","logs","forEach","entry","i","formatTraceEntry","postfix","isRoot","open","close","props","formatProps","res","keys","Object","slice","key","formatProp","value","raw","JSON","stringify","name","fn","err","handleError","callWithAsyncErrorHandling","catch","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","errorHandler","logError","error","isFlushing","isFlushPending","queue","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","Promise","resolve","currentFlushPromise","currentPreFlushParentJob","nextTick","p","then","this","bind","queueJob","job","includes","allowRecurse","queueFlush","flushJobs","invalidateJob","indexOf","queueCb","cb","activeQueue","pendingQueue","index","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","seen","parentJob","Set","flushPostFlushCbs","deduped","sort","a","b","getId","id","Infinity","Map","devtools","setDevtoolsHook","hook","emit","event","rawArgs","isModelListener","startsWith","modelArg","modifiersKey","number","trim","handlerName","handler","onceHandler","emitted","normalizeEmitsOptions","comp","asMixin","deopt","undefined","__emits","emits","normalized","hasExtends","extendEmits","mixins","extends","isEmitListener","options","replace","toLowerCase","currentRenderingInstance","setCurrentRenderingInstance","renderComponentRoot","Component","withProxy","propsOptions","slots","attrs","render","renderCache","data","setupState","ctx","result","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","call","getFunctionalFallthrough","root","inheritAttrs","some","filterModelListeners","cloneVNode","dirs","concat","transition","createVNode","Comment","filterSingleRoot","children","filtered","filter","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","el","subTree","isSuspense","__isSuspense","SuspenseImpl","n1","n2","container","anchor","parentComponent","parentSuspense","isSVG","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","create","createSuspenseBoundary","Suspense","patch","o","createElement","hiddenContainer","suspense","pendingBranch","ssContent","deps","ssFallback","setActiveBranch","um","unmount","newBranch","newFallback","activeBranch","isInFallback","isHydrating","isSameVNodeType","pendingId","effects","onPending","timeout","setTimeout","fallback","m","move","n","next","parentNode","remove","isUnmounted","resume","delayEnter","mode","afterLeave","hasUnresolvedAncestor","onResolve","fallbackVNode","onFallback","mountFallback","setupRenderEffect","hydratedEl","asyncDep","asyncSetupResult","suspenseId","asyncResolved","handleSetupResult","placeholder","doRemove","node","hydrateNode","document","normalizeSuspenseChildren","content","normalizeSuspenseSlot","default","s","singleChild","queueEffectWithSuspense","branch","isRenderingCompiledSlot","setCompiledSlotRendering","renderSlot","slot","rendered","openBlock","createBlock","Fragment","_","withCtx","renderFnWithContext","owner","closeBlock","_c","currentScopeId","scopeIdStack","pushScopeId","popScopeId","pop","withScopeId","apply","arguments","initProps","rawProps","isStateful","isSSR","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","camelKey","opt","hasDefault","defaultValue","Function","setCurrentInstance","normalizePropsOptions","__props","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","Boolean","stringIndex","String","getType","ctor","match","toString","isSameType","expectedTypes","len","injectHook","target","currentInstance","prepend","hooks","wrappedHook","__weh","unshift","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onRenderTriggered","onRenderTracked","onErrorCaptured","watchEffect","effect","doWatch","INITIAL_WATCHER_VALUE","watch","source","immediate","deep","flush","onTrack","onTrigger","getter","cleanup","forceTrigger","_shallow","traverse","onInvalidate","baseGetter","runner","onStop","oldValue","active","newValue","scheduler","queuePostRenderEffect","isMounted","lazy","recordInstanceBoundEffect","instanceWatch","publicThis","has","add","v","useTransitionState","state","isLeaving","isUnmounting","leavingVNodes","TransitionHookValidator","Array","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","get","set","callHook","leavingVNode","afterHook","cancelHook","called","done","_enterCb","cancelled","isKeepAlive","clone","keepComment","ret","keyedFragmentCount","__isKeepAlive","KeepAliveImpl","inheritRef","include","RegExp","exclude","max","Number","cache","current","sharedContext","renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","getName","pruneCacheEntry","cached","delete","activate","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","onVnodeUnmounted","matches","pendingCacheKey","cacheSubtree","getInnerChild","rawVNode","cachedVNode","size","parseInt","KeepAlive","displayName","pattern","split","test","onActivated","registerKeepAliveHook","onDeactivated","__wdc","injectToKeepAliveRoot","keepAliveRoot","injected","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","directives","internalInstance","bindings","dir","arg","modifiers","mounted","updated","invokeDirectiveHook","oldBindings","binding","createAppContext","app","isNativeTag","performance","globalProperties","optionMergeStrategies","isCustomElement","components","provides","uid","createAppAPI","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","version","plugin","install","mixin","directive","rootContainer","isHydrate","__vue_app__","hasMismatch","isSVGContainer","namespaceURI","tagName","isComment","nodeType","createHydrationFunctions","mt","mountComponent","patchProp","nextSibling","insert","createComment","firstChild","isFragmentStart","onMismatch","handleMismatch","ref","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","hydrateComponent","loadAsync","__asyncLoader","locateClosingAsyncAnchor","hydrateChildren","setRef","dynamicChildren","onClick","vnodeHooks","onVnodeBeforeMount","innerHTML","textContent","parentVNode","l","isFragment","end","initFeatureFlags","prodEffectOptions","rawRef","oldRawRef","r","oldRef","refs","doSet","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","forcePatchProp","hostForcePatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","process","internals","mountElement","patchElement","scopeId","is","mountChildren","unmountChildren","needCallTransitionHooks","beforeEnter","enter","treeOwnerId","__scopeId","start","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","patchProps","class","style","prev","areChildrenSVG","patchBlockChildren","patchChildren","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","registerDep","updateComponentPreRender","bu","u","originNext","nextTree","prevTree","bm","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","moveType","needTransition","leave","performLeave","shouldInvokeDirs","onVnodeBeforeUnmount","unmountComponent","isTeleportDisabled","removeFragment","performRemove","bum","_vnode","mc","pc","pbc","createApp","shallow","ch1","ch2","arr","c","arrI","isTeleport","__isTeleport","disabled","resolveTarget","select","targetSelector","to","TeleportImpl","querySelector","mainAnchor","targetAnchor","mount","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","COMPONENTS","DIRECTIVES","resolveComponent","resolveAsset","NULL_DYNAMIC_COMPONENT","Symbol","resolveDynamicComponent","resolveDirective","warnMissing","selfName","registry","blockStack","currentBlock","disableTracking","vnodeArgsTransformer","shouldTrack","setBlockTracking","__v_isVNode","transformVNodeArgs","transformer","normalizeKey","normalizeRef","_createVNode","isBlockNode","cloned","normalizeChildren","isClassComponent","__vccOpts","klass","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createStaticVNode","numberOfNodes","createCommentVNode","asBlock","slotFlag","toMerge","existing","incoming","provide","parentProvides","inject","treatDefaultAsFactory","isInBeforeCreate","applyOptions","deferredData","deferredWatch","deferredProvide","extendsOptions","dataOptions","computed","computedOptions","methods","watchOptions","provideOptions","injectOptions","beforeMount","beforeUpdate","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","globalMixins","callSyncHook","applyMixins","from","methodHandler","dataFn","resolveData","defineProperty","enumerable","configurable","createWatcher","callHookFromMixins","base","callHookFromExtends","selfHook","baseHook","chainedMixins","createPathGetter","path","segments","resolveMergedOptions","__merged","mergeOptions","strats","publicPropertiesMap","$","$el","$data","$props","$attrs","$slots","$refs","$parent","$root","$emit","$options","$forceUpdate","$nextTick","$watch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","setupContext","bc","rtg","rtc","compile","setupResult","setupStatefulComponent","Proxy","setup","createSetupContext","resolvedResult","finishComponentSetup","registerRuntimeCompiler","_compile","template","delimiters","_rc","classifyRE","classify","str","toUpperCase","__file","inferFromRegistry","getterOrOptions","defineComponent","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","suspensible","onError","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","Error","reject","userRetry","userFail","__esModule","toStringTag","createInnerComp","loaded","delayed","h","propsOrChildren","prototype","ssrContextKey","useSSRContext","initCustomFormatter","renderList","renderItem","iterator","toHandlers","obj","createSlots","dynamicSlots","ssrUtils"],"mappings":"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","file":"js/chunk-vendors~5ea1a303.602c7ed5.js","sourcesContent":["import { pauseTracking, resetTracking, isRef, toRaw, shallowReactive, trigger, isReactive, effect, stop, isProxy, reactive, shallowReadonly, track, proxyRefs, computed as computed$1, ref, isReadonly } from '@vue/reactivity';\nexport { customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, def, isReservedProp, EMPTY_ARR, isObject, capitalize, toRawType, makeMap, remove, NOOP, hasChanged, isSet, isMap, invokeArrayFns, NO, getGlobalThis, normalizeClass, normalizeStyle, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-next'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n queue.push(job);\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > -1) {\r\n queue[i] = null;\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex]);\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex]);\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n // Jobs can never be null before flush starts, since they are only invalidated\r\n // during execution of another flushed job.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkRecursiveUpdates(seen, job);\r\n }\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length || pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n throw new Error(`Maximum recursive updates exceeded. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\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') && (true )) {\r\n const globalObject = typeof global !== 'undefined'\r\n ? global\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : {};\r\n globalObject.__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);\r\n record = map.get(id);\r\n }\r\n record.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).delete(instance);\r\n}\r\nfunction createRecord(id) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, new Set());\r\n return true;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record).forEach(instance => {\r\n if (newRender) {\r\n instance.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 // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record).forEach(instance => {\r\n const comp = instance.type;\r\n if (!hmrDirtyComponents.has(comp)) {\r\n // 1. Update existing comp definition to match new one\r\n newComp = isClassComponent(newComp) ? newComp.__vccOpts : newComp;\r\n extend(comp, newComp);\r\n for (const key in comp) {\r\n if (!(key in newComp)) {\r\n delete comp[key];\r\n }\r\n }\r\n // 2. Mark component dirty. This forces the renderer to replace the component\r\n // on patch.\r\n hmrDirtyComponents.add(comp);\r\n // 3. Make sure to unmark the component after the reload.\r\n queuePostFlushCb(() => {\r\n hmrDirtyComponents.delete(comp);\r\n });\r\n }\r\n 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 }\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}\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\nfunction setDevtoolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n // TODO queue if devtools is undefined\r\n if (!devtools)\r\n return;\r\n devtools.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 if (!devtools)\r\n return;\r\n devtools.emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = /*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n if (!devtools)\r\n return;\r\n devtools.emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n if (!devtools)\r\n return;\r\n devtools.emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit(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 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 // convert handler name to camelCase. See issue #2249\r\n let handlerName = toHandlerKey(camelize(event));\r\n let handler = props[handlerName];\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 handlerName = toHandlerKey(hyphenate(event));\r\n handler = props[handlerName];\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 = {})[handlerName] = true;\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n if (!appContext.deopt && comp.__emits !== undefined) {\r\n return comp.__emits;\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 hasExtends = true;\r\n extend(normalized, normalizeEmitsOptions(raw, appContext, true));\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 return (comp.__emits = 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 return (comp.__emits = 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.replace(/Once$/, '');\r\n return (hasOwn(options, key[2].toLowerCase() + key.slice(3)) ||\r\n hasOwn(options, key.slice(2)));\r\n}\n\n// mark the current rendering instance for asset resolution (e.g.\r\n// resolveComponent, resolveDirective) during render\r\nlet currentRenderingInstance = null;\r\nfunction setCurrentRenderingInstance(instance) {\r\n currentRenderingInstance = instance;\r\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\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 } = instance;\r\n let result;\r\n currentRenderingInstance = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n let fallthroughAttrs;\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 // 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 ;\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (Component.inheritAttrs !== false && fallthroughAttrs) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & 1 /* ELEMENT */ ||\r\n shapeFlag & 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 }\r\n catch (err) {\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n currentRenderingInstance = null;\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 if (vnode.type !== Fragment) {\r\n return [vnode, undefined];\r\n }\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\n/**\r\n * dev only\r\n */\r\nfunction filterSingleRoot(children) {\r\n const filtered = children.filter(child => {\r\n return !(isVNode(child) &&\r\n child.type === Comment &&\r\n child.children !== 'v-if');\r\n });\r\n return filtered.length === 1 && isVNode(filtered[0]) ? filtered[0] : null;\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 */ ||\r\n vnode.shapeFlag & 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 // 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, 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, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = ( SuspenseImpl\r\n );\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, 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, 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);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\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);\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, { 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);\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);\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);\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);\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);\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);\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);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n const onPending = n2.props && n2.props.onPending;\r\n if (isFunction(onPending)) {\r\n onPending();\r\n }\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);\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, 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 const onResolve = vnode.props && vnode.props.onResolve;\r\n if (isFunction(onResolve)) {\r\n onResolve();\r\n }\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 const onFallback = vnode.props && vnode.props.onFallback;\r\n if (isFunction(onFallback)) {\r\n onFallback();\r\n }\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);\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 // 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 suspense.isInFallback = true;\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 if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n suspense.deps++;\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 suspense.deps--;\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);\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 if (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, 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, 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, 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 let content;\r\n let fallback;\r\n if (shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n content = normalizeSuspenseSlot(children.default);\r\n fallback = normalizeSuspenseSlot(children.fallback);\r\n }\r\n else {\r\n content = normalizeSuspenseSlot(children);\r\n fallback = normalizeVNode(null);\r\n }\r\n return {\r\n content,\r\n fallback\r\n };\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n if (isFunction(s)) {\r\n s = s();\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 return normalizeVNode(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\nlet isRenderingCompiledSlot = 0;\r\nconst setCompiledSlotRendering = (n) => (isRenderingCompiledSlot += n);\r\n/**\r\n * Compiler runtime helper for rendering ``\r\n * @private\r\n */\r\nfunction renderSlot(slots, name, props = {}, \r\n// this is not a user-facing function, so the fallback is always generated by\r\n// the compiler and guaranteed to be a function returning an array\r\nfallback) {\r\n let slot = slots[name];\r\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\r\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\r\n `function. You need to mark this component with $dynamic-slots in the ` +\r\n `parent template.`);\r\n slot = () => [];\r\n }\r\n // a compiled slot disables block tracking by default to avoid manual\r\n // invocation interfering with template-based block tracking, but in\r\n // `renderSlot` we can be sure that it's template-based so we can force\r\n // enable it.\r\n isRenderingCompiledSlot++;\r\n const rendered = (openBlock(),\r\n createBlock(Fragment, { key: props.key }, slot ? slot(props) : fallback ? fallback() : [], slots._ === 1 /* STABLE */\r\n ? 64 /* STABLE_FRAGMENT */\r\n : -2 /* BAIL */));\r\n isRenderingCompiledSlot--;\r\n return rendered;\r\n}\n\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance) {\r\n if (!ctx)\r\n return fn;\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 need to push a null block to\r\n // avoid that. This isn't necessary if rendering a compiled ``.\r\n if (!isRenderingCompiledSlot) {\r\n openBlock(true /* null block that disables tracking */);\r\n }\r\n const owner = currentRenderingInstance;\r\n setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(owner);\r\n if (!isRenderingCompiledSlot) {\r\n closeBlock();\r\n }\r\n return res;\r\n };\r\n renderFnWithContext._c = true;\r\n return renderFnWithContext;\r\n}\n\n// SFC scoped style ID management.\r\nlet currentScopeId = null;\r\nconst scopeIdStack = [];\r\n/**\r\n * @private\r\n */\r\nfunction pushScopeId(id) {\r\n scopeIdStack.push((currentScopeId = id));\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n scopeIdStack.pop();\r\n currentScopeId = scopeIdStack[scopeIdStack.length - 1] || null;\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction withScopeId(id) {\r\n return ((fn) => withCtx(function () {\r\n pushScopeId(id);\r\n const res = fn.apply(this, arguments);\r\n popScopeId();\r\n return res;\r\n }));\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 setFullProps(instance, rawProps, props, attrs);\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(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 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 const 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 attrs[key] = value;\r\n }\r\n else {\r\n const camelizedKey = camelize(key);\r\n props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance);\r\n }\r\n }\r\n else {\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // full props update.\r\n setFullProps(instance, rawProps, props, attrs);\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, rawProps || EMPTY_OBJ, key, undefined, instance);\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 }\r\n }\r\n }\r\n }\r\n // trigger updates for $attrs in case it's used in component slots\r\n trigger(instance, \"set\" /* SET */, '$attrs');\r\n if ((process.env.NODE_ENV !== 'production') && rawProps) {\r\n validateProps(props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n if (rawProps) {\r\n for (const key in rawProps) {\r\n const value = rawProps[key];\r\n // key, ref are reserved and never passed down\r\n if (isReservedProp(key)) {\r\n continue;\r\n }\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 props[camelKey] = value;\r\n }\r\n else if (!isEmitListener(instance.emitsOptions, key)) {\r\n // Any non-declared (either as a prop or an emitted event) props are put\r\n // into a separate `attrs` object for spreading. Make sure to preserve\r\n // original key casing\r\n attrs[key] = value;\r\n }\r\n }\r\n }\r\n if (needCastKeys) {\r\n const rawCurrentProps = toRaw(props);\r\n for (let i = 0; i < needCastKeys.length; i++) {\r\n const key = needCastKeys[i];\r\n props[key] = resolvePropValue(options, rawCurrentProps, key, rawCurrentProps[key], instance);\r\n }\r\n }\r\n}\r\nfunction resolvePropValue(options, props, key, value, instance) {\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 setCurrentInstance(instance);\r\n value = defaultValue(props);\r\n setCurrentInstance(null);\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 (!hasOwn(props, key) && !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 if (!appContext.deopt && comp.__props) {\r\n return comp.__props;\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 return (comp.__props = 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 return (comp.__props = [normalized, needCastKeys]);\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] : '';\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 for (let i = 0, len = expectedTypes.length; i < len; i++) {\r\n if (isSameType(expectedTypes[i], type)) {\r\n return i;\r\n }\r\n }\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(props, instance) {\r\n const rawValues = 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, rawValues[key], opt, !hasOwn(rawValues, 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');\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 {\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\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 setCurrentInstance(null);\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\r\n!isInSSRComponentSetup && 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 onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nconst onErrorCaptured = (hook, target = currentInstance) => {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n};\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ, instance = currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n let getter;\r\n let forceTrigger = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = !!source._shallow;\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onInvalidate]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n const onInvalidate = (fn) => {\r\n cleanup = runner.options.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n let oldValue = isArray(source) ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!runner.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = runner();\r\n if (deep || forceTrigger || hasChanged(newValue, oldValue)) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onInvalidate\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n runner();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job;\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => {\r\n if (!instance || instance.isMounted) {\r\n queuePreFlushCb(job);\r\n }\r\n else {\r\n // with 'pre' option, the first call must happen before\r\n // the component is mounted so it is called synchronously.\r\n job();\r\n }\r\n };\r\n }\r\n const runner = effect(getter, {\r\n lazy: true,\r\n onTrack,\r\n onTrigger,\r\n scheduler\r\n });\r\n recordInstanceBoundEffect(runner);\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = runner();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(runner, instance && instance.suspense);\r\n }\r\n else {\r\n runner();\r\n }\r\n return () => {\r\n stop(runner);\r\n if (instance) {\r\n remove(instance.effects, runner);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, cb, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? () => publicThis[source]\r\n : source.bind(publicThis);\r\n return doWatch(getter, cb.bind(publicThis), options, this);\r\n}\r\nfunction traverse(value, seen = new Set()) {\r\n if (!isObject(value) || seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\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') && mode && !['in-out', 'out-in', 'default'].includes(mode)) {\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') {\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-top\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\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 inheritRef: 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 cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n const instance = getCurrentInstance();\r\n const parentSuspense = instance.suspense;\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 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, 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 };\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 };\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 = getName(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' });\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 const name = getName(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 getName(comp) {\r\n return comp.displayName || comp.name;\r\n}\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 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\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) => withCtx((props) => {\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(props));\r\n}, ctx);\r\nconst normalizeObjectSlots = (rawSlots, slots) => {\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 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') && !isKeepAlive(instance.vnode)) {\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 instance.slots = 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) => {\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 (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 }\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');\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 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 const hook = binding.dir[name];\r\n if (hook) {\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 }\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 isCustomElement: NO,\r\n errorHandler: undefined,\r\n warnHandler: undefined\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: Object.create(null)\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 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 // global mixin with props/emits de-optimizes props/emits\r\n // normalization caching.\r\n if (mixin.props || mixin.emits) {\r\n context.deopt = true;\r\n }\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) {\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);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer);\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 devtoolsInitApp(app, version);\r\n }\r\n return 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 devtoolsUnmountApp(app);\r\n }\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\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 ((process.env.NODE_ENV !== 'production') && !container.hasChildNodes()) {\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 return;\r\n }\r\n hasMismatch = false;\r\n hydrateNode(container.firstChild, vnode, 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, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, 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, 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 !== node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, 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 const container = parentNode(node);\r\n const hydrateComponent = () => {\r\n mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);\r\n };\r\n // async component\r\n const loadAsync = vnode.type.__asyncLoader;\r\n if (loadAsync) {\r\n loadAsync().then(hydrateComponent);\r\n }\r\n else {\r\n hydrateComponent();\r\n }\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 }\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, 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)), 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 && parentComponent) {\r\n setRef(ref, null, parentComponent, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { props, patchFlag, shapeFlag, dirs } = vnode;\r\n // skip props & children if this is hoisted static nodes\r\n if (patchFlag !== -1 /* HOISTED */) {\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'created');\r\n }\r\n // props\r\n if (props) {\r\n if (!optimized ||\r\n (patchFlag & 16 /* FULL_PROPS */ ||\r\n patchFlag & 32 /* HYDRATE_EVENTS */)) {\r\n for (const key in props) {\r\n if (!isReservedProp(key) && isOn(key)) {\r\n patchProp(el, key, null, props[key]);\r\n }\r\n }\r\n }\r\n else if (props.onClick) {\r\n // Fast path for click listeners (which is most often) to avoid\r\n // iterating through props.\r\n patchProp(el, 'onClick', null, props.onClick);\r\n }\r\n }\r\n // vnode / directive hooks\r\n let vnodeHooks;\r\n if ((vnodeHooks = props && props.onVnodeBeforeMount)) {\r\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n }\r\n if (dirs) {\r\n invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');\r\n }\r\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {\r\n queueEffectWithSuspense(() => {\r\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\r\n dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');\r\n }, parentSuspense);\r\n }\r\n // children\r\n if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&\r\n // skip if element has innerHTML / textContent\r\n !(props && (props.innerHTML || props.textContent))) {\r\n let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, optimized);\r\n let hasWarned = false;\r\n while (next) {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${vnode.type}>: ` +\r\n `server rendered element contains more child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // The SSRed DOM contains more nodes than it should. Remove them.\r\n const cur = next;\r\n next = next.nextSibling;\r\n remove(cur);\r\n }\r\n }\r\n else if (shapeFlag & 8 /* TEXT_CHILDREN */) {\r\n if (el.textContent !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text content mismatch in <${vnode.type}>:\\n` +\r\n `- Client: ${el.textContent}\\n` +\r\n `- Server: ${vnode.children}`);\r\n el.textContent = vnode.children;\r\n }\r\n }\r\n }\r\n return el.nextSibling;\r\n };\r\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, optimized) => {\r\n optimized = optimized || !!parentVNode.dynamicChildren;\r\n const children = parentVNode.children;\r\n const l = children.length;\r\n let hasWarned = false;\r\n for (let i = 0; i < l; i++) {\r\n const vnode = optimized\r\n ? children[i]\r\n : (children[i] = normalizeVNode(children[i]));\r\n if (node) {\r\n node = hydrateNode(node, vnode, parentComponent, parentSuspense, optimized);\r\n }\r\n else {\r\n hasMismatch = true;\r\n if ((process.env.NODE_ENV !== 'production') && !hasWarned) {\r\n warn(`Hydration children mismatch in <${container.tagName.toLowerCase()}>: ` +\r\n `server rendered element contains fewer child nodes than client vdom.`);\r\n hasWarned = true;\r\n }\r\n // the SSRed DOM didn't contain enough nodes. Mount the missing ones.\r\n patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container));\r\n }\r\n }\r\n return node;\r\n };\r\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, optimized) => {\r\n const container = parentNode(node);\r\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, optimized);\r\n if (next && isComment(next) && next.data === ']') {\r\n return nextSibling((vnode.anchor = next));\r\n }\r\n else {\r\n // fragment didn't hydrate successfully, since we didn't get a end anchor\r\n // back. This should have led to node/children mismatch warnings.\r\n hasMismatch = true;\r\n // since the anchor is missing, we need to create one and insert it\r\n insert((vnode.anchor = createComment(`]`)), container, next);\r\n return next;\r\n }\r\n };\r\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, isFragment) => {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration node mismatch:\\n- Client vnode:`, vnode.type, `\\n- Server rendered DOM:`, node, node.nodeType === 3 /* TEXT */\r\n ? `(text)`\r\n : isComment(node) && node.data === '['\r\n ? `(start of fragment)`\r\n : ``);\r\n vnode.el = null;\r\n if (isFragment) {\r\n // remove excessive fragment nodes\r\n const end = locateClosingAsyncAnchor(node);\r\n while (true) {\r\n const next = nextSibling(node);\r\n if (next && next !== end) {\r\n remove(next);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n const next = nextSibling(node);\r\n const container = parentNode(node);\r\n remove(node);\r\n patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container));\r\n return next;\r\n };\r\n const locateClosingAsyncAnchor = (node) => {\r\n let match = 0;\r\n while (node) {\r\n node = nextSibling(node);\r\n if (node && isComment(node)) {\r\n if (node.data === '[')\r\n match++;\r\n if (node.data === ']') {\r\n if (match === 0) {\r\n return nextSibling(node);\r\n }\r\n else {\r\n match--;\r\n }\r\n }\r\n }\r\n }\r\n return node;\r\n };\r\n return [hydrate, hydrateNode];\r\n}\n\nlet supported;\r\nlet perf;\r\nfunction startMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n perf.mark(`vue-${type}-${instance.uid}`);\r\n }\r\n}\r\nfunction endMeasure(instance, type) {\r\n if (instance.appContext.config.performance && isSupported()) {\r\n const startTag = `vue-${type}-${instance.uid}`;\r\n const endTag = startTag + `:end`;\r\n perf.mark(endTag);\r\n perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n }\r\n}\r\nfunction isSupported() {\r\n if (supported !== undefined) {\r\n return supported;\r\n }\r\n /* eslint-disable no-restricted-globals */\r\n if (typeof window !== 'undefined' && window.performance) {\r\n supported = true;\r\n perf = window.performance;\r\n }\r\n else {\r\n supported = false;\r\n }\r\n /* eslint-enable no-restricted-globals */\r\n return supported;\r\n}\n\n/**\r\n * This is only called in esm-bundler builds.\r\n * It is called when a renderer is created, in `baseCreateRenderer` so that\r\n * importing runtime-core is side-effects free.\r\n *\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_OPTIONS_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_OPTIONS_API__ = true;\r\n }\r\n if (typeof __VUE_PROD_DEVTOOLS__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of Vue. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle. ` +\r\n `See http://link.vuejs.org/feature-flags for more details.`);\r\n }\r\n}\n\nconst prodEffectOptions = {\r\n scheduler: queueJob,\r\n // #1801, #2043 component render effects should allow recursive updates\r\n allowRecurse: true\r\n};\r\nfunction createDevEffectOptions(instance) {\r\n return {\r\n scheduler: queueJob,\r\n allowRecurse: true,\r\n onTrack: instance.rtc ? e => invokeArrayFns(instance.rtc, e) : void 0,\r\n onTrigger: instance.rtg ? e => invokeArrayFns(instance.rtg, e) : void 0\r\n };\r\n}\r\nconst queuePostRenderEffect = queueEffectWithSuspense\r\n ;\r\nconst setRef = (rawRef, oldRawRef, parentComponent, parentSuspense, vnode) => {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentComponent, parentSuspense, vnode));\r\n return;\r\n }\r\n let value;\r\n if (!vnode) {\r\n value = null;\r\n }\r\n else {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n value = vnode.component.proxy;\r\n }\r\n else {\r\n value = vnode.el;\r\n }\r\n }\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 // 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 (isString(ref)) {\r\n const doSet = () => {\r\n refs[ref] = value;\r\n if (hasOwn(setupState, ref)) {\r\n setupState[ref] = value;\r\n }\r\n };\r\n // #1789: for non-null values, set them after render\r\n // null values means this is unmount and it should not overwrite another\r\n // ref with the same key\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 (isRef(ref)) {\r\n const doSet = () => {\r\n ref.value = value;\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 (isFunction(ref)) {\r\n callWithErrorHandling(ref, parentComponent, 12 /* FUNCTION_REF */, [\r\n value,\r\n refs\r\n ]);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid template ref type:', value, `(${typeof value})`);\r\n }\r\n};\r\n/**\r\n * The createRenderer function accepts two generic arguments:\r\n * HostNode and HostElement, corresponding to Node and Element types in the\r\n * host environment. For example, for runtime-dom, HostNode would be the DOM\r\n * `Node` interface and HostElement would be the DOM `Element` interface.\r\n *\r\n * Custom renderers can pass in the platform specific types like this:\r\n *\r\n * ``` js\r\n * const { render, createApp } = createRenderer({\r\n * patchProp,\r\n * ...nodeOps\r\n * })\r\n * ```\r\n */\r\nfunction createRenderer(options) {\r\n return baseCreateRenderer(options);\r\n}\r\n// Separate API for creating hydration-enabled renderer.\r\n// Hydration logic is only used when calling this function, making it\r\n// tree-shakable.\r\nfunction createHydrationRenderer(options) {\r\n return baseCreateRenderer(options, createHydrationFunctions);\r\n}\r\n// implementation\r\nfunction baseCreateRenderer(options, createHydrationFns) {\r\n // compile-time feature flags check\r\n {\r\n initFeatureFlags();\r\n }\r\n const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, forcePatchProp: hostForcePatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;\r\n // Note: functions inside this closure should use `const xxx = () => {}`\r\n // style in order to prevent being inlined by minifiers.\r\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, optimized = false) => {\r\n // patching & not same type, unmount old tree\r\n if (n1 && !isSameVNodeType(n1, n2)) {\r\n anchor = getNextHostNode(n1);\r\n unmount(n1, parentComponent, parentSuspense, true);\r\n n1 = null;\r\n }\r\n if (n2.patchFlag === -2 /* BAIL */) {\r\n optimized = false;\r\n n2.dynamicChildren = null;\r\n }\r\n const { type, ref, shapeFlag } = n2;\r\n switch (type) {\r\n case Text:\r\n processText(n1, n2, container, anchor);\r\n break;\r\n case Comment:\r\n processCommentNode(n1, n2, container, anchor);\r\n break;\r\n case Static:\r\n if (n1 == null) {\r\n mountStaticNode(n2, container, anchor, isSVG);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n patchStaticNode(n1, n2, container, isSVG);\r\n }\r\n break;\r\n case Fragment:\r\n processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if ( shapeFlag & 128 /* SUSPENSE */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized, internals);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid VNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n // set ref\r\n if (ref != null && parentComponent) {\r\n setRef(ref, n1 && n1.ref, parentComponent, parentSuspense, n2);\r\n }\r\n };\r\n const processText = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);\r\n }\r\n else {\r\n const el = (n2.el = n1.el);\r\n if (n2.children !== n1.children) {\r\n hostSetText(el, n2.children);\r\n }\r\n }\r\n };\r\n const processCommentNode = (n1, n2, container, anchor) => {\r\n if (n1 == null) {\r\n hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);\r\n }\r\n else {\r\n // there's no support for dynamic comments\r\n n2.el = n1.el;\r\n }\r\n };\r\n const mountStaticNode = (n2, container, anchor, isSVG) => {\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const patchStaticNode = (n1, n2, container, isSVG) => {\r\n // static nodes are only patched during dev for HMR\r\n if (n2.children !== n1.children) {\r\n const anchor = hostNextSibling(n1.anchor);\r\n // remove existing\r\n removeStaticNode(n1);\r\n [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);\r\n }\r\n else {\r\n n2.el = n1.el;\r\n n2.anchor = n1.anchor;\r\n }\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const moveStaticNode = (vnode, container, anchor) => {\r\n let cur = vnode.el;\r\n const end = vnode.anchor;\r\n while (cur && cur !== end) {\r\n const next = hostNextSibling(cur);\r\n hostInsert(cur, container, anchor);\r\n cur = next;\r\n }\r\n hostInsert(end, container, anchor);\r\n };\r\n /**\r\n * Dev / HMR only\r\n */\r\n const removeStaticNode = (vnode) => {\r\n let cur = vnode.el;\r\n while (cur && cur !== vnode.anchor) {\r\n const next = hostNextSibling(cur);\r\n hostRemove(cur);\r\n cur = next;\r\n }\r\n hostRemove(vnode.anchor);\r\n };\r\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n isSVG = isSVG || n2.type === 'svg';\r\n if (n1 == null) {\r\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n else {\r\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, optimized);\r\n }\r\n };\r\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {\r\n let el;\r\n let vnodeHook;\r\n const { type, props, shapeFlag, transition, scopeId, patchFlag, dirs } = vnode;\r\n if (!(process.env.NODE_ENV !== 'production') &&\r\n vnode.el &&\r\n hostCloneNode !== undefined &&\r\n patchFlag === -1 /* HOISTED */) {\r\n // If a vnode has non-null el, it means it's being reused.\r\n // Only static vnodes can be reused, so its mounted DOM nodes should be\r\n // exactly the same, and we can simply do a clone here.\r\n // only do this in production since cloned trees cannot be HMR updated.\r\n el = vnode.el = hostCloneNode(vnode.el);\r\n }\r\n else {\r\n el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is);\r\n // mount children first, since some props may rely on child content\r\n // being already rendered, e.g. `