{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm-bundler.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","aFunction","fn","that","length","undefined","call","a","b","c","apply","arguments","isObject","slice","factories","construct","C","argsLength","args","list","i","Function","join","bind","this","partArgs","boundFunction","concat","prototype","toIndexedObject","$getOwnPropertyNames","f","toString","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","O","P","fails","createElement","defineProperty","get","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","arrayPush","push","min","Math","MAX_UINT32","SPLIT","nativeSplit","maybeCallNative","internalSplit","split","separator","limit","string","lim","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","RegExp","source","index","splitter","regexp","res","done","value","rx","S","unicodeMatching","p","q","A","e","z","classof","R","exec","result","TypeError","global","DOMIterables","forEach","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","Constructor","name","getBuiltIn","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","next","Array","from","SKIP_CLOSING","ITERATION_SUPPORT","object","userAgent","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","isArrayIteratorMethod","getIteratorMethod","iteratorClose","Result","stopped","iterable","unboundFunction","options","iterator","iterFn","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","toInteger","max","integer","redefine","setGlobal","copyConstructorProperties","isForced","FORCED","target","key","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","internalObjectKeys","enumBugKeys","hiddenKeys","definePropertyModule","CONSTRUCTOR_NAME","configurable","_setPrototypeOf","o","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","writable","_arrayLikeToArray","arr","len","arr2","_arrayWithoutHoles","isArray","arrayLikeToArray","_iterableToArray","iter","Symbol","_unsupportedIterableToArray","minLen","n","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","returnMethod","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Reflect","Proxy","valueOf","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_typeof","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","NewTarget","possibleConstructorReturn","defer","channel","port","html","IS_IOS","IS_NODE","location","set","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","id","hasOwnProperty","runner","listener","event","data","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","version","versions","v8","$","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","Iterators","objectKeys","defineProperties","Properties","keys","charAt","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","getterFor","iterated","type","point","state","setupDevtoolsPlugin","pluginDescriptor","setupFn","hook","emit","__VUE_DEVTOOLS_PLUGINS__","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","console","MATCH","defaultConstructor","getOwnPropertySymbols","symbol","nativeConstruct","NEW_TARGET_BUG","F","ARGS_BUG","Target","newTarget","$args","proto","instance","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","$filter","filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","createProperty","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","argument","hasOwn","IS_PURE","store","mode","copyright","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","bitmap","enumerable","collection","collectionStrong","init","IndexedObject","$assign","assign","B","alphabet","chr","T","j","CONVERT_TO_STRING","pos","first","second","position","size","charCodeAt","codeAt","redefineAll","anInstance","iterate","setSpecies","fastKey","internalStateGetterFor","getConstructor","wrapper","IS_MAP","ADDER","last","define","previous","entry","getEntry","removed","prev","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","kind","originalArray","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","hasSymbol","toStringTag","PolySymbol","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isBrowser","isESModule","obj","__esModule","applyToParams","params","newParams","map","noop","TRAILING_SLASH_RE","removeTrailingSlash","path","replace","parseURL","parseQuery","currentLocation","query","searchString","hash","searchPos","hashPos","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","pathname","base","toLowerCase","isSameRouteLocation","aLastIndex","matched","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","every","to","startsWith","fromSegments","toSegments","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","document","querySelector","getAttribute","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","documentElement","getBoundingClientRect","elRect","behavior","left","top","computeScrollPosition","pageXOffset","pageYOffset","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getElementById","style","scrollTo","getScrollKey","delta","history","scrollPositions","Map","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","delete","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","listeners","teardowns","pauseState","popStateHandler","fromState","pop","direction","forward","back","unknown","pauseListeners","listen","callback","teardown","splice","beforeUnloadListener","replaceState","destroy","removeEventListener","buildState","current","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","err","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","meta","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","Error","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","strict","start","end","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","pattern","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","re","message","subPattern","parse","stringify","avoidDuplicatedSlash","endsWith","param","text","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","parent","parser","matcher","children","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","mergeOptions","normalizedRecords","aliases","components","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","resolve","paramsFromLocation","k","find","m","parentMatcher","unshift","mergeMetaFields","redirect","beforeEnter","props","normalizeRecordProps","instances","leaveGuards","Set","updateGuards","enterCallbacks","default","component","propsObject","reduce","defaults","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","decodeURIComponent","hasLeadingIM","searchParams","searchParam","eqPos","currentValue","values","v","normalizeQuery","normalizedQuery","useCallbacks","handlers","handler","reset","guardToPromiseFn","guard","enterCallbackArray","Promise","reject","valid","guardReturn","guardCall","then","catch","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","__vccOpts","componentPromise","resolved","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","findIndex","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","href","RouterLinkImpl","required","activeClass","exactActiveClass","custom","ariaCurrentValue","slots","link","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","onClick","class","RouterLink","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","preventDefault","outer","inner","innerValue","outerValue","some","propClass","globalClass","defaultClass","RouterViewImpl","inheritAttrs","attrs","injectedRoute","routeToDisplay","depth","matchedRouteRef","viewRef","oldInstance","oldName","flush","matchedRoute","ViewComponent","currentName","normalizeSlot","Component","routePropsOption","routeProps","onVnodeUnmounted","vnode","isUnmounted","ref","slot","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","reverse","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","markAsReady","removeHistoryListener","setupListeners","_from","info","ready","readyHandlers","errorHandlers","isReady","started","installedApps","beforeEach","beforeResolve","afterEach","onError","app","config","globalProperties","$router","reactiveRoute","provide","unmountApp","unmount","promise","recordFrom","recordTo","InternalMetadataModule","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","nativeMethod","REPLACE","entries","REQUIRED","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","inspectSource","enforceInternalState","TEMPLATE","unsafe","simple","Wrapper","NewTargetPrototype","wrappedWellKnownSymbolModule","NAME","targetMap","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","isEffect","_isEffect","raw","effect","createReactiveEffect","lazy","active","onStop","uid","scheduler","enableTracking","resetTracking","allowRecurse","deps","shouldTrack","trackStack","pauseTracking","track","depsMap","dep","trigger","newValue","oldValue","oldTarget","effects","effectsToAdd","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","method","toRaw","l","createSetter","shallowSet","hadKey","Number","deleteProperty","ownKeys","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toReactive","toReadonly","toShallow","getProto","get$1","isShallow","rawTarget","rawKey","wrap","has$1","set$1","deleteEntry","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","instrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","convert","val","r","__v_isRef","createRef","shallowRef","_rawValue","_shallow","_value","newVal","rawValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","ObjectRefImpl","_object","_key","toRef","ComputedRefImpl","getter","_setter","_dirty","getterOrOptions","setter","callWithErrorHandling","handleError","callWithAsyncErrorHandling","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","appContext","errorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","findInsertionIndex","job","jobId","getId","middle","middleJobId","queueJob","queueFlush","flushJobs","invalidateJob","queueCb","cb","activeQueue","pendingQueue","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","seen","parentJob","flushPostFlushCbs","deduped","sort","Infinity","rawArgs","isModelListener","modelArg","modifiersKey","number","trim","handlerName","onceHandler","emitted","normalizeEmitsOptions","asMixin","deopt","__emits","emits","normalized","hasExtends","extendEmits","normalizedFromExtend","mixins","extends","isEmitListener","isRenderingCompiledSlot","setCompiledSlotRendering","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","renderFnWithContext","openBlock","prevInstance","closeBlock","_c","renderComponentRoot","withProxy","propsOptions","render","renderCache","setupState","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","root","filterModelListeners","cloneVNode","dirs","transition","blockStack","createVNode","Comment","filterSingleRoot","singleRoot","child","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","normalizeSuspenseChildren","content","fallback","normalizeSuspenseSlot","s","singleChild","queueEffectWithSuspense","suspense","pendingBranch","initProps","rawProps","isStateful","isSSR","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","camelKey","opt","hasDefault","defaultValue","setCurrentInstance","normalizePropsOptions","__props","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","t","injectHook","currentInstance","prepend","hooks","wrappedHook","__weh","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onRenderTriggered","onRenderTracked","onErrorCaptured","INITIAL_WATCHER_VALUE","watch","doWatch","immediate","deep","onTrack","onTrigger","cleanup","forceTrigger","traverse","onInvalidate","baseGetter","queuePostRenderEffect","isMounted","recordInstanceBoundEffect","instanceWatch","publicThis","useTransitionState","isLeaving","isUnmounting","leavingVNodes","TransitionHookValidator","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","isSameVNodeType","leavingHooks","afterLeave","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","leavingVNode","afterHook","cancelHook","_enterCb","cancelled","remove","isKeepAlive","ssContent","clone","ssFallback","keepComment","ret","keyedFragmentCount","Fragment","__isKeepAlive","matches","onActivated","registerKeepAliveHook","onDeactivated","__wdc","isDeactivated","injectToKeepAliveRoot","keepAliveRoot","injected","resetShapeFlag","getInnerChild","isInternalKey","normalizeSlotValue","rawSlot","normalizeObjectSlots","rawSlots","_ctx","normalizeVNodeSlots","initSlots","_","updateSlots","needDeletionCheck","deletionComparisonTarget","invokeDirectiveHook","bindings","oldBindings","binding","dir","createAppContext","isNativeTag","performance","optionMergeStrategies","isCustomElement","warnHandler","directives","provides","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","_uid","_component","_props","_container","_context","plugin","install","mixin","directive","rootContainer","isHydrate","isSVG","__vue_app__","initFeatureFlags","defineComponent","setup","isAsyncWrapper","__asyncLoader","prodEffectOptions","setRef","rawRef","oldRawRef","parentSuspense","exposed","owner","oldRef","refs","doSet","createRenderer","baseCreateRenderer","createHydrationFns","insert","hostInsert","hostRemove","patchProp","hostPatchProp","forcePatchProp","hostForcePatchProp","hostCreateElement","createText","hostCreateText","createComment","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","parentNode","hostParentNode","nextSibling","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","getNextHostNode","dynamicChildren","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","vnodeHook","is","mountChildren","unmountChildren","onVnodeBeforeMount","invokeVNodeHook","scopeId","needCallTransitionHooks","onVnodeMounted","enter","parentVNode","cloneIfMounted","oldProps","newProps","onVnodeBeforeUpdate","patchProps","areChildrenSVG","patchBlockChildren","patchChildren","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","activate","mountComponent","updateComponent","initialVNode","createComponentInstance","renderer","setupComponent","asyncDep","registerDep","setupRenderEffect","placeholder","asyncResolved","updateComponentPreRender","bu","u","originNext","nextTree","prevTree","bm","hydrateNode","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","move","moveType","needTransition","leave","performLeave","doRemove","deactivate","shouldInvokeDirs","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","bum","um","suspenseId","pendingId","_vnode","mt","mc","pc","pbc","createApp","ch1","ch2","arrI","isTeleport","__isTeleport","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","warnMissing","selfName","getComponentName","registry","currentBlock","disableTracking","createBlock","__v_isVNode","normalizeKey","normalizeRef","_createVNode","isBlockNode","cloned","normalizeChildren","isClassComponent","klass","targetAnchor","staticCount","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","flag","createCommentVNode","asBlock","slotFlag","toMerge","existing","incoming","parentProvides","inject","treatDefaultAsFactory","shouldCacheAccess","applyOptions","deferredData","deferredWatch","deferredProvide","extendsOptions","dataOptions","computed","computedOptions","methods","watchOptions","provideOptions","injectOptions","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","expose","globalMixins","callSyncHook","applyMixins","methodHandler","dataFn","resolveData","createWatcher","callHookWithMixinAndExtends","selfHook","createPathGetter","resolveMergedOptions","__merged","strats","getPublicInstance","isStatefulComponent","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","da","rtg","rtc","compile","setupResult","setupStatefulComponent","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","template","delimiters","_rc","displayName","h","propsOrChildren","renderList","renderItem","svgNS","doc","tempContainer","tempSVGContainer","nodeOps","insertBefore","tag","createElementNS","multiple","setAttribute","createTextNode","node","nodeValue","textContent","selector","temp","innerHTML","firstChild","patchClass","transitionClasses","_vtc","className","patchStyle","display","cssText","setStyle","removeAttribute","importantRE","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","cached","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","tagName","_getNow","Date","skipTimestampCheck","createEvent","timeStamp","ffMatch","navigator","cachedNow","getNow","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","classList","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","body","offsetHeight","rendererOptions","ensureRenderer","mount","containerOrSelector","normalizeContainer","SVGElement","Element","activeXDocument","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","close","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","src","contentWindow","open","NullProtoObject","domain","ActiveXObject","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","propertyKey","functionToString","postfix","random","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","BROKEN_CARET","NPCG_INCLUDED","PATCH","str","reCopy","charsAdded","strCopy","input","replacement","feature","detection","normalize","POLYFILL","NATIVE","arraySpeciesCreate","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","E","__decorate","decorators","desc","decorate","$defineProperty","Attributes","RE","makeMap","expectsLowerCase","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","normalizeStyle","item","isString","parseStringStyle","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","isDate","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","JSON","replacer","isMap","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","extend","toTypeString","isFunction","isSymbol","isPromise","objectToString","toRawType","isIntegerKey","parseInt","isReservedProp","cacheStringFunction","cache","hit","camelizeRE","camelize","toUpperCase","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","def","toNumber","parseFloat","isNaN","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","HIDDEN","SYMBOL","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","names","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","space","$replacer","INCORRECT_ITERATION","ceil","floor","NativePromise","promiseResolve","NON_GENERIC","real","onFinally","x","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","dotAll","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TO_STRING_TAG_SUPPORT","FunctionPrototype","FunctionPrototypeToString","nameRE","head","notify","toggle","macrotask","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","exit","observe","characterData","task","createWellKnownSymbol","withoutSetter","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","filterOut","HOOK_SETUP","preventExtensions","_defineProperties","_createClass","protoProps","staticProps","PREFERRED_STRING","SHARED","g","EXISTS","newPromiseCapability","promiseCapability","_classCallCheck","_defineProperty","enumerableOnly","symbols","_objectSpread2","getOwnPropertyDescriptors","defineGetter","defineProxy","getSuper","Ctor","superProto","getOwn","VueImpl","_this","_this$__h","__h","Props","propsMeta","PropsMixin","_this2","_super","__b","Vue","__c","_promise","dataKeys","plainData","__s","injections","Options","__o","variable","namespace","NASHORN_BUG","1","aPossiblePrototype","CORRECT_SETTER","TAG","RegExpPrototype","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","arg2","forceStringMethod","$exec","stringMethod","regexMethod","$map","check","globalThis","ArrayIteratorMethods","ArrayValues","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","addToUnscopables","ARRAY_ITERATOR","Arguments","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromiseConstructorPrototype","newGenericPromiseCapability","DISPATCH_EVENT","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","GLOBAL_CORE_JS_PROMISE","FakePromise","all","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","PromiseCapability","$$resolve","$$reject","FREEZING","METADATA","setMetadata","objectID","weakData","getWeakData","onFreeze","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","nativeSlice","fin","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList"],"mappings":"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","file":"js/chunk-vendors.87c0c165.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!(argsLength in factories)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only\n factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = slice.call(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = partArgs.concat(slice.call(arguments));\n return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n };\n if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n return boundFunction;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, UNSUPPORTED_Y);\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","import { getTarget, getDevtoolsGlobalHook } from './env';\nimport { HOOK_SETUP } from './const';\nexport * from './api';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const hook = getDevtoolsGlobalHook();\n if (hook) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const target = getTarget();\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor,\n setupFn\n });\n }\n}\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.13.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","module.exports = typeof window == 'object';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","/*!\n * vue-router v4.0.8\n * (c) 2021 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, defineComponent, reactive, watchEffect, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst PolySymbol = (name) => \r\n// vr = vue router\r\nhasSymbol\r\n ? Symbol((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' + name : name)\r\n : ((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' : '_vr_') + name;\r\n// rvlm = Router View Location Matched\r\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : 'rvlm');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : 'rvd');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router' : 'r');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'route location' : 'rl');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location' : 'rvl');\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = Array.isArray(value) ? value.map(fn) : fn(value);\r\n }\r\n return newParams;\r\n}\r\nlet noop = () => { };\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms an URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n const searchPos = location.indexOf('?');\r\n const hashPos = location.indexOf('#', searchPos > -1 ? searchPos : 0);\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n let query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non\r\n * case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || pathname.toLowerCase().indexOf(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n let aLastIndex = a.matched.length - 1;\r\n let bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (let key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return Array.isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : Array.isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return Array.isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // can't go below zero\r\n if (position === 1 || segment === '.')\r\n continue;\r\n if (segment === '..')\r\n position--;\r\n // found something that is not relative path\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n let positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n let foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // setup the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // setup the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n let currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n let historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/vue-router-next/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/vue-router-next/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (let callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g.\r\n * `file://`) or when configuring a server to handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname +\r\n * location.search` If there is a `` tag in the `head`, its value will be\r\n * ignored in favor of this parameter **but note it affects all the\r\n * history.pushState() calls**, meaning that if you use a `` tag, it's\r\n * `href` value **has to match this parameter** (ignoring anything after the\r\n * `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (base.indexOf('#') < 0)\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : 'nf');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n let score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub segment /:a-other-:b\r\n let subSegmentScore = 40 /* Segment */ +\r\n (options.sensitive ? 0.25 /* BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* Static */;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (Array.isArray(param) && !repeatable)\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n const text = Array.isArray(param) ? param.join('/') : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we\r\n // don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n return path;\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* Static */ + 40 /* Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* Static */ + 40 /* Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* Static */) {\r\n segment.push({\r\n type: 0 /* Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* Param */ ||\r\n state === 2 /* ParamRegExp */ ||\r\n state === 3 /* ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* Param */:\r\n if (char === '(') {\r\n state = 2 /* ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n let isRootAdd = !originalRecord;\r\n let mainNormalizedRecord = normalizeRouteRecord(record);\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n let { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n let parentPath = parent.record.path;\r\n let connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object before hand so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if ('children' in mainNormalizedRecord) {\r\n let children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other alias (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n insertMatcher(matcher);\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n let index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n // console.log('i is', { i })\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0)\r\n i++;\r\n // console.log('END i is', { i })\r\n // while (i < matchers.length && matcher.score <= matchers[i].score) i++\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), location.params);\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-router-next.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // TODO: dev warning of unused params if provided\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n let newParams = {};\r\n for (let key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || {}\r\n : { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (let name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n let options = {};\r\n for (let key in defaults) {\r\n options[key] =\r\n key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (let key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n for (let key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (let key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" should have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving unencoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n let eqPos = searchParam.indexOf('=');\r\n let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n // this ignores ?__proto__&toString\r\n if (Object.prototype.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!Array.isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n let values = Array.isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (let key in query) {\r\n let value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = Array.isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found. Are you missing a component?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found. Are you missing a component?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false)\r\n reject(createRouterError(4 /* NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function')\r\n enterCallbackArray.push(valid);\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-ignore: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n // TODO: test me!\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-ignore: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-ignore: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n let promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n let options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n else {\r\n // display the error if any\r\n componentPromise = componentPromise.catch(console.error);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n let options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n let { matched } = route.value;\r\n let { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n let currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n let index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n let parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e))\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to));\r\n return Promise.resolve();\r\n }\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n watchEffect(() => {\r\n if (!instance)\r\n return;\r\n instance.__vrl_route = link.route;\r\n }, { flush: 'post' });\r\n watchEffect(() => {\r\n if (!instance)\r\n return;\r\n instance.__vrl_active = link.isActive;\r\n instance.__vrl_exactActive = link.isExactActive;\r\n }, { flush: 'post' });\r\n }\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\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\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-ignore getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-ignore getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (let key in inner) {\r\n let innerValue = inner[key];\r\n let outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!Array.isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const depth = inject(viewDepthKey, 0);\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth]);\r\n provide(viewDepthKey, depth + 1);\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[props.name];\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[props.name];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\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\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` \\n` +\r\n ``);\r\n }\r\n}\n\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://next.router.vuejs.org/',\r\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (node.name === 'RouterLink') {\r\n if (componentInstance.__vrl_route) {\r\n node.tags.push({\r\n label: componentInstance.__vrl_route.path,\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (componentInstance.__vrl_exactActive) {\r\n node.tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (componentInstance.__vrl_active) {\r\n node.tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError(error => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error',\r\n subtitle: 'An uncaught error happened during navigation',\r\n logType: 'error',\r\n time: Date.now(),\r\n data: { error },\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: Date.now(),\r\n title: 'Start of navigation',\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n time: Date.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: 'redirect: ' +\r\n (typeof record.redirect === 'string' ? record.redirect : 'Object'),\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (let key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-ignore\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n let parseQuery$1 = options.parseQuery || parseQuery;\r\n let stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n let routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n let recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n let locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n let matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n let href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // pass encoded values to the matcher so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n let matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // decoding them) the matcher might have merged current location params so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n let href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/vue-router-next/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : rawLocation.query,\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.indexOf('?') > -1 ||\r\n newTargetLocation.indexOf('#') > -1\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : { path: newTargetLocation };\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n params: to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? error\r\n : // reject any unknown error\r\n triggerError(error))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-ignore\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-ignore\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign(locationAsObject(failure.to), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && from.matched.indexOf(record) < 0) {\r\n if (Array.isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n // cannot be a redirect route because it was in history\r\n let toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* NAVIGATION_ABORTED */ | 8 /* NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is not guarantee for\r\n // it to work on every browser. So Instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n ).catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta)\r\n routerHistory.go(-info.delta, false);\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure && info.delta)\r\n routerHistory.go(-info.delta, false);\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n * @param error - error to throw\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error) {\r\n markAsReady(error);\r\n errorHandlers.list().forEach(handler => handler(error));\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n /**\r\n * Mark the router as ready, resolving the promised returned by isReady(). Can\r\n * only be called once, otherwise does nothing.\r\n * @param err - optional error\r\n */\r\n function markAsReady(err) {\r\n if (ready)\r\n return;\r\n ready = true;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n let scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(triggerError);\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (let key in START_LOCATION_NORMALIZED) {\r\n // @ts-ignore: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n let unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n if (installedApps.size < 1) {\r\n removeHistoryListener();\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","import { EMPTY_OBJ, isArray, isMap, isIntegerKey, isSymbol, extend, hasOwn, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nconst targetMap = new WeakMap();\r\nconst effectStack = [];\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nfunction isEffect(fn) {\r\n return fn && fn._isEffect === true;\r\n}\r\nfunction effect(fn, options = EMPTY_OBJ) {\r\n if (isEffect(fn)) {\r\n fn = fn.raw;\r\n }\r\n const effect = createReactiveEffect(fn, options);\r\n if (!options.lazy) {\r\n effect();\r\n }\r\n return effect;\r\n}\r\nfunction stop(effect) {\r\n if (effect.active) {\r\n cleanup(effect);\r\n if (effect.options.onStop) {\r\n effect.options.onStop();\r\n }\r\n effect.active = false;\r\n }\r\n}\r\nlet uid = 0;\r\nfunction createReactiveEffect(fn, options) {\r\n const effect = function reactiveEffect() {\r\n if (!effect.active) {\r\n return options.scheduler ? undefined : fn();\r\n }\r\n if (!effectStack.includes(effect)) {\r\n cleanup(effect);\r\n try {\r\n enableTracking();\r\n effectStack.push(effect);\r\n activeEffect = effect;\r\n return fn();\r\n }\r\n finally {\r\n effectStack.pop();\r\n resetTracking();\r\n activeEffect = effectStack[effectStack.length - 1];\r\n }\r\n }\r\n };\r\n effect.id = uid++;\r\n effect.allowRecurse = !!options.allowRecurse;\r\n effect._isEffect = true;\r\n effect.active = true;\r\n effect.raw = fn;\r\n effect.deps = [];\r\n effect.options = options;\r\n return effect;\r\n}\r\nfunction cleanup(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (!shouldTrack || activeEffect === undefined) {\r\n return;\r\n }\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = new Set()));\r\n }\r\n if (!dep.has(activeEffect)) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.options.onTrack) {\r\n activeEffect.options.onTrack({\r\n effect: activeEffect,\r\n target,\r\n type,\r\n key\r\n });\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n const effects = new Set();\r\n const add = (effectsToAdd) => {\r\n if (effectsToAdd) {\r\n effectsToAdd.forEach(effect => {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n effects.add(effect);\r\n }\r\n });\r\n }\r\n };\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n depsMap.forEach(add);\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n add(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n add(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n add(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n add(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n add(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n add(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n add(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n add(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const run = (effect) => {\r\n if ((process.env.NODE_ENV !== 'production') && effect.options.onTrigger) {\r\n effect.options.onTrigger({\r\n effect,\r\n target,\r\n key,\r\n type,\r\n newValue,\r\n oldValue,\r\n oldTarget\r\n });\r\n }\r\n if (effect.options.scheduler) {\r\n effect.options.scheduler(effect);\r\n }\r\n else {\r\n effect();\r\n }\r\n };\r\n effects.forEach(run);\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = {};\r\n['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n const method = Array.prototype[key];\r\n arrayInstrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = method.apply(arr, args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return method.apply(arr, args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n});\r\n['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n const method = Array.prototype[key];\r\n arrayInstrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = method.apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n});\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key)\r\n ? builtInSymbols.has(key)\r\n : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - does not apply for Array + integer key.\r\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\r\n return shouldUnwrap ? res.value : res;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (!shallow) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\r\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, rawKey);\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, rawKey);\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nconst mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n};\r\nconst shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n};\r\nconst readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n};\r\nconst shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n};\r\nconst iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\niteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n});\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (target && target[\"__v_isReadonly\" /* IS_READONLY */]) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only a whitelist of value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n return ((observed && toRaw(observed[\"__v_raw\" /* RAW */])) || observed);\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\n\nconst convert = (val) => isObject(val) ? reactive(val) : val;\r\nfunction isRef(r) {\r\n return Boolean(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nclass RefImpl {\r\n constructor(_rawValue, _shallow = false) {\r\n this._rawValue = _rawValue;\r\n this._shallow = _shallow;\r\n this.__v_isRef = true;\r\n this._value = _shallow ? _rawValue : convert(_rawValue);\r\n }\r\n get value() {\r\n track(toRaw(this), \"get\" /* GET */, 'value');\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n if (hasChanged(toRaw(newVal), this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this._shallow ? newVal : convert(newVal);\r\n trigger(toRaw(this), \"set\" /* SET */, 'value', newVal);\r\n }\r\n }\r\n}\r\nfunction createRef(rawValue, shallow = false) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nfunction triggerRef(ref) {\r\n trigger(toRaw(ref), \"set\" /* SET */, 'value', (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => track(this, \"get\" /* GET */, 'value'), () => trigger(this, \"set\" /* SET */, 'value'));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key) {\r\n this._object = _object;\r\n this._key = _key;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n return this._object[this._key];\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key) {\r\n return isRef(object[key])\r\n ? object[key]\r\n : new ObjectRefImpl(object, key);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly) {\r\n this._setter = _setter;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this.effect = effect(getter, {\r\n lazy: true,\r\n scheduler: () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n trigger(toRaw(this), \"set\" /* SET */, 'value');\r\n }\r\n }\r\n });\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n if (self._dirty) {\r\n self._value = this.effect();\r\n self._dirty = false;\r\n }\r\n track(self, \"get\" /* GET */, 'value');\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions) {\r\n let getter;\r\n let setter;\r\n if (isFunction(getterOrOptions)) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n return new ComputedRefImpl(getter, setter, isFunction(getterOrOptions) || !getterOrOptions.set);\r\n}\n\nexport { ITERATE_KEY, computed, customRef, effect, enableTracking, isProxy, isReactive, isReadonly, isRef, markRaw, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, shallowReactive, trigger, isReactive, effect, stop, ref, isProxy, proxyRefs, toRef, reactive, shallowReadonly, track, computed as computed$1, 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\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(job) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n const jobId = getId(job);\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < jobId ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\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 const pos = findInsertionIndex(job);\r\n if (pos > -1) {\r\n queue.splice(pos, 0, job);\r\n }\r\n else {\r\n queue.push(job);\r\n }\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 > flushIndex) {\r\n queue.splice(i, 1);\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 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')) {\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, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, component) {\r\n if (!component) {\r\n warn(`HMR API usage is out of date.\\n` +\r\n `Please upgrade vue-loader/vite/rollup-plugin-vue or other relevant ` +\r\n `dependency that handles Vue SFC compilation.`);\r\n component = {};\r\n }\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n component: isClassComponent(component) ? component.__vccOpts : component,\r\n instances: new Set()\r\n });\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 if (newRender)\r\n record.component.render = newRender;\r\n // Array.from creates a snapshot which avoids the set being mutated during\r\n // updates\r\n Array.from(record.instances).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 const { component, instances } = record;\r\n if (!hmrDirtyComponents.has(component)) {\r\n // 1. Update existing comp definition to match new one\r\n newComp = isClassComponent(newComp) ? newComp.__vccOpts : newComp;\r\n extend(component, newComp);\r\n for (const key in component) {\r\n if (!(key in newComp)) {\r\n delete component[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(component);\r\n // 3. Make sure to unmark the component after the reload.\r\n queuePostFlushCb(() => {\r\n hmrDirtyComponents.delete(component);\r\n });\r\n }\r\n Array.from(instances).forEach(instance => {\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, component);\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 let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n (instance.emitted = {})[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 const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n 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.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\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, noSlotted) {\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 openBlock();\r\n const validSlotContent = slot && ensureValidVNode(slot(props));\r\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* STABLE */\r\n ? 64 /* STABLE_FRAGMENT */\r\n : -2 /* BAIL */);\r\n if (!noSlotted && rendered.scopeId) {\r\n rendered.slotScopeIds = [rendered.scopeId + '-s'];\r\n }\r\n isRenderingCompiledSlot--;\r\n return rendered;\r\n}\r\nfunction ensureValidVNode(vnodes) {\r\n return vnodes.some(child => {\r\n if (!isVNode(child))\r\n return true;\r\n if (child.type === Comment)\r\n return false;\r\n if (child.type === Fragment &&\r\n !ensureValidVNode(child.children))\r\n return false;\r\n return true;\r\n })\r\n ? vnodes\r\n : null;\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance) {\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 prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (!isRenderingCompiledSlot) {\r\n closeBlock();\r\n }\r\n return res;\r\n };\r\n // mark this as a compiled slot function.\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx } = instance;\r\n let result;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n 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 result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\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 blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & 6 /* COMPONENT */ ||\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 name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary\r\n};\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, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n 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, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n 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, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n // 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 const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n 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\nfunction initProps(instance, rawProps, isStateful, // result of bitwise flag comparison\r\nisSSR = false) {\r\n const props = {};\r\n const attrs = {};\r\n def(attrs, InternalObjectKey, 1);\r\n instance.propsDefaults = Object.create(null);\r\n setFullProps(instance, rawProps, props, attrs);\r\n // validation\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n if (isStateful) {\r\n // stateful\r\n instance.props = isSSR ? props : shallowReactive(props);\r\n }\r\n else {\r\n if (!instance.type.props) {\r\n // functional w/ optional props, props === attrs\r\n instance.props = attrs;\r\n }\r\n else {\r\n // functional w/ declared props\r\n instance.props = props;\r\n }\r\n }\r\n instance.attrs = attrs;\r\n}\r\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\r\n const { props, attrs, vnode: { patchFlag } } = instance;\r\n const rawCurrentProps = toRaw(props);\r\n const [options] = instance.propsOptions;\r\n 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')) {\r\n validateProps(rawProps || {}, props, instance);\r\n }\r\n}\r\nfunction setFullProps(instance, rawProps, props, attrs) {\r\n const [options, needCastKeys] = instance.propsOptions;\r\n 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 const { propsDefaults } = instance;\r\n if (key in propsDefaults) {\r\n value = propsDefaults[key];\r\n }\r\n else {\r\n setCurrentInstance(instance);\r\n value = propsDefaults[key] = defaultValue(props);\r\n setCurrentInstance(null);\r\n }\r\n }\r\n else {\r\n value = defaultValue;\r\n }\r\n }\r\n // boolean casting\r\n if (opt[0 /* shouldCast */]) {\r\n if (!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 return expectedTypes.findIndex(t => isSameType(t, type));\r\n }\r\n else if (isFunction(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProps(rawProps, props, instance) {\r\n const resolvedValues = toRaw(props);\r\n const options = instance.propsOptions[0];\r\n for (const key in options) {\r\n let opt = options[key];\r\n if (opt == null)\r\n continue;\r\n validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));\r\n }\r\n}\r\n/**\r\n * dev only\r\n */\r\nfunction validateProp(name, value, prop, isAbsent) {\r\n const { type, required, validator } = prop;\r\n // required!\r\n if (required && isAbsent) {\r\n warn('Missing required prop: \"' + name + '\"');\r\n return;\r\n }\r\n // missing but optional\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n // type check\r\n if (type != null && type !== true) {\r\n let isValid = false;\r\n const types = isArray(type) ? type : [type];\r\n const expectedTypes = [];\r\n // value is valid as long as one of the specified types match\r\n for (let i = 0; i < types.length && !isValid; i++) {\r\n const { valid, expectedType } = assertType(value, types[i]);\r\n expectedTypes.push(expectedType || '');\r\n isValid = valid;\r\n }\r\n if (!isValid) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes));\r\n return;\r\n }\r\n }\r\n // custom validator\r\n if (validator && !validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".');\r\n }\r\n}\r\nconst isSimpleType = /*#__PURE__*/ makeMap('String,Number,Boolean,Function,Symbol,BigInt');\r\n/**\r\n * dev only\r\n */\r\nfunction assertType(value, type) {\r\n let valid;\r\n const expectedType = getType(type);\r\n if (isSimpleType(expectedType)) {\r\n const t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else {\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 instance && instance.proxy\r\n ]);\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 instance && instance.proxy\r\n ]);\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 callWithAsyncErrorHandling(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 let 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, instance);\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' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n hook(el, done);\r\n if (hook.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n onLeave(el, done);\r\n if (onLeave.length <= 1) {\r\n done();\r\n }\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return slots.default;\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n };\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 = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n const name = getComponentName(comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return rawVNode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n 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, optimized) => {\r\n const { vnode, slots } = instance;\r\n let needDeletionCheck = true;\r\n let deletionComparisonTarget = EMPTY_OBJ;\r\n if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {\r\n const type = children._;\r\n if (type) {\r\n // compiled slots.\r\n if ((process.env.NODE_ENV !== 'production') && isHmrUpdating) {\r\n // Parent was HMR updated so slot content may have changed.\r\n // force update slots and mark instance for hmr as well\r\n extend(slots, children);\r\n }\r\n else if (optimized && type === 1 /* STABLE */) {\r\n // compiled AND stable.\r\n // no need to update, and skip stale slots removal.\r\n needDeletionCheck = false;\r\n }\r\n else {\r\n // compiled but dynamic (v-if/v-for on slots) - update slots, but skip\r\n // normalization.\r\n extend(slots, children);\r\n // #2893\r\n // when rendering the optimized slots by manually written render function,\r\n // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,\r\n // i.e. let the `renderSlot` create the bailed Fragment\r\n if (!optimized && type === 1 /* STABLE */) {\r\n delete slots._;\r\n }\r\n }\r\n }\r\n else {\r\n needDeletionCheck = !children.$stable;\r\n normalizeObjectSlots(children, slots);\r\n }\r\n deletionComparisonTarget = children;\r\n }\r\n else if (children) {\r\n // non slot object children (direct value) passed to a component\r\n normalizeVNodeSlots(instance, children);\r\n deletionComparisonTarget = { default: 1 };\r\n }\r\n // delete stale slots\r\n if (needDeletionCheck) {\r\n for (const key in slots) {\r\n if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {\r\n delete slots[key];\r\n }\r\n }\r\n }\r\n};\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nconst isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');\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, isSVG) {\r\n if (!isMounted) {\r\n const vnode = createVNode(rootComponent, rootProps);\r\n // store app context on the root VNode.\r\n // this will be set on the root instance on initial mount.\r\n vnode.appContext = context;\r\n // HMR root reload\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.reload = () => {\r\n render(cloneVNode(vnode), rootContainer, isSVG);\r\n };\r\n }\r\n if (isHydrate && hydrate) {\r\n hydrate(vnode, rootContainer);\r\n }\r\n else {\r\n render(vnode, rootContainer, isSVG);\r\n }\r\n isMounted = true;\r\n app._container = rootContainer;\r\n rootContainer.__vue_app__ = app;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n 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 delete app._container.__vue_app__;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot unmount an app that is not mounted.`);\r\n }\r\n },\r\n provide(key, value) {\r\n if ((process.env.NODE_ENV !== 'production') && key in context.provides) {\r\n warn(`App already provides property with key \"${String(key)}\". ` +\r\n `It will be overwritten with the new value.`);\r\n }\r\n // TypeScript doesn't allow symbols as index type\r\n // https://github.com/Microsoft/TypeScript/issues/24587\r\n context.provides[key] = value;\r\n return app;\r\n }\r\n });\r\n return app;\r\n };\r\n}\n\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, null);\r\n flushPostFlushCbs();\r\n if (hasMismatch && !false) {\r\n // this error should show up in production\r\n console.error(`Hydration completed but contains mismatches.`);\r\n }\r\n };\r\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\r\n const isFragmentStart = isComment(node) && node.data === '[';\r\n const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);\r\n const { type, ref, shapeFlag } = vnode;\r\n const domType = node.nodeType;\r\n vnode.el = node;\r\n let nextNode = null;\r\n switch (type) {\r\n case Text:\r\n if (domType !== 3 /* TEXT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n if (node.data !== vnode.children) {\r\n hasMismatch = true;\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Hydration text mismatch:` +\r\n `\\n- Client: ${JSON.stringify(node.data)}` +\r\n `\\n- Server: ${JSON.stringify(vnode.children)}`);\r\n node.data = vnode.children;\r\n }\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Comment:\r\n if (domType !== 8 /* COMMENT */ || isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = nextSibling(node);\r\n }\r\n break;\r\n case Static:\r\n if (domType !== 1 /* ELEMENT */) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n // determine anchor, adopt content\r\n nextNode = node;\r\n // if the static vnode has its content stripped during build,\r\n // adopt it from the server-rendered HTML.\r\n const needToAdoptContent = !vnode.children.length;\r\n for (let i = 0; i < vnode.staticCount; i++) {\r\n if (needToAdoptContent)\r\n vnode.children += nextNode.outerHTML;\r\n if (i === vnode.staticCount - 1) {\r\n vnode.anchor = nextNode;\r\n }\r\n nextNode = nextSibling(nextNode);\r\n }\r\n return nextNode;\r\n }\r\n break;\r\n case Fragment:\r\n if (!isFragmentStart) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n if (domType !== 1 /* ELEMENT */ ||\r\n vnode.type.toLowerCase() !==\r\n node.tagName.toLowerCase()) {\r\n nextNode = onMismatch();\r\n }\r\n else {\r\n nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);\r\n }\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n // when setting up the render effect, if the initial vnode already\r\n // has .el set, the component will perform hydration instead of mount\r\n // on its sub-tree.\r\n vnode.slotScopeIds = slotScopeIds;\r\n const container = parentNode(node);\r\n 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, slotScopeIds, optimized, rendererInternals, hydrateChildren);\r\n }\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Invalid HostVNode type:', type, `(${typeof type})`);\r\n }\r\n }\r\n if (ref != null) {\r\n setRef(ref, null, parentSuspense, vnode);\r\n }\r\n return nextNode;\r\n };\r\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n optimized = optimized || !!vnode.dynamicChildren;\r\n const { 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, slotScopeIds, 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, slotScopeIds, 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, slotScopeIds, optimized);\r\n }\r\n else if (vnode.type === Text && !vnode.children) {\r\n continue;\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), slotScopeIds);\r\n }\r\n }\r\n return node;\r\n };\r\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\r\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\r\n if (fragmentSlotScopeIds) {\r\n slotScopeIds = slotScopeIds\r\n ? slotScopeIds.concat(fragmentSlotScopeIds)\r\n : fragmentSlotScopeIds;\r\n }\r\n const container = parentNode(node);\r\n const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, 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, slotScopeIds, 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), slotScopeIds);\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\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest = loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n __asyncLoader: load,\r\n name: 'AsyncComponentWrapper',\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (false )) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children } }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst 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, parentSuspense, vnode) => {\r\n if (isArray(rawRef)) {\r\n rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode));\r\n return;\r\n }\r\n let value;\r\n if (!vnode) {\r\n // means unmount\r\n value = null;\r\n }\r\n else if (isAsyncWrapper(vnode)) {\r\n // when mounting async components, nothing needs to be done,\r\n // because the template ref is forwarded to inner component\r\n return;\r\n }\r\n else if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n value = vnode.component.exposed || vnode.component.proxy;\r\n }\r\n else {\r\n value = vnode.el;\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, owner, 12 /* FUNCTION_REF */, [value, refs]);\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 if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__VUE__ = true;\r\n setDevtoolsHook(target.__VUE_DEVTOOLS_GLOBAL_HOOK__);\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, slotScopeIds = null, 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, slotScopeIds, optimized);\r\n break;\r\n default:\r\n if (shapeFlag & 1 /* ELEMENT */) {\r\n processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n }\r\n else if (shapeFlag & 6 /* COMPONENT */) {\r\n processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n }\r\n else if (shapeFlag & 64 /* TELEPORT */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);\r\n }\r\n else if (shapeFlag & 128 /* SUSPENSE */) {\r\n type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, 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, 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 const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostInsert(el, container, nextSibling);\r\n el = next;\r\n }\r\n hostInsert(anchor, container, nextSibling);\r\n };\r\n const removeStaticNode = ({ el, anchor }) => {\r\n let next;\r\n while (el && el !== anchor) {\r\n next = hostNextSibling(el);\r\n hostRemove(el);\r\n el = next;\r\n }\r\n hostRemove(anchor);\r\n };\r\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\r\n isSVG = isSVG || n2.type === 'svg';\r\n if (n1 == null) {\r\n mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n }\r\n else {\r\n patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);\r\n }\r\n };\r\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {\r\n let el;\r\n let vnodeHook;\r\n const { type, props, shapeFlag, transition, 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, props);\r\n // mount children first, since some props may rely on child content\r\n // being already rendered, e.g. `