{"version":3,"mappings":"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","names":["m","require$$0","_extends","target","i","source","key","Action","PopStateEventType","createBrowserHistory","options","createBrowserLocation","window","globalHistory","pathname","search","hash","createLocation","createBrowserHref","to","createPath","getUrlBasedHistory","invariant","value","message","createKey","getHistoryState","location","index","current","state","parsePath","_ref","path","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","action","listener","getIndex","handlePop","nextIndex","delta","history","push","historyState","url","error","replace","createURL","base","href","fn","n","ResultType","stripBasename","basename","startIndex","nextChar","validMutationMethodsArr","validRequestMethodsArr","NavigationContext","React.createContext","LocationContext","useInRouterContext","React.useContext","useLocation","UNSAFE_invariant","Router","_ref5","basenameProp","children","locationProp","navigationType","navigator","staticProp","future","navigationContext","React.useMemo","locationContext","trailingPathname","React.createElement","REACT_ROUTER_VERSION","START_TRANSITION","startTransitionImpl","React","BrowserRouter","_ref4","historyRef","React.useRef","setStateImpl","React.useState","v7_startTransition","setState","React.useCallback","newState","React.useLayoutEffect","DataRouterHook","DataRouterStateHook","createStoreImpl","createState","listeners","partial","nextState","previousState","getState","api","initialState","__vite_import_meta_env__","createStore","e","h","a","b","k","l","p","q","d","f","c","g","r","t","u","useSyncExternalStoreShim_production_min","shimModule","require$$1","v","w","withSelector_production_min","withSelectorModule","useDebugValue","ReactExports","useSyncExternalStoreWithSelector","useSyncExternalStoreExports","didWarnAboutEqualityFn","identity","arg","useStore","selector","equalityFn","slice","createImpl","useBoundStore","create","trackedConnections","getTrackedConnectionState","name","api2","extractConnectionInformation","store","extensionConnector","existingConnection","newConnection","devtoolsImpl","devtoolsOptions","set","get","enabled","anonymousActionType","connection","connectionInformation","isRecording","nameOrAction","setStateFromDevtools","originalIsRecording","store2","didWarnAboutReservedActionType","originalDispatch","_a","parseJsonThen","stateFromDevtools","nextLiftedState","lastComputedState","devtools","stringified","parsed","debugLog","data","isGtagLoaded","waitForGtag","resolve","checkInterval","generateSessionId","getSessionId","sessionId","safeGtagCall","command","params","sectionMetadata","getFullPagePath","trackThemeChange","newTheme","previousTheme","trackAnchorChange","newAnchor","oldAnchor","fullPath","trackPageView","trackSectionView","sectionId","metadata","trackSocialClick","platform","eventName","trackResumeDownload","format","version","trackResumeView","trackChatOpen","trackChatMessage","messageType","messageLength","trackContactOpened","trackContactMessage","initializeAnalytics","initialAnchor","THEME_STORAGE_KEY","CLICK_THRESHOLD","TIME_WINDOW","PARTY_HIDE_DURATION","getThemeFromUrl","themeParam","getStoredTheme","storedTheme","saveThemePreference","theme","updateUrlTheme","DEFAULT_THEME","useThemeStore","currentTime","clickCount","lastClickTime","isWithinTimeWindow","newClickCount","urlTheme","reactJsxRuntime_production_min","jsxRuntimeModule","AppLogicContext","createContext","toggleTheme","isToggleHidden","useAppLogic","useContext","AppLogicProvider","_jsx","Provider","ThemeProvider","initTheme","isInitialized","useRef","useEffect","applyTheme","document","documentElement","classList","remove","add","setAttribute","themeColors","light","dark","party","querySelectorAll","forEach","tag","metaThemeColor","createElement","content","head","appendChild","style","transform","requestAnimationFrame","log","_Fragment","useSectionStore","section","debounce","ms","timeoutId","args","useScrollSpy","setCurrentSection","lastTrackedSection","lastAnchor","lastUpdateTime","debouncedUpdateURL","id","currentPath","currentSearch","newHash","debouncedTrackSection","handleScroll","now","nodeList","sections","currentSection","minDistance","rect","distance","ticking","scrollListener","handleInitialScroll","targetId","targetSection","isInitialLoad","isResumeClick","headerHeight","elementPosition","offsetPosition","scrollToSection","element","useCurrentSection","useState","updateSection","addEventListener","currentSectionId","Infinity","getBoundingClientRect","Math","abs","top","passive","removeEventListener","SidePanel","isOpen","onClose","label","handleNavClick","className","onClick","map","DataContext","cache","experience","skills","projects","aboutMe","contact","lastFetchTime","CACHE_DURATION","DataProvider","experienceData","skillsData","projectsData","aboutMeData","contactData","isLoading","controller","AbortController","Date","prev","experienceRes","skillsRes","projectsRes","aboutMeRes","contactRes","Promise","all","fetch","signal","headers","json","err","Error","abort","useData","context","MoonIcon","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","PartyIcon","_jsxs","cx","cy","SandwichIcon","x1","y1","x2","y2","SunIcon","ThemeIcon","memo","HeaderSkeleton","Header","handleResumeClick","handleAdminClick","isAdminLoggedIn","isSidePanelOpen","setIsSidePanelOpen","updateURL","URL","searchParams","delete","replaceState","toString","shouldBeOpen","URLSearchParams","toggleSidePanel","handleCloseSidePanel","firstName","lastName","GitHubIcon","lazy","__vitePreload","LinkedInIcon","EmailIcon","ResumeIcon","IconFallback","SocialLinks","github","linkedin","email","onResumeClick","onContactSelect","handleSocialClick","handleContactClick","rel","Suspense","fallback","type","ErrorBoundary","Component","hasError","getDerivedStateFromError","componentDidCatch","errorInfo","render","props","reload","useContact","selectedContact","setSelectedContact","currentUrl","urlWithoutHash","finalUrl","handlePopState","ContactModal","LoadingSpinner","TLDRContent","handleAIClick","preventDefault","stopPropagation","chatButton","querySelector","click","greeting","description","src","full_portrait","alt","loading","cursor","TLDR","phone","country","Footer","onDoodleToggle","doodleClickCount","isPartyMode","getDoodleText","handleScrollToTop","API_CONFIG","PRIMARY","BLACK","WHITE","useAdminStore","credentials","response","token","TechnicalSkills","then","module","default","__esModule","Experience","Projects","MyResume","Doodle","AdminHandler","AdminLogin","LoadingFallback","AdminComponents","isAdminModalOpen","handleLoginSuccess","onLoginSuccess","MainContentInner","setTheme","isLoggedIn","contentLoaded","setContentLoaded","showDoodle","setShowDoodle","setDoodleClickCount","timer","setTimeout","substring","clearTimeout","resumeSection","getElementById","scrollIntoView","behavior","console","handleDoodleToggle","pushState","doodleSection","isVisible","MainContent","setIsAdminModalOpen","generatedAttribute","mouseDownEvent","mouseUpEvent","mouseLeaveEvent","mouseOutEvent","mouseMoveEvent","touchStartEvent","touchEndEvent","touchMoveEvent","touchCancelEvent","resizeEvent","visibilityChangeEvent","errorPrefix","percentDenominator","halfRandom","millisecondsToSeconds","MoveDirection","isBoolean","isString","isNumber","isObject","isArray","isNull","origin","squareExp","inverseFactorNumerator","Vector3d","xOrCoords","y","z","angle","length","coords3d","x","v3d","Vector","_random","_animationLoop","cb","idx","easingFunctions","double","doublePI","addEasing","easing","getEasing","getRandom","clamp","animate","cancelAnimation","handle","num","min","max","mix","comp1","comp2","weight1","weight2","randomInRange","getRangeMax","minOffset","getRangeMin","getRangeValue","setRangeValue","getDistances","pointA","pointB","dx","dy","getDistance","degToRad","degrees","getParticleDirectionAngle","direction","position","center","empty","half","quarter","threeQuarter","getParticleBaseVelocity","baseVelocity","collisionVelocity","v1","v2","m1","m2","calcExactPositionOrRandomFromSize","_b","parseAlpha","input","AnimationMode","AnimationStatus","DestroyType","OutModeDirection","PixelMode","StartValueType","_logger","getLogger","rectSideBounce","res","pSide","pOtherSide","rectSide","rectOtherSide","velocity","factor","minVelocity","checkSelector","selectors","executeOnSingleOrMultiple","isSsr","hasMatchMedia","safeMatchMedia","query","safeIntersectionObserver","callback","safeMutationObserver","isInArray","array","loadFont","font","weight","arrayRandomIndex","itemFromArray","useIndex","isPointInside","point","size","offset","radius","areBoundsInside","calculateBounds","bounds","inside","deepExtend","destination","sources","sourceIsArray","sourceDict","destDict","isDivModeEnabled","mode","divs","findItemFromSingleOrMultiple","divModeExecute","div","divMode","singleDivModeExecute","circleBounceDataFromParticle","circleBounce","p1","p2","xVelocityDiff","yVelocityDiff","pos1","pos2","xDist","yDist","u1","u2","vFinal1","vFinal2","rectBounce","particle","divBounds","pPos","bounceOptions","resH","resV","obj","item","itemFromSingleOrMultiple","initParticleNumericAnimationValue","pxRatio","valueRange","animationOptions","decayOffset","autoStatus","getPositionOrSize","positionOrSize","canvasSize","_","rest","getPosition","checkDestroy","destroyType","minValue","maxValue","updateAnimation","changeDirection","decay","AlterType","RgbIndexes","randomColorValue","midColorValue","colorManagers","addColorManager","manager","stringToRgba","shorthandRegex","hexFixed","regex","result","radix","rangeColorToRgb","color","colorToRgb","getRandomRgbColor","stringToRgb","rangeColorToHsl","rgb","rgbToHsl","r1","g1","b1","hslToRgb","hsl","s","hNormalized","sNormalized","lNormalized","rgbFactor","triple","grayscaleValue","channel","temp1","temp2","temp3","temp3Offset","sNormalizedOffset","phaseNumerator","phaseThird","red","green","blue","hslaToRgba","hsla","rgbResult","getStyleFromRgb","opacity","getStyleFromHsl","colorMix","color1","color2","size1","size2","rgb1","rgb2","getLinkColor","linkColor","sourceColor","destColor","hslColor","getLinkRandomColor","optColor","blink","consent","getHslFromAnimation","animation","getHslAnimationFromHsl","reduceFactor","resColor","setColorAnimation","colorValue","colorAnimation","defaultVelocity","defaultLoops","defaultTime","updateColorValue","range","decrease","updateColor","ranges","defaultTransform","drawLine","begin","end","paintBase","dimension","baseColor","paintImage","image","clear","drawParticle","container","colorStyles","backgroundMask","composite","shadow","pos","defaultAngle","rotateData","rotating","transformData","shadowColor","minStrokeWidth","drawData","drawShape","drawShapeAfterDraw","drawEffect","drawer","drawPlugin","plugin","drawParticlePlugin","alterHsl","setTransformValue","newFactor","newValue","defaultValue","setStyle","canvas","important","elementStyle","Canvas","updater","ctx","zOpacity","updaterTransform","fColor","sColor","cover","coverRgb","coverColor","reject","img","evt","trail","trailFill","factorNumerator","fillColor","observer","originalStyle","zIndex","pfColor","psColor","zIndexOptions","zIndexFactorOffset","zIndexFactor","zOpacityFactor","defaultOpacity","strokeOpacity","zStrokeOpacity","obs","records","record","background","newSize","oldSize","needsRefresh","InteractivityDetect","manageListener","event","handler","addOptions","removeOptions","EventListeners","mouseInteractivity","mousePos","mediaEvent","defaultThemes","themeName","handleResize","mouseLeaveTmpEvent","handlers","interactivityEl","html","canvasEl","detectType","mediaMatch","entries","interactivity","mouse","handled","mousePosition","mouseEvent","clientRect","sourceRect","targetRect","canvasRect","touchEvent","lengthOffset","lastTouch","defaultCoordinate","touches","touch","EventType","OptionsColor","Background","BackgroundMaskCover","BackgroundMask","FullScreen","ClickEvent","DivType","DivEvent","Parallax","HoverEvent","ResizeEvent","Events","onDiv","tmp","Modes","engine","interactors","interactor","Interactivity","detectsOn","defaultPosition","ManualParticle","ResponsiveMode","Responsive","ThemeMode","ThemeDefault","Theme","AnimationOptions","RangedAnimationOptions","ColorAnimation","HslAnimation","AnimatableColor","CollisionMode","CollisionsAbsorb","CollisionsOverlap","ValueWithRandom","AnimationValueWithRandom","RangedAnimationValueWithRandom","ParticlesBounceFactor","ParticlesBounce","Collisions","Effect","effect","MoveAngle","MoveAttract","rotateX","rotateY","MoveCenter","MoveGravity","MovePath","MoveTrailFill","MoveTrail","OutMode","OutModes","Spin","Move","outModes","OpacityAnimation","Opacity","ParticlesDensity","LimitMode","ParticlesNumberLimit","ParticlesNumber","Shadow","Shape","shape","SizeAnimation","Size","Stroke","ZIndex","ParticlesOptions","group","strokeToLoad","updaters","loadOptions","sourceOptionsArr","sourceOptions","loadParticlesOptions","Options","preset","detectRetina","fpsLimit","fullScreen","responsive","optResponsive","existingTheme","optTheme","defaultOptions","responsiveOptions","chosenTheme","clientDarkMode","defaultTheme","InteractorType","InteractionManager","ParticleOutType","defaultRetryCount","randomString","loadEffectData","effectOptions","reduceDuplicates","effectData","loadShapeData","shapeOptions","shapeData","fixOutMode","diameter","Particle","tryCount","pluginPos","exactPosition","fixHorizontal","outMode","fixVertical","moveOptions","rad","radOffset","collisionsOptions","overlapOptions","retries","rollFactor","none","backFactor","backSum","zIndexValue","minZ","defaultRadius","override","pathGenerator","shapeDrawer","_c","overrideOptions","mainOptions","particlesOptions","effectType","shapeType","overrideEffectType","overrideShapeType","availableEffects","availableShapes","pathOptions","particles","effectDrawer","sideCountFunc","mover","_d","_e","_f","Point","RangeType","BaseRange","Circle","distPos","circleRange","rSum","dist","Rectangle","rectRange","w2","h2","subdivideCount","QuadTree","rectangle","capacity","fixedIndex","sub","check","qTreeCapacity","defaultRemoveQuantity","qTreeRectangle","posOffset","sizeFactor","Particles","manualCount","numberOptions","densityFactor","optParticlesNumber","minLimit","optParticlesLimit","particlesNumber","particlesCount","densityOptions","defaultFactor","initializer","canAdd","zIdx","deleteCount","limitMode","limit","currentCount","countToRemove","condition","groups","groupOptions","j","nb","quantity","deleted","particlesToDelete","resizeFactor","checkDelete","zArray","defaultRatio","defaultReduceFactor","Retina","ratio","moveDistance","maxDistance","guardCheck","defaultFps","initDelta","smooth","loadContainerOptions","Container","entry","timestamp","el","clickOrTouchHandler","posRetina","clickHandler","touchStartHandler","touched","touchMoved","touchMoveHandler","touchEndHandler","minCoordinate","touchCancelHandler","generator","mainArr","force","refreshTime","frame","effects","shapes","availablePlugins","zLayers","duration","delay","defaultFpsLimit","minFpsLimit","needsUpdate","start","newMaxWidth","EventDispatcher","arr","getItemsFromInitializer","initializers","getDataFromUrl","generatedTrue","generatedFalse","canvasTag","getCanvasFromContainer","domContainer","existingCanvases","fullPercent","getDomContainer","Engine","config","refresh","interactorInitializer","moverInitializer","updaterInitializer","validType","items","currentOptions","oldIndex","minIndex","newItem","old","one","HslIndexes","HslColorManager","minLength","defaultAlpha","RgbColorManager","rgbColor","init","rgbColorManager","hslColorManager","ExternalInteractorBase","ParticlesInteractorBase","RotateDirection","GradientType","EasingType","tsParticles","moveSpeedFactor","minSpinRadius","spinFactor","applyDistance","initialPosition","dxFixed","dyFixed","hDistance","vDistance","hasHDistance","hasVDistance","vel","move","moveSpeed","maxSpeed","moveDrift","applyPath","gravityOptions","gravityFactor","zVelocityFactor","spin","updateFunc","maxCanvasSize","halfMaxSize","getProximitySpeedFactor","initSpin","spinOptions","spinPos","spinCenter","spinAcceleration","diffFactor","defaultSizeFactor","defaultDeltaFactor","BaseMover","particleOptions","slowFactor","baseSpeed","maxSize","deltaFactor","loadBaseMover","minAngle","drawCircle","sides","maxAngle","CircleDrawer","loadCircleShape","ColorUpdater","hAnimation","sAnimation","lAnimation","loadColorUpdater","OpacityUpdater","opacityOptions","opacityAnimation","loadOpacityUpdater","boundsMin","bounceHorizontal","bounced","newVelocity","minPos","bounceVertical","BounceOutMode","DestroyOutMode","_delta","vx","vy","NoneOutMode","pRadius","OutOutMode","circVec","newDx","newDy","warp","newPos","sizeValue","nextBounds","checkOutMode","OutOfCanvasUpdater","getUpdater","loadOutModesUpdater","minLoops","SizeUpdater","sizeOptions","sizeAnimation","loadSizeUpdater","loadBasic","loadEasingQuadPlugin","drawEmoji","previousAlpha","defaultFont","noPadding","EmojiDrawer","validTypes","promises","_container","emoji","emojiOptions","padding","fullSize","loadEmojiShape","minFactor","minRadius","processAttract","attractRadius","area","queryCb","attractOptions","attractFactor","normVec","clickAttract","enabledCb","attract","hoverAttract","Attract","attractMode","mouseMoveStatus","events","hoverEnabled","hoverMode","clickEnabled","clickMode","loadExternalAttractInteraction","Attractor","halfPI","toleranceFactor","processBounce","singleSelectorBounce","bounceCb","elem","tolerance","divBounce","bounceMode","mouseBounce","Bounce","Bouncer","bounce","loadExternalBounceInteraction","BubbleBase","BubbleDiv","Bubble","ProcessBubbleType","calculateBubbleValue","particleValue","modeValue","optionsValue","bubbleMode","defaultClickTime","ratioOffset","defaultBubbleValue","minRatio","Bubbler","mouseClickPos","bubbleOptions","bubble","distMouse","timeSpent","sizeData","opacityData","pointDistance","divBubble","modeColor","bubbleColor","pColor","modeOpacity","optOpacity","pOpacity","modeSize","optSize","pSize","bubbleParam","bubbleDuration","bubbleDistance","particlesParam","pObjBubble","pObj","repulseRadius","onHover","loadExternalBubbleInteraction","ConnectLinks","Connect","gradientMin","gradientMax","defaultLinksWidth","gradient","gradStop","sourcePos","destPos","midRgb","grad","drawConnectLine","lineStyle","connectOptions","drawConnection","ls","connectMode","Connector","connect","connectModeDistance","connectModeRadius","indexOffset","distMax","xDiff","yDiff","loadExternalConnectInteraction","GrabLinks","Grab","defaultWidth","drawGrabLine","colorLine","drawGrab","lineColor","beginPos","grabMode","minOpacity","Grabber","grab","grabLineOptions","lineOpacity","opacityLine","linksOptions","loadExternalGrabInteraction","pauseMode","Pauser","loadExternalPauseInteraction","Push","pushMode","minQuantity","Pusher","pushOptions","loadExternalPushInteraction","Remove","removeMode","Remover","removeNb","loadExternalRemoveInteraction","RepulseBase","RepulseDiv","Repulse","repulseMode","repulseRadiusFactor","repulseRadiusPower","squarePower","minSpeed","easingOffset","Repulser","repulseOptions","repulse","repulseDistance","vect","divRepulse","speed","easingFunc","repulseFactor","repulseOpts","hover","loadExternalRepulseInteraction","Slow","slowMode","Slower","slow","slowOptions","particlePos","proximityFactor","loadExternalSlowInteraction","stringStart","currentColorRegex","replaceColorSvg","imageShape","svgData","colorStyle","preFillIndex","loadImage","downloadSvgImage","replaceImageColor","imageData","svgColoredData","imageRes","svg","domUrl","errorHandler","img2","InterlaceOffsets","InterlaceSteps","ByteStream","bytes","count","acc","curr","blockString","minCount","emptySize","len","increment","blockData","noData","DisposalMethod","GIFDataHeaders","defaultFrame","initialTime","firstIndex","defaultLoopCount","parseColorTable","byteStream","colors","parseExtensionBlock","gif","getFrameIndex","getTransparencyIndex","packedByte","transparencyFlag","transparencyIndex","applicationExtension","parseImageBlock","avgAlpha","progressCallback","localColorTableFlag","interlacedFlag","localColorCount","getColor","minCodeSize","clearCode","readBits","bytePos","bitPos","code","dic","pass","pixelPos","lineIndex","exit","last","parseBlock","getGIFLoopAmount","extension","decodeGIF","gifURL","buffer","globalColorTableFlag","globalColorCount","backgroundColorIndex","backgroundImage","frameIndex","incrementFrameIndex","getframeIndex","drawGif","offscreenCanvas","offscreenContext","previousImageData","loadGifImage","ImageDrawer","images","replaceColor","close","Preload","ImagePreloaderPlugin","preloadOptions","existing","preload","extLength","addLoadImageToEngine","imageFunc","loadImageShape","preloader","LifeDelay","LifeDuration","Life","noTime","infiniteValue","noLife","minCanvasSize","updateLife","life","justSpawned","widthRange","heightRange","lifeOptions","LifeUpdater","loadLifeUpdater","centerY","LineDrawer","loadLineShape","ParallaxMover","parallaxOptions","parallaxForce","canvasCenter","parallaxSmooth","centerDistance","loadParallaxMover","rotate","ax","ay","p1Factor","p2Factor","loadParticlesAttractInteraction","absorbFactor","minAbsorbFactor","updateAbsorb","r2","pixelRatio","absorb","fixBounceSpeed","destroy","resolveCollision","Collider","radius1","radius2","distP","loadParticlesCollisionsInteraction","CircleWarp","circle","biggerCircle","rectSW","LinksShadow","LinksTriangle","Links","opacityOffset","getLinkDistance","optDistance","absDiffs","warpDistances","Linker","linkOpt1","linkOpt2","loadLinksInteraction","drawTriangle","p3","drawLinkLine","drawn","links","pi1","pi2","endNE","d1","yi","endSW","d2","xi","endSE","d3","drawLinkTriangle","pos3","colorTriangle","opacityTriangle","getLinkKey","ids","setLinkFrequency","dictionary","minWidth","maxFrequency","LinkInstance","link","p1LinksOptions","twinkle","twinkleFreq","twinkleRgb","link1","link2","triangleOptions","linksDistance","p1Links","vertices","linkFreq","vertex","retina","LinksPlugin","loadLinksPlugin","loadParticlesLinksInteraction","piDeg","sidesOffset","drawPolygon","side","sideCount","decimalSides","interiorAngleDegrees","interiorAngle","defaultSides","PolygonDrawerBase","polygon","sidesCenterFactor","yFactor","sidesFactor","PolygonDrawer","TriangleDrawer","loadGenericPolygonShape","loadTriangleShape","loadPolygonShape","RotateAnimation","Rotate","doublePIDeg","RotateUpdater","rotateOptions","rotateDirection","rotateAnimation","loadRotateUpdater","fixFactorSquared","fixFactor","drawSquare","fixedRadius","fixedDiameter","SquareDrawer","loadSquareShape","defaultInset","drawStar","inset","StarDrawer","star","loadStarShape","StrokeColorUpdater","strokeHslColor","strokeColor","loadStrokeColorUpdater","loadSlim","ParticlesProvider","setInit","initParticlesEngine","particlesLoaded","Array","conf","ResumeContext","pdfUrl","resumeFileName","handleDownload","ResumeProvider","setError","setIsLoading","setPdfUrl","setResumeFileName","setupPdfUrl","getTime","fetchResumeFileName","ok","statusText","method","errorText","text","blob","createObjectURL","display","download","body","removeChild","revokeObjectURL","useResume","undefined","useThemeBackground","useMemo","generateRandomZuniUrls","usedNumbers","urls","randomNum","createParticleConfig","particleColor","backgroundColor","particleCount","particleSize","lineDistance","lineWidth","imageUrls","imageSizeAnimation","getThemeConfig","zuniImageUrls","partyColors","configs","ChatPortal","App","baseConfig","isolation","random","ReactDOM","createRoot","StrictMode"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,13,14,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258],"sources":["../../node_modules/react-dom/client.js","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../node_modules/zustand/esm/vanilla.mjs","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/zustand/esm/index.mjs","../../node_modules/zustand/esm/middleware.mjs","../../src/shared/utils/analytics.ts","../../src/shared/stores/theme-store.ts","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../src/app/providers/app-logic-provider.tsx","../../src/app/providers/theme-provider.tsx","../../src/shared/stores/section-store.ts","../../src/shared/hooks/use-scroll-spy.ts","../../src/shared/utils/scroll-utils.ts","../../src/shared/components/navigation/side-panel.tsx","../../src/app/providers/data-provider.tsx","../../src/shared/components/icons/moon-icon.tsx","../../src/shared/components/icons/party-icon.tsx","../../src/shared/components/icons/sandwich-icon.tsx","../../src/shared/components/icons/sun-icon.tsx","../../src/shared/components/header/header.tsx","../../src/app/components/sections/social-links/SocialLinks.tsx","../../src/app/components/error-boundary.tsx","../../src/app/components/sections/about/hooks/useContact.ts","../../src/app/components/sections/about.tsx","../../src/app/components/footer.tsx","../../src/config/constants.ts","../../src/shared/stores/admin-store.ts","../../src/app/components/main-content.tsx","../../node_modules/@tsparticles/engine/browser/Core/Utils/Constants.js","../../node_modules/@tsparticles/engine/browser/Enums/Directions/MoveDirection.js","../../node_modules/@tsparticles/engine/browser/Utils/TypeUtils.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/Vectors.js","../../node_modules/@tsparticles/engine/browser/Utils/NumberUtils.js","../../node_modules/@tsparticles/engine/browser/Enums/Modes/AnimationMode.js","../../node_modules/@tsparticles/engine/browser/Enums/AnimationStatus.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/DestroyType.js","../../node_modules/@tsparticles/engine/browser/Enums/Directions/OutModeDirection.js","../../node_modules/@tsparticles/engine/browser/Enums/Modes/PixelMode.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/StartValueType.js","../../node_modules/@tsparticles/engine/browser/Utils/Utils.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/AlterType.js","../../node_modules/@tsparticles/engine/browser/Utils/ColorUtils.js","../../node_modules/@tsparticles/engine/browser/Utils/CanvasUtils.js","../../node_modules/@tsparticles/engine/browser/Core/Canvas.js","../../node_modules/@tsparticles/engine/browser/Enums/InteractivityDetect.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/EventListeners.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/EventType.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/OptionsColor.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Background/Background.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/BackgroundMask/BackgroundMask.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/FullScreen/FullScreen.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/ClickEvent.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/DivType.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/DivEvent.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/Parallax.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/HoverEvent.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/ResizeEvent.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/Events.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Modes/Modes.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Interactivity.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/ManualParticle.js","../../node_modules/@tsparticles/engine/browser/Enums/Modes/ResponsiveMode.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Responsive.js","../../node_modules/@tsparticles/engine/browser/Enums/Modes/ThemeMode.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Theme/ThemeDefault.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Theme/Theme.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/AnimationOptions.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/ColorAnimation.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/HslAnimation.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/AnimatableColor.js","../../node_modules/@tsparticles/engine/browser/Enums/Modes/CollisionMode.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/ValueWithRandom.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/Collisions.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Effect/Effect.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveAngle.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveAttract.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveCenter.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveGravity.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Path/MovePath.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveTrailFill.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveTrail.js","../../node_modules/@tsparticles/engine/browser/Enums/Modes/OutMode.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/OutModes.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Spin.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Move.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Opacity/Opacity.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesDensity.js","../../node_modules/@tsparticles/engine/browser/Enums/Modes/LimitMode.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesNumber.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Shadow.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Shape/Shape.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Size/SizeAnimation.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Size/Size.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Stroke.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/ZIndex/ZIndex.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/ParticlesOptions.js","../../node_modules/@tsparticles/engine/browser/Utils/OptionsUtils.js","../../node_modules/@tsparticles/engine/browser/Options/Classes/Options.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/InteractorType.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/InteractionManager.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/ParticleOutType.js","../../node_modules/@tsparticles/engine/browser/Core/Particle.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/Point.js","../../node_modules/@tsparticles/engine/browser/Types/RangeType.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/Ranges.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/QuadTree.js","../../node_modules/@tsparticles/engine/browser/Core/Particles.js","../../node_modules/@tsparticles/engine/browser/Core/Retina.js","../../node_modules/@tsparticles/engine/browser/Core/Container.js","../../node_modules/@tsparticles/engine/browser/Utils/EventDispatcher.js","../../node_modules/@tsparticles/engine/browser/Core/Engine.js","../../node_modules/@tsparticles/engine/browser/Utils/HslColorManager.js","../../node_modules/@tsparticles/engine/browser/Utils/RgbColorManager.js","../../node_modules/@tsparticles/engine/browser/init.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/ExternalInteractorBase.js","../../node_modules/@tsparticles/engine/browser/Core/Utils/ParticlesInteractorBase.js","../../node_modules/@tsparticles/engine/browser/Enums/Directions/RotateDirection.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/GradientType.js","../../node_modules/@tsparticles/engine/browser/Enums/Types/EasingType.js","../../node_modules/@tsparticles/engine/browser/index.js","../../node_modules/@tsparticles/react/dist/Particles.js","../../node_modules/@tsparticles/react/dist/index.js","../../node_modules/@tsparticles/move-base/browser/Utils.js","../../node_modules/@tsparticles/move-base/browser/BaseMover.js","../../node_modules/@tsparticles/move-base/browser/index.js","../../node_modules/@tsparticles/shape-circle/browser/Utils.js","../../node_modules/@tsparticles/shape-circle/browser/CircleDrawer.js","../../node_modules/@tsparticles/shape-circle/browser/index.js","../../node_modules/@tsparticles/updater-color/browser/ColorUpdater.js","../../node_modules/@tsparticles/updater-color/browser/index.js","../../node_modules/@tsparticles/updater-opacity/browser/OpacityUpdater.js","../../node_modules/@tsparticles/updater-opacity/browser/index.js","../../node_modules/@tsparticles/updater-out-modes/browser/Utils.js","../../node_modules/@tsparticles/updater-out-modes/browser/BounceOutMode.js","../../node_modules/@tsparticles/updater-out-modes/browser/DestroyOutMode.js","../../node_modules/@tsparticles/updater-out-modes/browser/NoneOutMode.js","../../node_modules/@tsparticles/updater-out-modes/browser/OutOutMode.js","../../node_modules/@tsparticles/updater-out-modes/browser/OutOfCanvasUpdater.js","../../node_modules/@tsparticles/updater-out-modes/browser/index.js","../../node_modules/@tsparticles/updater-size/browser/SizeUpdater.js","../../node_modules/@tsparticles/updater-size/browser/index.js","../../node_modules/@tsparticles/basic/browser/index.js","../../node_modules/@tsparticles/plugin-easing-quad/browser/index.js","../../node_modules/@tsparticles/shape-emoji/browser/Utils.js","../../node_modules/@tsparticles/shape-emoji/browser/EmojiDrawer.js","../../node_modules/@tsparticles/shape-emoji/browser/index.js","../../node_modules/@tsparticles/interaction-external-attract/browser/Utils.js","../../node_modules/@tsparticles/interaction-external-attract/browser/Options/Classes/Attract.js","../../node_modules/@tsparticles/interaction-external-attract/browser/Attractor.js","../../node_modules/@tsparticles/interaction-external-attract/browser/index.js","../../node_modules/@tsparticles/interaction-external-bounce/browser/Utils.js","../../node_modules/@tsparticles/interaction-external-bounce/browser/Options/Classes/Bounce.js","../../node_modules/@tsparticles/interaction-external-bounce/browser/Bouncer.js","../../node_modules/@tsparticles/interaction-external-bounce/browser/index.js","../../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleBase.js","../../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleDiv.js","../../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/Bubble.js","../../node_modules/@tsparticles/interaction-external-bubble/browser/Enums.js","../../node_modules/@tsparticles/interaction-external-bubble/browser/Utils.js","../../node_modules/@tsparticles/interaction-external-bubble/browser/Bubbler.js","../../node_modules/@tsparticles/interaction-external-bubble/browser/index.js","../../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/ConnectLinks.js","../../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/Connect.js","../../node_modules/@tsparticles/interaction-external-connect/browser/Utils.js","../../node_modules/@tsparticles/interaction-external-connect/browser/Connector.js","../../node_modules/@tsparticles/interaction-external-connect/browser/index.js","../../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/GrabLinks.js","../../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/Grab.js","../../node_modules/@tsparticles/interaction-external-grab/browser/Utils.js","../../node_modules/@tsparticles/interaction-external-grab/browser/Grabber.js","../../node_modules/@tsparticles/interaction-external-grab/browser/index.js","../../node_modules/@tsparticles/interaction-external-pause/browser/Pauser.js","../../node_modules/@tsparticles/interaction-external-pause/browser/index.js","../../node_modules/@tsparticles/interaction-external-push/browser/Options/Classes/Push.js","../../node_modules/@tsparticles/interaction-external-push/browser/Pusher.js","../../node_modules/@tsparticles/interaction-external-push/browser/index.js","../../node_modules/@tsparticles/interaction-external-remove/browser/Options/Classes/Remove.js","../../node_modules/@tsparticles/interaction-external-remove/browser/Remover.js","../../node_modules/@tsparticles/interaction-external-remove/browser/index.js","../../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseBase.js","../../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseDiv.js","../../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/Repulse.js","../../node_modules/@tsparticles/interaction-external-repulse/browser/Repulser.js","../../node_modules/@tsparticles/interaction-external-repulse/browser/index.js","../../node_modules/@tsparticles/interaction-external-slow/browser/Options/Classes/Slow.js","../../node_modules/@tsparticles/interaction-external-slow/browser/Slower.js","../../node_modules/@tsparticles/interaction-external-slow/browser/index.js","../../node_modules/@tsparticles/shape-image/browser/Utils.js","../../node_modules/@tsparticles/shape-image/browser/GifUtils/Constants.js","../../node_modules/@tsparticles/shape-image/browser/GifUtils/ByteStream.js","../../node_modules/@tsparticles/shape-image/browser/GifUtils/Enums/DisposalMethod.js","../../node_modules/@tsparticles/shape-image/browser/GifUtils/Types/GIFDataHeaders.js","../../node_modules/@tsparticles/shape-image/browser/GifUtils/Utils.js","../../node_modules/@tsparticles/shape-image/browser/ImageDrawer.js","../../node_modules/@tsparticles/shape-image/browser/Options/Classes/Preload.js","../../node_modules/@tsparticles/shape-image/browser/ImagePreloader.js","../../node_modules/@tsparticles/shape-image/browser/index.js","../../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDelay.js","../../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDuration.js","../../node_modules/@tsparticles/updater-life/browser/Options/Classes/Life.js","../../node_modules/@tsparticles/updater-life/browser/Utils.js","../../node_modules/@tsparticles/updater-life/browser/LifeUpdater.js","../../node_modules/@tsparticles/updater-life/browser/index.js","../../node_modules/@tsparticles/shape-line/browser/Utils.js","../../node_modules/@tsparticles/shape-line/browser/LineDrawer.js","../../node_modules/@tsparticles/shape-line/browser/index.js","../../node_modules/@tsparticles/move-parallax/browser/ParallaxMover.js","../../node_modules/@tsparticles/move-parallax/browser/index.js","../../node_modules/@tsparticles/interaction-particles-attract/browser/Attractor.js","../../node_modules/@tsparticles/interaction-particles-attract/browser/index.js","../../node_modules/@tsparticles/interaction-particles-collisions/browser/Absorb.js","../../node_modules/@tsparticles/interaction-particles-collisions/browser/Bounce.js","../../node_modules/@tsparticles/interaction-particles-collisions/browser/Destroy.js","../../node_modules/@tsparticles/interaction-particles-collisions/browser/ResolveCollision.js","../../node_modules/@tsparticles/interaction-particles-collisions/browser/Collider.js","../../node_modules/@tsparticles/interaction-particles-collisions/browser/index.js","../../node_modules/@tsparticles/interaction-particles-links/browser/CircleWarp.js","../../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksShadow.js","../../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksTriangle.js","../../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/Links.js","../../node_modules/@tsparticles/interaction-particles-links/browser/Linker.js","../../node_modules/@tsparticles/interaction-particles-links/browser/interaction.js","../../node_modules/@tsparticles/interaction-particles-links/browser/Utils.js","../../node_modules/@tsparticles/interaction-particles-links/browser/LinkInstance.js","../../node_modules/@tsparticles/interaction-particles-links/browser/LinksPlugin.js","../../node_modules/@tsparticles/interaction-particles-links/browser/plugin.js","../../node_modules/@tsparticles/interaction-particles-links/browser/index.js","../../node_modules/@tsparticles/shape-polygon/browser/Utils.js","../../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawerBase.js","../../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawer.js","../../node_modules/@tsparticles/shape-polygon/browser/TriangleDrawer.js","../../node_modules/@tsparticles/shape-polygon/browser/index.js","../../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/RotateAnimation.js","../../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/Rotate.js","../../node_modules/@tsparticles/updater-rotate/browser/RotateUpdater.js","../../node_modules/@tsparticles/updater-rotate/browser/index.js","../../node_modules/@tsparticles/shape-square/browser/Utils.js","../../node_modules/@tsparticles/shape-square/browser/SquareDrawer.js","../../node_modules/@tsparticles/shape-square/browser/index.js","../../node_modules/@tsparticles/shape-star/browser/Utils.js","../../node_modules/@tsparticles/shape-star/browser/StarDrawer.js","../../node_modules/@tsparticles/shape-star/browser/index.js","../../node_modules/@tsparticles/updater-stroke-color/browser/StrokeColorUpdater.js","../../node_modules/@tsparticles/updater-stroke-color/browser/index.js","../../node_modules/@tsparticles/slim/browser/index.js","../../src/app/providers/particles-provider.tsx","../../src/app/providers/resume-provider.tsx","../../src/shared/hooks/use-theme-background.ts","../../src/shared/utils/theme/get-theme-config.ts","../../src/app/app.tsx","../../src/main.tsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @remix-run/router v1.20.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded, allowPartial);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname, allowPartial) {\n if (allowPartial === void 0) {\n allowPartial = false;\n }\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n }, remainingPathname);\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass DataWithResponseInit {\n constructor(data, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data;\n this.init = init || null;\n }\n}\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nfunction data(data, init) {\n return new DataWithResponseInit(data, typeof init === \"number\" ? {\n status: init\n } : init);\n}\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(initialMatches, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n let initialized;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(null, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some(m => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some(m => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = new Set();\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate = undefined;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise(resolve => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionResult;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [findNearestBoundary(matches).route.id, {\n type: ResultType.error,\n error: opts.pendingError\n }];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionResult = await handleAction(request, location, opts.submission, matches, fogOfWar.active, {\n replace: opts.replace,\n flushSync\n });\n if (actionResult.shortCircuited) {\n return;\n }\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n // Create a GET request for the loaders\n request = createClientSideRequest(init.history, request.url, request.signal);\n }\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, fogOfWar.active, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionResult);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches: updatedMatches || matches\n }, getActionDataForCommit(pendingActionResult), {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, isFogOfWar, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [boundaryId, {\n type: ResultType.error,\n error: discoverResult.error\n }]\n };\n } else if (!discoverResult.matches) {\n let {\n notFoundMatches,\n error,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n pendingActionResult: [route.id, {\n type: ResultType.error,\n error\n }]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let results = await callDataStrategy(\"action\", state, request, [actionMatch], matches, null);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(result.response.headers.get(\"Location\"), new URL(request.url), basename);\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionResult) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration);\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData !== undefined ? {\n actionData\n } : {}), {\n flushSync\n });\n }\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null\n }, getActionDataForCommit(pendingActionResult), updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = _extends({}, state.errors, errors);\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n matches,\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, preventScrollReset, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n function detectAndHandle405Error(m) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return true;\n }\n return false;\n }\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(requestMatches, path, fetchRequest.signal);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\"action\", state, fetchRequest, [match], requestMatches, key);\n let actionResult = actionResults[match.route.id];\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, [match.route.id, actionResult]);\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, path, fetchRequest.signal);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\"loader\", state, fetchRequest, [match], matches, key);\n let result = results[match.route.id];\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(request, redirect, isNavigation, _temp2) {\n let {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(location, new URL(request.url), basename);\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true || redirect.response.headers.has(\"X-Remix-Replace\") ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: location\n }),\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n }\n }\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, state, request, matchesToLoad, matches, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties);\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach(m => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e\n };\n });\n return dataResults;\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, future.v7_relativeSplatPath)\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(state, matches, matchesToLoad, fetchersToLoad, request) {\n let currentMatches = state.matches;\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\"loader\", state, request, matchesToLoad, matches, null);\n let fetcherResultsPromise = Promise.all(fetchersToLoad.map(async f => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\"loader\", state, createClientSideRequest(init.history, f.path, f.controller.signal), [f.match], f.matches, f.key);\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return {\n [f.key]: result\n };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n }));\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce((acc, r) => Object.assign(acc, r), {});\n await Promise.all([resolveNavigationDeferredResults(matches, loaderResults, request.signal, currentMatches, state.loaderData), resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad)]);\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, {\n pathname\n });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let {\n matches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n return {\n notFoundMatches: matches,\n route,\n error\n };\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: fogMatches || []\n };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: partialMatches\n };\n }\n }\n }\n return {\n active: false,\n matches: null\n };\n }\n async function discoverRoutes(matches, pathname, signal) {\n if (!patchRoutesOnNavigationImpl) {\n return {\n type: \"success\",\n matches\n };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n path: pathname,\n matches: partialMatches,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(routeId, children, routesToUse, localManifest, mapRouteProperties);\n }\n });\n } catch (e) {\n return {\n type: \"error\",\n error: e,\n partialMatches\n };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return {\n type: \"aborted\"\n };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n let newPartialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n // Avoid loops if the second pass results in the same partial matches\n if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every((m, i) => m.route.id === newPartialMatches[i].route.id)) {\n return {\n type: \"success\",\n matches: null\n };\n }\n partialMatches = newPartialMatches;\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n function patchRoutes(routeId, children) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties);\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(request, _temp3) {\n let {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, skipLoaderErrorBubbling === true, null);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext,\n dataStrategy\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, false, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches, isRouteRequest, requestContext, dataStrategy);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null, [boundaryMatch.route.id, result]);\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null);\n return _extends({}, context, {\n actionData: {\n [actionMatch.route.id]: result.data\n }\n }, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionHeaders: result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {}\n });\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await callDataStrategy(\"loader\", request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(dataStrategy || defaultDataStrategy, type, null, request, matchesToLoad, matches, null, manifest, mapRouteProperties, requestContext);\n let dataResults = {};\n await Promise.all(matches.map(async match => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(response, request, match.route.id, matches, basename, future.v7_relativeSplatPath);\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n }));\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId, includeBoundary) {\n if (includeBoundary === void 0) {\n includeBoundary = false;\n }\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, initialHydration, skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, Object.keys(state.errors)[0], true);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]);\n }\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : undefined;\n let shouldSkipRevalidation = skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false :\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (initialHydration || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties) {\n var _childrenToPatch;\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(route, \"No route found to patch children into: routeId = \" + routeId);\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(newRoute => !childrenToPatch.some(existingRoute => isSameRoute(newRoute, existingRoute)));\n let newRoutes = convertRoutesToDataRoutes(uniqueChildren, mapRouteProperties, [routeId || \"_\", \"patch\", String(((_childrenToPatch = childrenToPatch) == null ? void 0 : _childrenToPatch.length) || \"0\")], manifest);\n childrenToPatch.push(...newRoutes);\n}\nfunction isSameRoute(newRoute, existingRoute) {\n // Most optimal check is by id\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n // Second is by pathing differences\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children.every((aChild, i) => {\n var _existingRoute$childr;\n return (_existingRoute$childr = existingRoute.children) == null ? void 0 : _existingRoute$childr.some(bChild => isSameRoute(aChild, bChild));\n });\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy(_ref4) {\n let {\n matches\n } = _ref4;\n let matchesToLoad = matches.filter(m => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map(m => m.resolve()));\n return results.reduce((acc, result, i) => Object.assign(acc, {\n [matchesToLoad[i].route.id]: result\n }), {});\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties, requestContext) {\n let loadRouteDefinitionsPromises = matches.map(m => m.route.lazy ? loadLazyRouteModule(m.route, mapRouteProperties, manifest) : undefined);\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some(m => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve = async handlerOverride => {\n if (handlerOverride && request.method === \"GET\" && (match.route.lazy || match.route.loader)) {\n shouldLoad = true;\n }\n return shouldLoad ? callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, requestContext) : Promise.resolve({\n type: ResultType.data,\n result: undefined\n });\n };\n return _extends({}, match, {\n shouldLoad,\n resolve\n });\n });\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext\n });\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n return results;\n}\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, staticContext) {\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = ctx => {\n if (typeof handler !== \"function\") {\n return Promise.reject(new Error(\"You cannot call the handler for a route which defines a boolean \" + (\"\\\"\" + type + \"\\\" [routeId: \" + match.route.id + \"]\")));\n }\n return handler({\n request,\n params: match.params,\n context: staticContext\n }, ...(ctx !== undefined ? [ctx] : []));\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride(ctx => actualHandler(ctx)) : actualHandler());\n return {\n type: \"data\",\n result: val\n };\n } catch (e) {\n return {\n type: \"error\",\n result: e\n };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = match.route[type];\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadRoutePromise]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n result: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result.result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return {\n type: ResultType.error,\n result: e\n };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let {\n result,\n type\n } = dataStrategyResult;\n if (isResponse(result)) {\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n var _result$init2;\n if (result.data instanceof Error) {\n var _result$init;\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status\n };\n }\n // Convert thrown data() to ErrorResponse instances\n result = new ErrorResponseImpl(((_result$init2 = result.init) == null ? void 0 : _result$init2.status) || 500, undefined, result.data);\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined\n };\n }\n if (isDeferredData(result)) {\n var _result$init3, _result$init4;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init3 = result.init) == null ? void 0 : _result$init3.status,\n headers: ((_result$init4 = result.init) == null ? void 0 : _result$init4.headers) && new Headers(result.init.headers)\n };\n }\n if (isDataWithResponseInit(result)) {\n var _result$init5, _result$init6;\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: (_result$init5 = result.init) == null ? void 0 : _result$init5.status,\n headers: (_result$init6 = result.init) != null && _result$init6.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, v7_relativeSplatPath) {\n let location = response.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1);\n location = normalizeTo(new URL(request.url), trimmedMatches, basename, true, location, v7_relativeSplatPath);\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename) {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : undefined;\n // Process loader results into state.loaderData/state.errors\n matches.forEach(match => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = {\n [pendingActionResult[0]]: pendingError\n };\n loaderData[pendingActionResult[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, false // This method is only called client side so we always want to bubble\n );\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach(rf => {\n let {\n key,\n match,\n controller\n } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type,\n message\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return {\n key,\n result\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === ResultType.data || result.type === ResultType.error);\n}\nfunction isRedirectDataStrategyResultResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveNavigationDeferredResults(matches, results, signal, currentMatches, currentLoaderData) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then(result => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\nasync function resolveFetcherDeferredResults(matches, results, revalidatingFetchers) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n routeId,\n controller\n } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(controller, \"Expected an AbortController for revalidating fetcher deferred result\");\n await resolveDeferredData(result, controller.signal, true).then(result => {\n if (result) {\n results[key] = result;\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, decodePath as UNSAFE_decodePath, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, data, defer, generatePath, getStaticContextFromError, getToPathname, isDataWithResponseInit, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, replace, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.27.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_decodePath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, UNSAFE_decodePath(pathname)), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _future;\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else if ((_future = future) != null && _future.v7_partialHydration && parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState = dataRouterState) == null ? void 0 : _dataRouterState.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]) !== undefined);\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a