{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/vue-loaders/dist/loaders/ball-grid-pulse.js","webpack:///./src/views/Manage.vue?5dfe","webpack:///./node_modules/vue-loaders/dist/loaders/ball-pulse.js","webpack:///./src/views/Loading.vue?05b7","webpack:///./src/views/Unsubscribe.vue?726e","webpack:///./node_modules/@vue/devtools-api/lib/esm/time.js","webpack:///./src/App.vue","webpack:///./src/stores/global.js","webpack:///./src/App.vue?ae2f","webpack:///./src/views/Email.vue","webpack:///./src/stores/user.js","webpack:///./src/components/btn.vue","webpack:///./src/components/btn.vue?16a3","webpack:///./src/components/textbox.vue","webpack:///./src/utils/validators.js","webpack:///./src/components/textbox.vue?6bf6","webpack:///./src/utils/http/objectToFormBody.js","webpack:///./src/utils/update.js","webpack:///./src/utils/http/baseFetch.js","webpack:///./src/utils/http/fetchApi.js","webpack:///./src/utils/account.js","webpack:///./src/utils/Lookup.js","webpack:///./src/views/Loading.vue","webpack:///./src/views/Loading.vue?a920","webpack:///./src/views/Email.vue?ee24","webpack:///./src/views/Unsubscribe.vue","webpack:///./src/views/Unsubscribe.vue?e7c7","webpack:///./src/views/NewSubscriber.vue","webpack:///./src/components/checkInput.vue","webpack:///./src/components/checkInput.vue?0eeb","webpack:///./src/components/country.vue","webpack:///./src/Data/countries.js","webpack:///./src/components/country.vue?6b9b","webpack:///./src/views/NewSubscriber.vue?6007","webpack:///./src/views/NewSubscriberSuccess.vue","webpack:///./src/components/preferences/list.vue","webpack:///./src/components/preferences/multi.vue","webpack:///./src/components/preferences/multi.vue?7a6b","webpack:///./src/components/preferences/single.vue","webpack:///./src/components/preferences/single.vue?c48e","webpack:///./src/components/preferences/list.vue?e516","webpack:///./src/views/NewSubscriberSuccess.vue?d138","webpack:///./src/views/Manage.vue","webpack:///./src/components/preferences/snooze.vue","webpack:///./src/utils/Dates.js","webpack:///./src/components/preferences/snooze.vue?d71a","webpack:///./src/views/Manage.vue?f0f6","webpack:///./src/views/ManageSuccess.vue","webpack:///./src/views/ManageSuccess.vue?a492","webpack:///./src/views/Resubscribe.vue","webpack:///./src/views/Resubscribe.vue?b134","webpack:///./src/views/ResubscribeSuccess.vue","webpack:///./src/views/ResubscribeSuccess.vue?adba","webpack:///./src/views/UnsubscribeSuccess.vue","webpack:///./src/views/UnsubscribeSuccess.vue?7a92","webpack:///./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/views/NewSubscriber.vue?1c87","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/vue/dist/vue.runtime.esm-bundler.js","webpack:///./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./src/App.vue?b195","webpack:///./src/components/btn.vue?a760","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","e","this","configurable","writable","render","version","test","h","Array","slice","arguments","concat","apply","u","push","isArray","TypeError","a","f","iterator","next","done","color","v","count","children","return","style","length","props","type","String","default","scale","Number","split","map","charAt","toUpperCase","join","class","transform","originName","component","install","supported","perf","isPerformanceSupported","_a","undefined","window","performance","global","perf_hooks","now","Date","_createBlock","_component_router_view","globalState","formIsSubmitting","userEntryPoint","isLoading","ref","useGlobal","setGlobal","newGlobal","setFormState","isSubmitting","setEntryPoint","entryPoint","toggleIsLoading","computed","setup","setView","state","reactive","__exports__","$setup","_createElementBlock","_hoisted_1","_createElementVNode","innerHTML","content","onSubmit","_cache","_withModifiers","args","submit","_createVNode","_component_TextInput","newUser","email","fieldName","placeholder","required","validator","onUpdateValue","updateEmail","_component_Btn","disabled","isValid","submitText","_component_Loading","blankUser","firstName","lastName","postal","consent","country","cRecord","pcRecord","preferences","user","useUser","setUser","onClick","$event","_ctx","$emit","_renderSlot","$slots","_hoisted_2","_component_BallPulse","components","BallPulse","VueLoadersBallPulse","Function","for","$props","onInput","id","_normalizeClass","validateEmail","re","context","target","toLowerCase","emit","emits","objectToFormBody","obj","formBody","encodedKey","encodeURIComponent","encodedValue","resortPrefix","brSettings","resort","updateRequestBody","preferenceID","consentLanguage","requestBody","Consent_Checkbox_Language__c","updateAllRequestBody","snooze","ids","forEach","subObj","optinId","url","method","options","httpRequest","fetch","cache","toLocaleLowerCase","json","blob","text","formData","arrayBuffer","postHttp","async","body","baseHttp","apiBase","apiBaseUrl","userToNewCRecordRequest","FirstName","LastName","Email","PostalCode","zip","Country","language","routeFromUser","unsubscribe","console","log","headers","then","responseToUser","response","contactId","decodeURIComponent","getEmailFromQS","urlParams","URLSearchParams","location","search","replace","emailRequestBody","getSFCIDFromQS","sfcidRequestBody","sfcid","lookupByEmail","lookupByContact","userFromQueryString","queryStringSFCID","queryStringEmail","indexOf","Promise","reject","_component_ball_grid_pulse","BallGridPulse","VueLoadersBallGridPulse","Btn","TextInput","Loading","preferenceId","screenContent","Router","catch","SetUserAndRoute","finally","_hoisted_3","_component_router_link","to","qsSfcid","qsEmail","handleInitialUserResponse","_toDisplayString","_hoisted_5","updateFirstName","_hoisted_7","updateLastName","_hoisted_9","updateZip","_hoisted_11","_component_country_input","onChangecountry","updateCountry","_hoisted_13","_component_CheckInput","onUpdatechecked","updateConsent","_withCtx","description","_hoisted_15","onChange","emitCheckboxChange","_hoisted_4","toggleDescription","descriptionVisible","_hoisted_6","checked","selected","_Fragment","_renderList","countries","label","CheckInput","CountryInput","initSubmitText","validFields","newSubscriber","isFormValid","values","every","x","_component_preference_list","list","onUpdatepreference","updatePreference","consent_date__c","pref","_component_multi","handleCheck","_component_single","isChecked","src","preferenceObj","icon","title","preference","prefIsChecked","setInitialPreferences","updateIsChecked","some","Multi","Single","PreferenceList","newSubscriberSuccess","setOptin","_component_btn","resetApp","_component_snooze","unsub","resetField","stringToFormattedDate","formatDate","_date","Intl","DateTimeFormat","format","isDate","rawDate","regExp","parseDate","dateParts","month","parseInt","reset","Snooze","manage","submitUnsubscribe","submitUpdate","navigateToManage","manageSuccess","_component_check_input","updateCosent","resubscribe","resubscribeSuccess","unsubscribeSuccess","hasSymbol","PolySymbol","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isBrowser","isESModule","assign","applyToParams","fn","params","newParams","noop","TRAILING_SLASH_RE","removeTrailingSlash","path","parseURL","parseQuery","currentLocation","query","searchString","hash","searchPos","hashPos","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","pathname","base","startsWith","isSameRouteLocation","b","aLastIndex","matched","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","keys","isSameRouteLocationParamsValue","isEquivalentArray","from","fromSegments","toSegments","toPosition","segment","position","NavigationType","NavigationDirection","normalizeBase","baseEl","document","querySelector","getAttribute","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","documentElement","getBoundingClientRect","elRect","behavior","left","top","computeScrollPosition","pageXOffset","pageYOffset","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getElementById","scrollTo","getScrollKey","delta","history","scrollPositions","Map","saveScrollPosition","scrollPosition","set","getSavedScrollPosition","scroll","delete","createBaseLocation","protocol","host","createCurrentLocation","slicePos","includes","pathFromHash","useHistoryListeners","historyState","listeners","teardowns","pauseState","popStateHandler","fromState","listener","pop","direction","forward","back","unknown","pauseListeners","listen","callback","teardown","index","splice","beforeUnloadListener","replaceState","destroy","removeEventListener","addEventListener","buildState","current","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","err","error","data","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","createWebHashHistory","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","regexp","RegExp","message","subPattern","parse","match","stringify","avoidDuplicatedSlash","endsWith","param","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","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","mergeOptions","normalizedRecords","aliases","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","isRecordChildOf","resolve","paramsFromLocation","filter","k","find","parentMatcher","unshift","mergeMetaFields","redirect","beforeEnter","normalizeRecordProps","instances","leaveGuards","Set","updateGuards","enterCallbacks","propsObject","reduce","defaults","partialOptions","child","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","hasLeadingIM","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","useCallbacks","handlers","add","handler","guardToPromiseFn","guard","enterCallbackArray","valid","guardReturn","guardCall","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","Boolean","activeClass","exactActiveClass","custom","ariaCurrentValue","slots","link","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","RouterLink","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","preventDefault","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","inheritAttrs","attrs","injectedRoute","routeToDisplay","depth","matchedRouteRef","viewRef","instance","oldInstance","oldName","size","flush","matchedRoute","ViewComponent","currentName","normalizeSlot","Component","routePropsOption","routeProps","onVnodeUnmounted","vnode","isUnmounted","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","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","reverse","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","ready","readyHandlers","errorHandlers","isReady","started","installedApps","beforeEach","beforeResolve","afterEach","onError","app","config","globalProperties","$router","reactiveRoute","provide","unmountApp","unmount","promise","len","Math","max","recordFrom","recordTo","Manage","ManageSuccess","NewSubscriber","NewSubscriberSuccess","Resubscribe","ResubscribeSuccess","Unsubscribe","UnsubscribeSuccess","createApp","App","use","mount","activeEffectScope","EffectScope","detached","active","effects","cleanups","scopes","currentEffectScope","fromParent","stop","last","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","createDep","dep","w","wasTracked","trackOpBit","newTracked","initDepMarkers","deps","finalizeDepMarkers","ptr","targetMap","WeakMap","effectTrackDepth","maxMarkerBits","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","lastShouldTrack","shouldTrack","cleanupEffect","deferStop","onStop","_effect","lazy","run","runner","trackStack","pauseTracking","resetTracking","track","depsMap","eventInfo","trackEffects","debuggerEventExtraInfo","has","trigger","newValue","oldValue","oldTarget","triggerEffects","allowRecurse","isNonTrackableKeys","builtInSymbols","getOwnPropertyNames","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","arr","toRaw","res","isReadonly","shallow","receiver","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","Reflect","isRef","shouldUnwrap","readonly","createSetter","shallowSet","hadKey","result","deleteProperty","ownKeys","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","getPrototypeOf","get$1","isShallow","rawTarget","rawKey","wrap","toReadonly","toReactive","has$1","proto","set$1","deleteEntry","clear","hadItems","createForEach","thisArg","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","Proxy","isReactive","isProxy","raw","markRaw","trackRefValue","triggerRefValue","newVal","__v_isRef","createRef","shallowRef","rawValue","__v_isShallow","_rawValue","_value","triggerRef","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","_get","_set","customRef","toRefs","ret","toRef","ObjectRefImpl","_object","_key","_defaultValue","val","defaultValue","ComputedRefImpl","_setter","isSSR","_dirty","_cacheable","self","getterOrOptions","debugOptions","setter","onlyGetter","cRef","stack","msg","appWarnHandler","appContext","warnHandler","trace","getComponentTrace","callWithErrorHandling","formatComponentName","warnArgs","formatTrace","warn","currentVNode","normalizedStack","recurseCount","parentInstance","logs","entry","formatTraceEntry","postfix","isRoot","open","close","formatProps","formatProp","JSON","handleError","callWithAsyncErrorHandling","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","appErrorHandler","errorHandler","logError","isFlushing","isFlushPending","flushIndex","pendingPreFlushCbs","activePreFlushCbs","preFlushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","currentPreFlushParentJob","nextTick","findInsertionIndex","middle","middleJobId","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queueCb","cb","activeQueue","pendingQueue","queuePreFlushCb","queuePostFlushCb","flushPreFlushCbs","seen","parentJob","flushPostFlushCbs","deduped","sort","Infinity","devtools","devtoolsNotInstalled","setDevtoolsHook","hook","_b","enabled","event","HTMLElement","navigator","userAgent","replay","__VUE_DEVTOOLS_HOOK_REPLAY__","newHook","setTimeout","emit$1","rawArgs","isModelListener","modelArg","modifiersKey","number","trim","handlerName","onceHandler","emitted","normalizeEmitsOptions","asMixin","emitsCache","cached","normalized","hasExtends","extendEmits","normalizedFromExtend","mixins","extends","isEmitListener","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","__scopeId","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","renderComponentRoot","withProxy","propsOptions","renderCache","setupState","fallthroughAttrs","shapeFlag","proxyToUse","normalizeVNode","getFunctionalFallthrough","blockStack","createVNode","Comment","root","filterModelListeners","cloneVNode","dirs","transition","filterSingleRoot","singleRoot","isVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emitsOptions","$stable","hasPropsChanged","dynamicProps","nextKeys","updateHOCHostEl","subTree","isSuspense","__isSuspense","SuspenseImpl","n1","n2","container","anchor","parentComponent","parentSuspense","isSVG","slotScopeIds","rendererInternals","mountSuspense","patchSuspense","hydrate","hydrateSuspense","createSuspenseBoundary","normalize","normalizeSuspenseChildren","Suspense","triggerEvent","eventListener","patch","createElement","hiddenContainer","suspense","pendingBranch","ssContent","ssFallback","setActiveBranch","um","newBranch","newFallback","activeBranch","isInFallback","isHydrating","isSameVNodeType","pendingId","timeout","fallback","move","parentNode","remove","resume","delayEnter","afterLeave","hasUnresolvedAncestor","fallbackVNode","mountFallback","setupRenderEffect","isInPendingSuspense","hydratedEl","asyncDep","asyncSetupResult","suspenseId","asyncResolved","handleSetupResult","doRemove","node","hydrateNode","isSlotChildren","normalizeSuspenseSlot","block","trackBlock","isBlockTreeEnabled","openBlock","currentBlock","closeBlock","singleChild","dynamicChildren","queueEffectWithSuspense","branch","currentInstance","provides","parentProvides","inject","treatDefaultAsFactory","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","watch","source","immediate","deep","onTrack","onTrigger","cleanup","forceTrigger","isMultiSource","traverse","onCleanup","baseGetter","isInSSRComponentSetup","queuePostRenderEffect","isMounted","instanceWatch","publicThis","createPathGetter","setCurrentInstance","unsetCurrentInstance","useTransitionState","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionImpl","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getCurrentInstance","prevTransitionKey","getTransitionRawChildren","hasFound","rawProps","emptyPlaceholder","innerChild","getKeepAliveChild","enterHooks","resolveTransitionHooks","setTransitionHooks","oldChild","oldInnerChild","transitionKeyChanged","getTransitionKey","leavingHooks","update","delayLeave","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","_leaveCb","BaseTransition","callHook","hooks","leavingVNode","afterHook","cancelHook","called","_enterCb","cancelled","isKeepAlive","clone","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","isAsyncWrapper","__asyncLoader","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","suspensible","userOnError","resolvedComp","pendingRequest","retries","retry","load","thisRequest","userRetry","userFail","createInnerComp","loaded","delayed","__isKeepAlive","KeepAliveImpl","include","exclude","sharedContext","renderer","_unmount","storageContainer","resetShapeFlag","pruneCache","getComponentName","pruneCacheEntry","activate","isDeactivated","vnodeHook","onVnodeMounted","invokeVNodeHook","deactivate","da","matches","pendingCacheKey","cacheSubtree","getInnerChild","onUpdated","rawVNode","__asyncResolved","cachedVNode","KeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","__wdc","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","__weh","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","shouldCacheAccess","applyOptions","resolveMergedOptions","beforeCreate","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","directives","filters","checkDuplicateProperties","resolveInjections","unwrapInjectedRef","methodHandler","opt","createWatcher","registerLifecycleHook","register","_hook","exposed","unwrapRef","normalizeInject","extendsOptions","globalMixins","optionsCache","optionMergeStrategies","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","initProps","isStateful","InternalObjectKey","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","kebabKey","resolvePropValue","propsToUpdate","camelizedKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","normalizePropsOptions","propsCache","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","toString","isSameType","expectedTypes","isInternalKey","normalizeSlotValue","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","initSlots","_","updateSlots","needDeletionCheck","deletionComparisonTarget","withDirectives","internalInstance","getExposeProxy","bindings","dir","arg","modifiers","invokeDirectiveHook","oldBindings","binding","createAppContext","isNativeTag","compilerOptions","uid","createAppAPI","rootComponent","rootProps","installedPlugins","_uid","_component","_props","_container","_context","_instance","plugin","mixin","directive","rootContainer","isHydrate","__vue_app__","setRef","rawRef","oldRawRef","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","hasMismatch","isSVGContainer","namespaceURI","tagName","isComment","nodeType","createHydrationFunctions","mt","mountComponent","patchProp","nextSibling","insert","createComment","hasChildNodes","firstChild","isFragmentStart","onMismatch","handleMismatch","domType","nextNode","Text","Static","needToAdoptContent","staticCount","outerHTML","hydrateFragment","hydrateElement","locateClosingAsyncAnchor","previousSibling","lastChild","createTextVNode","hydrateChildren","forcePatchValue","vnodeHooks","onVnodeBeforeMount","textContent","parentVNode","fragmentSlotScopeIds","isFragment","initFeatureFlags","createRenderer","baseCreateRenderer","createHydrationRenderer","createHydrationFns","__VUE__","hostInsert","hostRemove","hostPatchProp","hostCreateElement","createText","hostCreateText","hostCreateComment","setText","hostSetText","setElementText","hostSetElementText","hostParentNode","hostNextSibling","setScopeId","hostSetScopeId","cloneNode","hostCloneNode","insertStaticContent","hostInsertStaticContent","getNextHostNode","processText","processCommentNode","mountStaticNode","processFragment","processElement","processComponent","process","internals","moveStaticNode","removeStaticNode","mountElement","patchElement","is","mountChildren","unmountChildren","scopeId","needCallTransitionHooks","enter","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","areChildrenSVG","patchBlockChildren","patchChildren","patchProps","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","traverseStaticChildren","updateComponent","initialVNode","createComponentInstance","setupComponent","registerDep","updateComponentPreRender","componentUpdateFn","bu","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateSubTree","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","newLength","commonLength","min","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","moveType","needTransition","leave","performLeave","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","removeFragment","performRemove","bum","_vnode","mc","pc","pbc","allowed","ch1","ch2","arrI","isTeleport","__isTeleport","isTeleportDisabled","isTargetSVG","SVGElement","resolveTarget","select","targetSelector","TeleportImpl","mainAnchor","targetAnchor","wasDisabled","currentContainer","currentAnchor","moveTeleport","nextTarget","hydrateTeleport","isReorder","targetNode","_lpa","Teleport","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","warnMissing","selfName","registry","disableTracking","vnodeArgsTransformer","setupBlock","createElementBlock","createBaseVNode","createBlock","__v_isVNode","transformVNodeArgs","transformer","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","normalizeChildren","cloned","isClassComponent","guardReactiveProps","klass","extraProps","mergeRef","mergedProps","mergeProps","flag","createStaticVNode","numberOfNodes","createCommentVNode","asBlock","memo","slotFlag","toMerge","incoming","renderList","renderItem","item","createSlots","dynamicSlots","renderSlot","noSlotted","isCE","validSlotContent","ensureValidVNode","rendered","vnodes","toHandlers","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$attrs","$refs","$parent","$root","$options","$forceUpdate","$nextTick","$watch","PublicInstanceProxyHandlers","accessCache","normalizedProps","publicGetter","cssModule","__cssModules","descriptor","RuntimeCompiledPublicInstanceProxyHandlers","unscopables","emptyAppContext","uid$1","exposeProxy","setupContext","bc","rtg","rtc","sp","ce","on","off","compile","installWithProxy","setupResult","setupStatefulComponent","createSetupContext","resolvedResult","finishComponentSetup","__ssrInlineRender","ssrRender","registerRuntimeCompiler","_compile","_rc","isRuntimeOnly","skipOptions","template","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","createAttrsProxy","classifyRE","classify","str","displayName","__file","inferFromRegistry","defineProps","defineEmits","defineExpose","withDefaults","useSlots","getContext","useAttrs","mergeDefaults","createPropsRestProxy","excludedKeys","withAsyncContext","getAwaitable","awaitable","propsOrChildren","ssrContextKey","useSSRContext","initCustomFormatter","withMemo","isMemoSame","_ssrUtils","ssrUtils","resolveFilter","compatUtils","svgNS","doc","templateContainer","nodeOps","insertBefore","removeChild","tag","createElementNS","multiple","setAttribute","createTextNode","nodeValue","selector","before","wrapper","appendChild","patchClass","transitionClasses","_vtc","removeAttribute","className","patchStyle","isCssString","setStyle","currentDisplay","display","cssText","importantRE","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","removeAttributeNS","setAttributeNS","isBoolean","patchDOMProp","needRemove","_getNow","skipTimestampCheck","createEvent","timeStamp","ffMatch","cachedNow","getNow","patchEvent","prevValue","nextValue","invokers","_vei","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","initialValue","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","nativeOnRE","shouldSetAsProp","_trueValue","_falseValue","defineCustomElement","hydate","Comp","VueCustomElement","initialProps","super","def","defineSSRCustomElement","BaseClass","_def","_connected","_resolved","_numberProps","shadowRoot","attachShadow","_resolveDef","attributes","_setAttr","MutationObserver","mutations","attributeName","observe","styles","hasOptions","rawKeys","numberProps","_setProp","_getProp","_applyStyles","_update","asyncDef","shouldReflect","shouldUpdate","dispatchEvent","CustomEvent","detail","css","useCssModule","mod","useCssVars","setVars","setVarsOnVNode","ob","childList","disconnect","vars","setVarsOnNode","TRANSITION","ANIMATION","Transition","resolveTransitionProps","DOMTransitionPropsValidators","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","TransitionPropsValidators","hasExplicitCallback","baseProps","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","classList","requestAnimationFrame","endId","expectedType","explicitTimeout","_endId","resolveIfNotStale","propCount","getTransitionInfo","endEvent","ended","onEnd","getComputedStyle","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","offsetHeight","positionMap","newPositionMap","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","webkitTransform","transitionDuration","_moveCb","propertyName","cssTransitionProps","TransitionGroup","oldPos","newPos","dx","dy","getModelAssigner","onCompositionStart","composing","onCompositionEnd","initEvent","vModelText","_assign","castToNumber","domValue","activeElement","vModelCheckbox","modelValue","_modelValue","elementValue","getValue","found","filtered","getCheckboxValue","setChecked","vModelRadio","vModelSelect","isSetModel","selectedVal","setSelected","_binding","isMultiple","option","optionValue","selectedIndex","vModelDynamic","callModelHook","modelToUse","initVModelForSSR","getSSRProps","systemModifiers","modifierGuards","stopPropagation","prevent","ctrl","shift","alt","right","exact","withModifiers","keyNames","esc","space","up","down","withKeys","eventKey","vShow","_vod","setDisplay","initVShowForSSR","rendererOptions","enabledHydration","ensureRenderer","ensureHydrationRenderer","containerOrSelector","normalizeContainer","Element","createSSRApp","ssrDirectiveInitialized","initDirectivesForSSR","makeMap","expectsLowerCase","GLOBALS_WHITE_LISTED","isGloballyWhitelisted","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","normalizeStyle","isString","parseStringStyle","isObject","listDelimiterRE","propertyDelimiterRE","tmp","normalizeClass","normalizeProps","HTML_TAGS","SVG_TAGS","isHTMLTag","isSVGTag","looseCompareArrays","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","objectToString","isFunction","replacer","isMap","entries","isSet","isPlainObject","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","onRE","isOn","extend","hasOwn","toTypeString","isSymbol","isPromise","toRawType","isIntegerKey","isReservedProp","isBuiltInDirective","cacheStringFunction","hit","camelizeRE","camelize","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","invokeArrayFns","fns","toNumber","parseFloat","isNaN","_globalThis","getGlobalThis","globalThis","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","isProxyAvailable","g","sfc"],"mappings":"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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"vue\")):\"function\"==typeof define&&define.amd?define([\"vue\"],e):(r=r||self).VueLoadersBallGridPulse=e(r.Vue)}(this,(function(r){\"use strict\";function e(r,e,n){return e in r?Object.defineProperty(r,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[e]=n,r}var n,t,o=r;function i(r){if(\"function\"==typeof r.render&&o&&o.version&&/^[3-4]\\./.test(o.version)&&o.h){var e=r.render;r.render=function(){var r=Array.prototype.slice.call(arguments),n=\"function\"==typeof r[0]?r:[o.h].concat(r);return e.apply(this,n)}}return r}function u(r){var e=[];if(\"number\"==typeof r)for(var n=l(),t=r>0?r:1;t--;)e.push([n]);else{if(!Array.isArray(r))throw new TypeError(\"Invalid children\");var o,i=!0,a=!1,c=void 0;try{for(var f,s=r[Symbol.iterator]();!(i=(f=s.next()).done);i=!0)for(var d=f.value,p=l(d.color),v=d.count>0?d.count:1;v--;)o=[p],void 0!==d.children&&o.push(u(d.children)),e.push(o)}catch(r){a=!0,c=r}finally{try{i||null==s.return||s.return()}finally{if(a)throw c}}}return e}function a(r,e,n){return r(\"div\",{style:e},n)}function l(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"background-color\";return function(e){if(\"function\"==typeof r)return r(e);var n=Array.isArray(r)?r:[r],t={},o=!0,i=!1,u=void 0;try{for(var a,l=n[Symbol.iterator]();!(o=(a=l.next()).done);o=!0){t[a.value]=e}}catch(r){i=!0,u=r}finally{try{o||null==l.return||l.return()}finally{if(i)throw u}}return t}}return n={name:\"ball-grid-pulse\",children:9},(t={props:{color:{type:String,default:\"#ffffff\"},scale:{type:[String,Number]}}}).name=\"VueLoaders\"+n.name.split(/-|\\.js/).map((function(r){return r.charAt(0)?r.charAt(0).toUpperCase()+r.slice(1):r})).join(\"\"),t.render=function(r){var n,t,o=(n=r.children,t=u(n),function r(e,n){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:t).map((function(t){var o=t[0],i=t[1],u=i?r(e,n,i):void 0;return a(e,o(n),u)}))});return function(n){return function(r,n,t,o){return r(\"div\",{class:e({\"vue-loaders\":!0},n,!0),style:{transform:void 0!==t?\"scale(\".concat(t,\")\"):void 0}},o)}(n,r.name,this.scale,o(n,this.color))}}(n),i(t),{originName:n.name,component:t,install:function(r){r.component(this.component.name,this.component)}}}));\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Manage.vue?vue&type=style&index=0&id=6c391a32&lang=sass&scoped=true\"","!function(r,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e(require(\"vue\")):\"function\"==typeof define&&define.amd?define([\"vue\"],e):(r=r||self).VueLoadersBallPulse=e(r.Vue)}(this,(function(r){\"use strict\";function e(r,e,n){return e in r?Object.defineProperty(r,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[e]=n,r}var n,t,o=r;function i(r){if(\"function\"==typeof r.render&&o&&o.version&&/^[3-4]\\./.test(o.version)&&o.h){var e=r.render;r.render=function(){var r=Array.prototype.slice.call(arguments),n=\"function\"==typeof r[0]?r:[o.h].concat(r);return e.apply(this,n)}}return r}function u(r){var e=[];if(\"number\"==typeof r)for(var n=l(),t=r>0?r:1;t--;)e.push([n]);else{if(!Array.isArray(r))throw new TypeError(\"Invalid children\");var o,i=!0,a=!1,c=void 0;try{for(var f,s=r[Symbol.iterator]();!(i=(f=s.next()).done);i=!0)for(var d=f.value,p=l(d.color),v=d.count>0?d.count:1;v--;)o=[p],void 0!==d.children&&o.push(u(d.children)),e.push(o)}catch(r){a=!0,c=r}finally{try{i||null==s.return||s.return()}finally{if(a)throw c}}}return e}function a(r,e,n){return r(\"div\",{style:e},n)}function l(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"background-color\";return function(e){if(\"function\"==typeof r)return r(e);var n=Array.isArray(r)?r:[r],t={},o=!0,i=!1,u=void 0;try{for(var a,l=n[Symbol.iterator]();!(o=(a=l.next()).done);o=!0){t[a.value]=e}}catch(r){i=!0,u=r}finally{try{o||null==l.return||l.return()}finally{if(i)throw u}}return t}}return n={name:\"ball-pulse\",children:3},(t={props:{color:{type:String,default:\"#ffffff\"},scale:{type:[String,Number]}}}).name=\"VueLoaders\"+n.name.split(/-|\\.js/).map((function(r){return r.charAt(0)?r.charAt(0).toUpperCase()+r.slice(1):r})).join(\"\"),t.render=function(r){var n,t,o=(n=r.children,t=u(n),function r(e,n){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:t).map((function(t){var o=t[0],i=t[1],u=i?r(e,n,i):void 0;return a(e,o(n),u)}))});return function(n){return function(r,n,t,o){return r(\"div\",{class:e({\"vue-loaders\":!0},n,!0),style:{transform:void 0!==t?\"scale(\".concat(t,\")\"):void 0}},o)}(n,r.name,this.scale,o(n,this.color))}}(n),i(t),{originName:n.name,component:t,install:function(r){r.component(this.component.name,this.component)}}}));\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Loading.vue?vue&type=style&index=0&id=c997b500&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Unsubscribe.vue?vue&type=style&index=0&id=5b5b6577&lang=scss&scoped=true\"","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = global.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","\n\n\n\n","import { ref, computed } from \"vue\";\n\nconst globalState = {\n formIsSubmitting: false,\n userEntryPoint: undefined,\n isLoading: true,\n};\n\nconst global = ref(globalState);\n\nexport const useGlobal = () => {\n const setGlobal = (newGlobal) => {\n global.value = newGlobal;\n };\n\n const setFormState = (isSubmitting) => {\n global.value.formIsSubmitting = isSubmitting;\n }\n\n const setEntryPoint = (entryPoint) => {\n global.value.userEntryPoint = entryPoint;\n }\n\n const toggleIsLoading = () => {\n global.value.isLoading = !global.value.isLoading;\n }\n\n return {\n global: computed(() => global.value),\n setGlobal,\n setFormState,\n setEntryPoint,\n toggleIsLoading\n }\n}","import { render } from \"./App.vue?vue&type=template&id=67584a73\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=67584a73&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n\n","import { ref, computed } from 'vue';\n\nexport const blankUser = {\n email: '',\n firstName: '',\n lastName: '',\n postal: '',\n consent: '',\n country: '',\n cRecord: '',\n pcRecord: '',\n preferences: {},\n};\n\nconst user = ref(blankUser);\n\nexport const useUser = () => {\n const setUser = (newUser) => {\n user.value = newUser;\n };\n\n return {\n user: computed(() => user.value),\n setUser\n }\n}\n","\n\n\n\n","import { render } from \"./btn.vue?vue&type=template&id=1aec366a&scoped=true\"\nimport script from \"./btn.vue?vue&type=script&lang=js\"\nexport * from \"./btn.vue?vue&type=script&lang=js\"\n\nimport \"./btn.vue?vue&type=style&index=0&id=1aec366a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1aec366a\"]])\n\nexport default __exports__","\n\n\n\n","export const validateEmail = (email) => {\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(email);\n}","import { render } from \"./textbox.vue?vue&type=template&id=6e431e80\"\nimport script from \"./textbox.vue?vue&type=script&lang=js\"\nexport * from \"./textbox.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const objectToFormBody = (obj) => {\n let formBody = [];\n\n for (var property in obj) {\n let encodedKey = encodeURIComponent(property);\n let encodedValue = encodeURIComponent(obj[property]);\n formBody.push(`${encodedKey}=${encodedValue}`);\n }\n\n return formBody.join('&');\n};\n\nexport default objectToFormBody;","import objectToFormBody from \"./http/objectToFormBody\";\n\n//getting resort prefix\nconst resortPrefix = window.brSettings.resort;\n\n//creates the body for the request.\n//If preferenceID is null, sends all preferences, or sends the specified preference.\n//If consent is not null, will send the consent fields.\nconst updateRequestBody = (user, preferenceID, consentLanguage = null) => {\n let requestBody = {\n 'pcRecord': user.pcRecord,\n resortPrefix,\n }\n\n if (preferenceID) {\n requestBody = {\n ...requestBody,\n [preferenceID]: user.preferences[preferenceID]\n };\n }\n\n if (consentLanguage) {\n requestBody.Consent_Checkbox_Language__c = consentLanguage;\n }\n\n return objectToFormBody(requestBody);\n};\n\nconst updateAllRequestBody = (user, preferences, snooze = null) => {\n let requestBody = {\n 'pcRecord': user.pcRecord,\n resortPrefix,\n };\n\n let ids = [];\n\n preferences.forEach((obj) => {\n if (obj.type == 'single') {\n ids.push(obj.id);\n }\n\n if (obj.type == 'multi') {\n obj.preferences.forEach((subObj) => {\n ids.push(subObj.id);\n });\n }\n });\n\n if (snooze) {\n ids.push(snooze.id);\n }\n\n ids.forEach(id => {\n requestBody[id] = user.preferences[id];\n });\n\n requestBody[window.brSettings.optinId] = true;\n\n return objectToFormBody(requestBody);\n};\n\nexport {\n updateRequestBody,\n updateAllRequestBody,\n};","export default async (url, method, options = {}) => {\n let httpRequest;\n if (method.toUpperCase() === 'GET') {\n httpRequest = await fetch(url, {\n cache: 'reload',\n ...options,\n });\n } else {\n httpRequest = await fetch(url, {\n method: method.toUpperCase(),\n cache: 'reload',\n ...options,\n });\n }\n return (type) => {\n switch (type.toLocaleLowerCase()) {\n case 'json':\n return httpRequest.json();\n case 'blob':\n return httpRequest.blob();\n case 'text':\n return httpRequest.text();\n case 'formdata':\n return httpRequest.formData();\n default:\n return httpRequest.arrayBuffer();\n }\n }\n};","import baseHttp from './baseFetch';\n\nexport const getHttp = async (url, type = 'json', options) => (await baseHttp(url, 'get', options))(type);\n\nexport const postHttp = async (url, body, type = 'json', options) => (await baseHttp(url, 'post', {\n body,\n ...options,\n}))(type);","import { blankUser } from \"../stores/user\";\nimport objectToFormBody from \"./http/objectToFormBody\";\nimport { updateRequestBody } from './update';\nimport { postHttp } from './http/fetchApi';\n\nconst apiBase = window.brSettings.apiBaseUrl;\n\nconst userToNewCRecordRequest = (user) => {\n let requestBody = {\n FirstName: user.firstName,\n LastName: user.lastName,\n Email: user.email,\n PostalCode: user.zip,\n Country: user.country,\n resortPrefix: window.brSettings.resort,\n Consent_Checkbox_Language__c: window.brSettings.consent.language,\n };\n\n\n\n return objectToFormBody(requestBody);\n};\n\nexport const routeFromUser = (user, entryPoint = \"email\") => {\n //unsubscribed from current resort\n if (user.pcRecord && user.preferences[window.brSettings.unsubscribe.id]) {\n console.log('Returns resubscribe');\n return \"/resubscribe\"\n }\n\n //subscribed to current\n if (user.pcRecord && user.preferences[window.brSettings.optinId]) {\n console.log('pcRecord and has optin, returns manage');\n return \"/manage\";\n }\n\n //not subscribed to current resort\n if (entryPoint == \"sfcid\") {\n //this user came in from a manage link on an email.\n //TODO: opt-in to resort\n user.preferences[window.brSettings.optinId] = true \n let requestBody = updateRequestBody(user, window.brSettings.optinId);\n\n postHttp(\n `${apiBase}/api/UpdatePrefenctRecord/Update`,\n requestBody,\n \"json\",\n {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n }\n }\n ).then(() => {\n console.log('sfcid returns manage');\n return \"/manage\"\n });\n\n \n } else {\n if (user.pcRecord && !user.preferences[window.brSettings.optinId]) {\n console.log('Has pcRecord, but no Optin. Returns new');\n return \"/resubscribe\"\n }\n }\n\n console.log('returns new for a new subscriber');\n //brand new subscriber\n return \"/new\";\n};\n\nconst responseToUser = (response, user = blankUser) => {\n if (response.cRecord) {\n user.contactId = response.cRecord;\n }\n\n if (response.pcRecord) {\n user.pcRecord = response.pcRecord;\n }\n\n if (response.preferences) {\n user.preferences = response.preferences;\n }\n\n if (response.email) {\n user.email = decodeURIComponent(response.email);\n }\n\n return user;\n}\n\nexport {\n responseToUser,\n userToNewCRecordRequest,\n};","import {\n validateEmail\n} from './validators';\nimport objectToFormBody from './http/objectToFormBody';\nimport {\n postHttp\n} from './http/fetchApi';\n\nconst getEmailFromQS = () => {\n let urlParams = new URLSearchParams(window.location.search);\n let email = urlParams.get(\"email\");\n\n //Can't run replace without making sure the string isn't null.\n if (email) {\n email = email.replace(\" \", \"+\");\n }\n\n //validate that this is a proper email\n if (validateEmail(email)) {\n return email;\n }\n\n return undefined;\n};\n\nconst emailRequestBody = (email) => {\n let requestBody = {\n 'email': email,\n 'resortprefix': window.brSettings.resort,\n };\n\n return objectToFormBody(requestBody);\n};\n\nconst getSFCIDFromQS = () => {\n let urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"sfcid\");\n};\n\nconst sfcidRequestBody = (sfcid) => {\n let requestBody = {\n 'Contact': sfcid,\n 'ResortPrefix': window.brSettings.resort,\n };\n\n return objectToFormBody(requestBody);\n}\n\nconst lookupByEmail = (requestBody) => {\n const apiBase = window.brSettings.apiBaseUrl;\n\n return postHttp(`${apiBase}/api/ReturnPreferenceRecord/Lookup`,\n requestBody,\n \"json\", {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n });\n}\n\nconst lookupByContact = (requestBody) => {\n const apiBase = window.brSettings.apiBaseUrl;\n\n return postHttp(\n `${apiBase}/api/ReturnPreferenceRecord/LookupByContact`,\n requestBody,\n \"json\", {\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n }\n );\n}\n\nconst userFromQueryString = () => {\n const queryStringSFCID = getSFCIDFromQS();\n const queryStringEmail = getEmailFromQS();\n\n if (queryStringSFCID && queryStringSFCID.indexOf(\"@\") < 0) {\n let requestBody = sfcidRequestBody(queryStringSFCID);\n\n return lookupByContact(requestBody);\n }\n\n if (queryStringEmail || (queryStringSFCID && queryStringSFCID.indexOf('@') > 0)) {\n let email = queryStringEmail;\n\n if(!email) {\n email = queryStringSFCID;\n }\n\n let requestBody = emailRequestBody(email);\n\n return lookupByEmail(requestBody);\n }\n\n return Promise.reject('No QueryString Objects');\n}\n\nexport {\n getEmailFromQS,\n emailRequestBody,\n getSFCIDFromQS,\n sfcidRequestBody,\n lookupByContact,\n lookupByEmail,\n userFromQueryString\n}","\n\n\n\n","import { render } from \"./Loading.vue?vue&type=template&id=c997b500&scoped=true\"\nimport script from \"./Loading.vue?vue&type=script&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&lang=js\"\n\nimport \"./Loading.vue?vue&type=style&index=0&id=c997b500&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c997b500\"]])\n\nexport default __exports__","import { render } from \"./Email.vue?vue&type=template&id=970dca02\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./Unsubscribe.vue?vue&type=template&id=5b5b6577&scoped=true\"\nimport script from \"./Unsubscribe.vue?vue&type=script&lang=js\"\nexport * from \"./Unsubscribe.vue?vue&type=script&lang=js\"\n\nimport \"./Unsubscribe.vue?vue&type=style&index=0&id=5b5b6577&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5b5b6577\"]])\n\nexport default __exports__","\n\n\n\n","\n\n","import { render } from \"./checkInput.vue?vue&type=template&id=e80c97c8\"\nimport script from \"./checkInput.vue?vue&type=script&lang=js\"\nexport * from \"./checkInput.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","const countries = [\n {\n \"active\": true,\n \"defaultValue\": true,\n \"label\": \"United States\",\n \"validFor\": null,\n \"value\": \"US\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Canada\",\n \"validFor\": null,\n \"value\": \"CA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Afghanistan\",\n \"validFor\": null,\n \"value\": \"AF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Aland Islands\",\n \"validFor\": null,\n \"value\": \"AX\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Albania\",\n \"validFor\": null,\n \"value\": \"AL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Algeria\",\n \"validFor\": null,\n \"value\": \"DZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Andorra\",\n \"validFor\": null,\n \"value\": \"AD\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Angola\",\n \"validFor\": null,\n \"value\": \"AO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Anguilla\",\n \"validFor\": null,\n \"value\": \"AI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Antarctica\",\n \"validFor\": null,\n \"value\": \"AQ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Antigua and Barbuda\",\n \"validFor\": null,\n \"value\": \"AG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Argentina\",\n \"validFor\": null,\n \"value\": \"AR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Armenia\",\n \"validFor\": null,\n \"value\": \"AM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Aruba\",\n \"validFor\": null,\n \"value\": \"AW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Australia\",\n \"validFor\": null,\n \"value\": \"AU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Austria\",\n \"validFor\": null,\n \"value\": \"AT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Azerbaijan\",\n \"validFor\": null,\n \"value\": \"AZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bahamas\",\n \"validFor\": null,\n \"value\": \"BS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bahrain\",\n \"validFor\": null,\n \"value\": \"BH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bangladesh\",\n \"validFor\": null,\n \"value\": \"BD\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Barbados\",\n \"validFor\": null,\n \"value\": \"BB\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Belarus\",\n \"validFor\": null,\n \"value\": \"BY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Belgium\",\n \"validFor\": null,\n \"value\": \"BE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Belize\",\n \"validFor\": null,\n \"value\": \"BZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Benin\",\n \"validFor\": null,\n \"value\": \"BJ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bermuda\",\n \"validFor\": null,\n \"value\": \"BM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bhutan\",\n \"validFor\": null,\n \"value\": \"BT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bolivia, Plurinational State of\",\n \"validFor\": null,\n \"value\": \"BO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bonaire, Sint Eustatius and Saba\",\n \"validFor\": null,\n \"value\": \"BQ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bosnia and Herzegovina\",\n \"validFor\": null,\n \"value\": \"BA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Botswana\",\n \"validFor\": null,\n \"value\": \"BW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bouvet Island\",\n \"validFor\": null,\n \"value\": \"BV\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Brazil\",\n \"validFor\": null,\n \"value\": \"BR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"British Indian Ocean Territory\",\n \"validFor\": null,\n \"value\": \"IO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Brunei Darussalam\",\n \"validFor\": null,\n \"value\": \"BN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Bulgaria\",\n \"validFor\": null,\n \"value\": \"BG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Burkina Faso\",\n \"validFor\": null,\n \"value\": \"BF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Burundi\",\n \"validFor\": null,\n \"value\": \"BI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cambodia\",\n \"validFor\": null,\n \"value\": \"KH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cameroon\",\n \"validFor\": null,\n \"value\": \"CM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cape Verde\",\n \"validFor\": null,\n \"value\": \"CV\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cayman Islands\",\n \"validFor\": null,\n \"value\": \"KY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Central African Republic\",\n \"validFor\": null,\n \"value\": \"CF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Chad\",\n \"validFor\": null,\n \"value\": \"TD\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Chile\",\n \"validFor\": null,\n \"value\": \"CL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"China\",\n \"validFor\": null,\n \"value\": \"CN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Chinese Taipei\",\n \"validFor\": null,\n \"value\": \"TW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Christmas Island\",\n \"validFor\": null,\n \"value\": \"CX\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cocos (Keeling) Islands\",\n \"validFor\": null,\n \"value\": \"CC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Colombia\",\n \"validFor\": null,\n \"value\": \"CO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Comoros\",\n \"validFor\": null,\n \"value\": \"KM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Congo\",\n \"validFor\": null,\n \"value\": \"CG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Congo, the Democratic Republic of the\",\n \"validFor\": null,\n \"value\": \"CD\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cook Islands\",\n \"validFor\": null,\n \"value\": \"CK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Costa Rica\",\n \"validFor\": null,\n \"value\": \"CR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cote d'Ivoire\",\n \"validFor\": null,\n \"value\": \"CI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Croatia\",\n \"validFor\": null,\n \"value\": \"HR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cuba\",\n \"validFor\": null,\n \"value\": \"CU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Curaçao\",\n \"validFor\": null,\n \"value\": \"CW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Cyprus\",\n \"validFor\": null,\n \"value\": \"CY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Czech Republic\",\n \"validFor\": null,\n \"value\": \"CZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Denmark\",\n \"validFor\": null,\n \"value\": \"DK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Djibouti\",\n \"validFor\": null,\n \"value\": \"DJ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Dominica\",\n \"validFor\": null,\n \"value\": \"DM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Dominican Republic\",\n \"validFor\": null,\n \"value\": \"DO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Ecuador\",\n \"validFor\": null,\n \"value\": \"EC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Egypt\",\n \"validFor\": null,\n \"value\": \"EG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"El Salvador\",\n \"validFor\": null,\n \"value\": \"SV\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Equatorial Guinea\",\n \"validFor\": null,\n \"value\": \"GQ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Eritrea\",\n \"validFor\": null,\n \"value\": \"ER\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Estonia\",\n \"validFor\": null,\n \"value\": \"EE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Ethiopia\",\n \"validFor\": null,\n \"value\": \"ET\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Falkland Islands (Malvinas)\",\n \"validFor\": null,\n \"value\": \"FK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Faroe Islands\",\n \"validFor\": null,\n \"value\": \"FO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Fiji\",\n \"validFor\": null,\n \"value\": \"FJ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Finland\",\n \"validFor\": null,\n \"value\": \"FI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"France\",\n \"validFor\": null,\n \"value\": \"FR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"French Guiana\",\n \"validFor\": null,\n \"value\": \"GF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"French Polynesia\",\n \"validFor\": null,\n \"value\": \"PF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"French Southern Territories\",\n \"validFor\": null,\n \"value\": \"TF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Gabon\",\n \"validFor\": null,\n \"value\": \"GA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Gambia\",\n \"validFor\": null,\n \"value\": \"GM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Georgia\",\n \"validFor\": null,\n \"value\": \"GE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Germany\",\n \"validFor\": null,\n \"value\": \"DE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Ghana\",\n \"validFor\": null,\n \"value\": \"GH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Gibraltar\",\n \"validFor\": null,\n \"value\": \"GI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Greece\",\n \"validFor\": null,\n \"value\": \"GR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Greenland\",\n \"validFor\": null,\n \"value\": \"GL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Grenada\",\n \"validFor\": null,\n \"value\": \"GD\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Guadeloupe\",\n \"validFor\": null,\n \"value\": \"GP\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Guatemala\",\n \"validFor\": null,\n \"value\": \"GT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Guernsey\",\n \"validFor\": null,\n \"value\": \"GG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Guinea\",\n \"validFor\": null,\n \"value\": \"GN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Guinea-Bissau\",\n \"validFor\": null,\n \"value\": \"GW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Guyana\",\n \"validFor\": null,\n \"value\": \"GY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Haiti\",\n \"validFor\": null,\n \"value\": \"HT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Heard Island and McDonald Islands\",\n \"validFor\": null,\n \"value\": \"HM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Holy See (Vatican City State)\",\n \"validFor\": null,\n \"value\": \"VA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Honduras\",\n \"validFor\": null,\n \"value\": \"HN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Hungary\",\n \"validFor\": null,\n \"value\": \"HU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Iceland\",\n \"validFor\": null,\n \"value\": \"IS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"India\",\n \"validFor\": null,\n \"value\": \"IN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Indonesia\",\n \"validFor\": null,\n \"value\": \"ID\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Iran, Islamic Republic of\",\n \"validFor\": null,\n \"value\": \"IR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Iraq\",\n \"validFor\": null,\n \"value\": \"IQ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Ireland\",\n \"validFor\": null,\n \"value\": \"IE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Isle of Man\",\n \"validFor\": null,\n \"value\": \"IM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Israel\",\n \"validFor\": null,\n \"value\": \"IL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Italy\",\n \"validFor\": null,\n \"value\": \"IT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Jamaica\",\n \"validFor\": null,\n \"value\": \"JM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Japan\",\n \"validFor\": null,\n \"value\": \"JP\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Jersey\",\n \"validFor\": null,\n \"value\": \"JE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Jordan\",\n \"validFor\": null,\n \"value\": \"JO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Kazakhstan\",\n \"validFor\": null,\n \"value\": \"KZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Kenya\",\n \"validFor\": null,\n \"value\": \"KE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Kiribati\",\n \"validFor\": null,\n \"value\": \"KI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Korea, Democratic People's Republic of\",\n \"validFor\": null,\n \"value\": \"KP\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Korea, Republic of\",\n \"validFor\": null,\n \"value\": \"KR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Kuwait\",\n \"validFor\": null,\n \"value\": \"KW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Kyrgyzstan\",\n \"validFor\": null,\n \"value\": \"KG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Lao People's Democratic Republic\",\n \"validFor\": null,\n \"value\": \"LA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Latvia\",\n \"validFor\": null,\n \"value\": \"LV\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Lebanon\",\n \"validFor\": null,\n \"value\": \"LB\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Lesotho\",\n \"validFor\": null,\n \"value\": \"LS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Liberia\",\n \"validFor\": null,\n \"value\": \"LR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Libyan Arab Jamahiriya\",\n \"validFor\": null,\n \"value\": \"LY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Liechtenstein\",\n \"validFor\": null,\n \"value\": \"LI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Lithuania\",\n \"validFor\": null,\n \"value\": \"LT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Luxembourg\",\n \"validFor\": null,\n \"value\": \"LU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Macao\",\n \"validFor\": null,\n \"value\": \"MO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Macedonia, the former Yugoslav Republic of\",\n \"validFor\": null,\n \"value\": \"MK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Madagascar\",\n \"validFor\": null,\n \"value\": \"MG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Malawi\",\n \"validFor\": null,\n \"value\": \"MW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Malaysia\",\n \"validFor\": null,\n \"value\": \"MY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Maldives\",\n \"validFor\": null,\n \"value\": \"MV\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Mali\",\n \"validFor\": null,\n \"value\": \"ML\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Malta\",\n \"validFor\": null,\n \"value\": \"MT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Martinique\",\n \"validFor\": null,\n \"value\": \"MQ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Mauritania\",\n \"validFor\": null,\n \"value\": \"MR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Mauritius\",\n \"validFor\": null,\n \"value\": \"MU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Mayotte\",\n \"validFor\": null,\n \"value\": \"YT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Mexico\",\n \"validFor\": null,\n \"value\": \"MX\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Moldova, Republic of\",\n \"validFor\": null,\n \"value\": \"MD\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Monaco\",\n \"validFor\": null,\n \"value\": \"MC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Mongolia\",\n \"validFor\": null,\n \"value\": \"MN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Montenegro\",\n \"validFor\": null,\n \"value\": \"ME\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Montserrat\",\n \"validFor\": null,\n \"value\": \"MS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Morocco\",\n \"validFor\": null,\n \"value\": \"MA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Mozambique\",\n \"validFor\": null,\n \"value\": \"MZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Myanmar\",\n \"validFor\": null,\n \"value\": \"MM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Namibia\",\n \"validFor\": null,\n \"value\": \"NA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Nauru\",\n \"validFor\": null,\n \"value\": \"NR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Nepal\",\n \"validFor\": null,\n \"value\": \"NP\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Netherlands\",\n \"validFor\": null,\n \"value\": \"NL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"New Caledonia\",\n \"validFor\": null,\n \"value\": \"NC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"New Zealand\",\n \"validFor\": null,\n \"value\": \"NZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Nicaragua\",\n \"validFor\": null,\n \"value\": \"NI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Niger\",\n \"validFor\": null,\n \"value\": \"NE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Nigeria\",\n \"validFor\": null,\n \"value\": \"NG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Niue\",\n \"validFor\": null,\n \"value\": \"NU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Norfolk Island\",\n \"validFor\": null,\n \"value\": \"NF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Norway\",\n \"validFor\": null,\n \"value\": \"NO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Oman\",\n \"validFor\": null,\n \"value\": \"OM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Pakistan\",\n \"validFor\": null,\n \"value\": \"PK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Palestinian Territory, Occupied\",\n \"validFor\": null,\n \"value\": \"PS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Panama\",\n \"validFor\": null,\n \"value\": \"PA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Papua New Guinea\",\n \"validFor\": null,\n \"value\": \"PG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Paraguay\",\n \"validFor\": null,\n \"value\": \"PY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Peru\",\n \"validFor\": null,\n \"value\": \"PE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Philippines\",\n \"validFor\": null,\n \"value\": \"PH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Pitcairn\",\n \"validFor\": null,\n \"value\": \"PN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Poland\",\n \"validFor\": null,\n \"value\": \"PL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Portugal\",\n \"validFor\": null,\n \"value\": \"PT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Qatar\",\n \"validFor\": null,\n \"value\": \"QA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Reunion\",\n \"validFor\": null,\n \"value\": \"RE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Romania\",\n \"validFor\": null,\n \"value\": \"RO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Russian Federation\",\n \"validFor\": null,\n \"value\": \"RU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Rwanda\",\n \"validFor\": null,\n \"value\": \"RW\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saint Barthélemy\",\n \"validFor\": null,\n \"value\": \"BL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saint Helena, Ascension and Tristan da Cunha\",\n \"validFor\": null,\n \"value\": \"SH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saint Kitts and Nevis\",\n \"validFor\": null,\n \"value\": \"KN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saint Lucia\",\n \"validFor\": null,\n \"value\": \"LC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saint Martin (French part)\",\n \"validFor\": null,\n \"value\": \"MF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saint Pierre and Miquelon\",\n \"validFor\": null,\n \"value\": \"PM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saint Vincent and the Grenadines\",\n \"validFor\": null,\n \"value\": \"VC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Samoa\",\n \"validFor\": null,\n \"value\": \"WS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"San Marino\",\n \"validFor\": null,\n \"value\": \"SM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Sao Tome and Principe\",\n \"validFor\": null,\n \"value\": \"ST\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Saudi Arabia\",\n \"validFor\": null,\n \"value\": \"SA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Senegal\",\n \"validFor\": null,\n \"value\": \"SN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Serbia\",\n \"validFor\": null,\n \"value\": \"RS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Seychelles\",\n \"validFor\": null,\n \"value\": \"SC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Sierra Leone\",\n \"validFor\": null,\n \"value\": \"SL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Singapore\",\n \"validFor\": null,\n \"value\": \"SG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Sint Maarten (Dutch part)\",\n \"validFor\": null,\n \"value\": \"SX\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Slovakia\",\n \"validFor\": null,\n \"value\": \"SK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Slovenia\",\n \"validFor\": null,\n \"value\": \"SI\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Solomon Islands\",\n \"validFor\": null,\n \"value\": \"SB\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Somalia\",\n \"validFor\": null,\n \"value\": \"SO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"South Africa\",\n \"validFor\": null,\n \"value\": \"ZA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"South Georgia and the South Sandwich Islands\",\n \"validFor\": null,\n \"value\": \"GS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"South Sudan\",\n \"validFor\": null,\n \"value\": \"SS\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Spain\",\n \"validFor\": null,\n \"value\": \"ES\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Sri Lanka\",\n \"validFor\": null,\n \"value\": \"LK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Sudan\",\n \"validFor\": null,\n \"value\": \"SD\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Suriname\",\n \"validFor\": null,\n \"value\": \"SR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Svalbard and Jan Mayen\",\n \"validFor\": null,\n \"value\": \"SJ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Swaziland\",\n \"validFor\": null,\n \"value\": \"SZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Sweden\",\n \"validFor\": null,\n \"value\": \"SE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Switzerland\",\n \"validFor\": null,\n \"value\": \"CH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Syrian Arab Republic\",\n \"validFor\": null,\n \"value\": \"SY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Tajikistan\",\n \"validFor\": null,\n \"value\": \"TJ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Tanzania, United Republic of\",\n \"validFor\": null,\n \"value\": \"TZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Thailand\",\n \"validFor\": null,\n \"value\": \"TH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Timor-Leste\",\n \"validFor\": null,\n \"value\": \"TL\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Togo\",\n \"validFor\": null,\n \"value\": \"TG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Tokelau\",\n \"validFor\": null,\n \"value\": \"TK\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Tonga\",\n \"validFor\": null,\n \"value\": \"TO\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Trinidad and Tobago\",\n \"validFor\": null,\n \"value\": \"TT\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Tunisia\",\n \"validFor\": null,\n \"value\": \"TN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Turkey\",\n \"validFor\": null,\n \"value\": \"TR\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Turkmenistan\",\n \"validFor\": null,\n \"value\": \"TM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Turks and Caicos Islands\",\n \"validFor\": null,\n \"value\": \"TC\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Tuvalu\",\n \"validFor\": null,\n \"value\": \"TV\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Uganda\",\n \"validFor\": null,\n \"value\": \"UG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Ukraine\",\n \"validFor\": null,\n \"value\": \"UA\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"United Arab Emirates\",\n \"validFor\": null,\n \"value\": \"AE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"United Kingdom\",\n \"validFor\": null,\n \"value\": \"GB\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Uruguay\",\n \"validFor\": null,\n \"value\": \"UY\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Uzbekistan\",\n \"validFor\": null,\n \"value\": \"UZ\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Vanuatu\",\n \"validFor\": null,\n \"value\": \"VU\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Venezuela, Bolivarian Republic of\",\n \"validFor\": null,\n \"value\": \"VE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Viet Nam\",\n \"validFor\": null,\n \"value\": \"VN\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Virgin Islands, British\",\n \"validFor\": null,\n \"value\": \"VG\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Wallis and Futuna\",\n \"validFor\": null,\n \"value\": \"WF\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Western Sahara\",\n \"validFor\": null,\n \"value\": \"EH\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Yemen\",\n \"validFor\": null,\n \"value\": \"YE\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Zambia\",\n \"validFor\": null,\n \"value\": \"ZM\"\n },\n {\n \"active\": true,\n \"defaultValue\": false,\n \"label\": \"Zimbabwe\",\n \"validFor\": null,\n \"value\": \"ZW\"\n }\n];\n\nexport default countries;","import { render } from \"./country.vue?vue&type=template&id=6f4d04d2\"\nimport script from \"./country.vue?vue&type=script&lang=js\"\nexport * from \"./country.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./NewSubscriber.vue?vue&type=template&id=02d898ea&scoped=true\"\nimport script from \"./NewSubscriber.vue?vue&type=script&lang=js\"\nexport * from \"./NewSubscriber.vue?vue&type=script&lang=js\"\n\nimport \"./NewSubscriber.vue?vue&type=style&index=0&id=02d898ea&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-02d898ea\"]])\n\nexport default __exports__","\n\n\n","\n\n","\n\n","import { render } from \"./multi.vue?vue&type=template&id=30160d9e\"\nimport script from \"./multi.vue?vue&type=script&lang=js\"\nexport * from \"./multi.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./single.vue?vue&type=template&id=4a0f97b8\"\nimport script from \"./single.vue?vue&type=script&lang=js\"\nexport * from \"./single.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./list.vue?vue&type=template&id=8d42850a\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./NewSubscriberSuccess.vue?vue&type=template&id=852a19f4\"\nimport script from \"./NewSubscriberSuccess.vue?vue&type=script&lang=js\"\nexport * from \"./NewSubscriberSuccess.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","\n\n","//formats a date to 'MM/DD/YYYY'\nconst formatDate = (_date) => {\n if (!(_date instanceof Date)) {\n return undefined;\n }\n\n return Intl.DateTimeFormat('en-US').format(_date);\n};\n\n//Tests the date to make sure it is YYYY-MM-DD\n//TODO: Should test date for validity of day and month\nconst isDate = (rawDate) => {\n const regExp = /^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/g;\n return regExp.test(rawDate);\n};\n\n//parses a YYYY-MM-DD string into a date.\nconst parseDate = (rawDate) => {\n //if this isn't a string or in the valid format, return null.\n if (typeof rawDate !== 'string' || !isDate(rawDate)) {\n return null;\n }\n\n let dateParts = rawDate.split('-');\n let month = parseInt(dateParts[1]) - 1;\n let _date = new Date(dateParts[0], month, dateParts[2]);\n\n return _date;\n};\n\n//takes a string and returns it in the correct format.\nconst stringToFormattedDate = (rawDate) => {\n if (typeof rawDate !== 'string') {\n return undefined;\n }\n\n let _date = parseDate(rawDate);\n\n if (!_date || !(_date instanceof Date)) {\n return undefined;\n }\n\n return formatDate(_date);\n};\n\nexport {\n formatDate,\n isDate,\n parseDate,\n stringToFormattedDate,\n}","import { render } from \"./snooze.vue?vue&type=template&id=8dda0d56\"\nimport script from \"./snooze.vue?vue&type=script&lang=js\"\nexport * from \"./snooze.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Manage.vue?vue&type=template&id=6c391a32&scoped=true&class=manage\"\nimport script from \"./Manage.vue?vue&type=script&lang=js\"\nexport * from \"./Manage.vue?vue&type=script&lang=js\"\n\nimport \"./Manage.vue?vue&type=style&index=0&id=6c391a32&lang=sass&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6c391a32\"]])\n\nexport default __exports__","\n\n","import { render } from \"./ManageSuccess.vue?vue&type=template&id=166583ea\"\nimport script from \"./ManageSuccess.vue?vue&type=script&lang=js\"\nexport * from \"./ManageSuccess.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n","import { render } from \"./Resubscribe.vue?vue&type=template&id=69f997df\"\nimport script from \"./Resubscribe.vue?vue&type=script&lang=js\"\nexport * from \"./Resubscribe.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ResubscribeSuccess.vue?vue&type=template&id=1dd3b84c\"\nimport script from \"./ResubscribeSuccess.vue?vue&type=script&lang=js\"\nexport * from \"./ResubscribeSuccess.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n","import { render } from \"./UnsubscribeSuccess.vue?vue&type=template&id=86399010\"\nimport script from \"./UnsubscribeSuccess.vue?vue&type=script&lang=js\"\nexport * from \"./UnsubscribeSuccess.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/*!\n * vue-router v4.0.14\n * (c) 2022 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, 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\nconst 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 const 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().startsWith(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 const aLastIndex = a.matched.length - 1;\r\n const 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 (const 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 const 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 const 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 const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const 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/router/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/router/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 base = normalizeBase(base);\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 (const 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.includes('#'))\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 const 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 *\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 *\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 const isRootAdd = !originalRecord;\r\n const 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 const { 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 const parentPath = parent.record.path;\r\n const 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 const 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 const 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 while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\r\n // Adding children with empty path should still appear before the parent\r\n // https://github.com/vuejs/router/issues/1124\r\n (matcher.record.path !== matchers[i].record.path ||\r\n !isRecordChildOf(matcher, matchers[i])))\r\n 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/router.`);\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 const newParams = {};\r\n for (const 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 (const 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 const options = {};\r\n for (const key in defaults) {\r\n options[key] = 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 (const 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 (const 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 (const 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}\r\nfunction isRecordChildOf(record, parent) {\r\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\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. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : 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 const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const 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 const 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 (const key in query) {\r\n const 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, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\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, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\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-expect-error: _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-expect-error: _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-expect-error: 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 const 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 const 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 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 const 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 *\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 const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const 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 // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\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 if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\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 useLink,\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 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-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error 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 (const key in inner) {\r\n const innerValue = inner[key];\r\n const 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 if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = Array.isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\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://router.vuejs.org',\r\n logo: 'https://router.vuejs.org/logo.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 and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by <router-view>',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (Array.isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\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 api.sendInspectorState(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, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: api.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\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: api.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\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 subtitle: to.fullPath,\r\n time: api.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 (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\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 const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const 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 = \r\n // @ts-expect-error: intentionally avoid the type check\r\n 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 const 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 const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const 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 // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n 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 // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\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 const 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 const 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/router/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.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\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 ? // navigation redirects still mark the router as ready\r\n isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)\r\n ? error\r\n : markAsReady(error) // also returns the error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\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-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\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.includes(record)) {\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 const 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 )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ |\r\n 16 /* NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\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, toLocation, from);\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) {\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ | 16 /* NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\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 *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\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 function markAsReady(err) {\r\n if (!ready) {\r\n // still not ready if an error happened\r\n ready = !err;\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 return err;\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 const 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(err => triggerError(err, to, from));\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 (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: 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 const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && 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","//import the components\nimport Email from '../views/Email.vue';\nimport Unsubscribe from '../views/Unsubscribe.vue';\nimport NewSubscriber from \"../views/NewSubscriber.vue\";\nimport NewSubscriberSuccess from \"../views/NewSubscriberSuccess.vue\";\nimport Manage from \"../views/Manage.vue\";\nimport ManageSuccess from \"../views/ManageSuccess.vue\";\nimport Resubscribe from \"../views/Resubscribe.vue\";\nimport ResubscribeSuccess from \"../views/ResubscribeSuccess.vue\";\nimport UnsubscribeSuccess from \"../views/UnsubscribeSuccess.vue\";\nimport { createRouter, createWebHashHistory } from 'vue-router';\n\n//define the routes\nconst routes = [\n { \n path: '/',\n component: Email,\n },\n {\n path:'/manage',\n component: Manage\n },\n {\n path: '/manage-success',\n component: ManageSuccess\n },\n {\n path: '/new',\n component: NewSubscriber,\n },\n {\n path: '/new-success',\n component: NewSubscriberSuccess\n },\n {\n path: '/resubscribe',\n component: Resubscribe\n },\n {\n path: '/resubscribe-success',\n component: ResubscribeSuccess\n },\n {\n path: '/unsubscribe',\n component: Unsubscribe\n },\n {\n path: '/unsubscribe-success',\n component: UnsubscribeSuccess\n }\n]\n\n//create the router\nconst router = createRouter({\n history: createWebHashHistory(),\n routes\n});\n\nexport default router;","import { createApp } from 'vue'\nimport App from './App.vue'\nimport Router from './router';\n\ncreateApp(App)\n .use(Router)\n .mount('#br_preferenceCenter');\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NewSubscriber.vue?vue&type=style&index=0&id=02d898ea&scoped=true&lang=css\"","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n const currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n this.parent = undefined;\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let parent = activeEffect;\r\n let lastShouldTrack = shouldTrack;\r\n while (parent) {\r\n if (parent === this) {\r\n return;\r\n }\r\n parent = parent.parent;\r\n }\r\n try {\r\n this.parent = activeEffect;\r\n activeEffect = this;\r\n shouldTrack = true;\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n activeEffect = this.parent;\r\n shouldTrack = lastShouldTrack;\r\n this.parent = undefined;\r\n if (this.deferStop) {\r\n this.stop();\r\n }\r\n }\r\n }\r\n stop() {\r\n // stopped while running itself - defer the cleanup\r\n if (activeEffect === this) {\r\n this.deferStop = true;\r\n }\r\n else if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n }\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n for (const effect of isArray(dep) ? dep : [...dep]) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(\r\n/*#__PURE__*/\r\nObject.getOwnPropertyNames(Symbol)\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - does not apply for Array + integer key.\r\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\r\n return shouldUnwrap ? res.value : res;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow && !isReadonly(value)) {\r\n if (!isShallow(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n }\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 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 warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, rawKey);\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, rawKey);\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\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 isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (shouldTrack && activeEffect) {\r\n ref = toRaw(ref);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep || (ref.dep = createDep()), {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep || (ref.dep = createDep()));\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this.__v_isShallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this.__v_isShallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = /*#__PURE__*/ Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, reactive, shallowReactive, trigger, isProxy, shallowReadonly, track, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, def, isReservedProp, EMPTY_ARR, capitalize, toRawType, makeMap, isBuiltInDirective, NO, normalizeClass, normalizeStyle, isGloballyWhitelisted } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, 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 [\"sp\" /* SERVER_PREFETCH */]: 'serverPrefetch hook',\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/core'\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 = /*#__PURE__*/ 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(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (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 if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, 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 continue;\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 continue;\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 // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\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 ||\r\n pendingPreFlushCbs.length ||\r\n 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 const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\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 return true;\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 getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n // eslint-disable-next-line no-restricted-globals\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n if (instance.isUnmounted)\r\n return;\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n else if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\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) {\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 const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\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 isMultiSource = true;\r\n forceTrigger = source.some(isReactive);\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);\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 onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\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 onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\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; // the scheduler function gets called directly\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 effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (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 if (isPlainObject(value)) {\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 let child = children[0];\r\n if (children.length > 1) {\r\n let hasFound = false;\r\n // locate first non-comment child\r\n for (const c of children) {\r\n if (c.type !== Comment) {\r\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\r\n // warn more than one non-comment child\r\n warn(' can only be used on a single element or component. ' +\r\n 'Use for lists.');\r\n break;\r\n }\r\n child = c;\r\n hasFound = true;\r\n if (!(process.env.NODE_ENV !== 'production'))\r\n break;\r\n }\r\n }\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' &&\r\n mode !== 'out-in' &&\r\n mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\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, parentKey) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n // #5360 inherit parent key in case of