{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../../history.ts","../../utils.ts","../../router.ts","../../lib/context.ts","../../lib/hooks.tsx","../../lib/components.tsx","../../index.ts","../node_modules/prop-types/index.js","../node_modules/@fortawesome/fontawesome-svg-core/index.es.js","../node_modules/@fortawesome/react-fontawesome/index.es.js","../../dom.ts","../../index.tsx","../node_modules/@fortawesome/free-brands-svg-icons/index.mjs","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/@fortawesome/free-solid-svg-icons/index.es.js","../node_modules/classnames/index.js","../node_modules/react-dom/index.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/global.js","../node_modules/enquire.js/src/Util.js","../node_modules/react-slick/lib/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/lodash.debounce/index.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/arrows.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/json2mq/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/react-slick/lib/default-props.js","../node_modules/enquire.js/src/index.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/QueryHandler.js"],"names":["module","exports","require","Action","PopStateEventType","createMemoryHistory","options","entries","initialEntries","initialIndex","v5Compat","map","entry","index","createMemoryLocation","state","undefined","clampIndex","length","action","Pop","listener","n","Math","min","max","getCurrentLocation","to","key","location","createLocation","pathname","warning","charAt","JSON","stringify","createHref","createPath","createURL","URL","encodeLocation","path","parsePath","search","hash","push","Push","nextLocation","splice","delta","replace","Replace","go","nextIndex","listen","fn","createBrowserHistory","getUrlBasedHistory","window","globalHistory","usr","createHashHistory","substr","startsWith","base","document","querySelector","href","getAttribute","url","hashIndex","indexOf","slice","invariant","value","message","Error","cond","console","warn","e","getHistoryState","idx","current","random","toString","parsedPath","searchIndex","getLocation","validateLocation","defaultView","history","getIndex","handlePop","origin","replaceState","addEventListener","removeEventListener","historyState","pushState","error","DOMException","name","assign","ResultType","immutableRouteKeys","Set","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","route","treePath","String","id","join","children","isIndexRoute","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","sort","a","b","score","siblings","every","i","compareIndexes","routesMeta","meta","childrenIndex","rankRouteBranches","matches","decoded","decodePath","matchRouteBranch","convertRouteMatchToUiMatch","match","loaderData","params","data","handle","parentsMeta","flattenRoute","relativePath","caseSensitive","joinPaths","concat","computeScore","forEach","includes","exploded","explodeOptionalSegments","segments","split","first","rest","isOptional","endsWith","required","restExploded","result","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","s","initialScore","some","filter","reduce","segment","test","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","Object","pathnameBase","normalizePathname","pattern","matcher","compiledParams","regexpSource","_","paramName","RegExp","compilePath","captureGroups","memo","splatValue","v","decodeURIComponent","toLowerCase","startIndex","nextChar","getInvalidPathError","char","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","from","isEmptyPath","toPathname","routePathnameIndex","toSegments","shift","fromPathname","pop","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","AbortedDeferredError","ErrorResponseImpl","constructor","statusText","internal","this","status","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","formData","json","text","IDLE_FETCHER","IDLE_BLOCKER","proceed","reset","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","hasErrorBoundary","Boolean","TRANSITIONS_STORAGE_KEY","createRouter","init","routerWindow","isBrowser","createElement","isServer","detectErrorBoundary","inFlightDataRoutes","initialized","router","dataRoutes","dataStrategyImpl","unstable_dataStrategy","defaultDataStrategy","patchRoutesOnMissImpl","unstable_patchRoutesOnMiss","future","v7_fetcherPersist","v7_normalizeFormMethod","v7_partialHydration","v7_prependBasename","v7_skipActionErrorRevalidation","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","checkFogOfWar","active","m","lazy","loader","errors","isRouteInitialized","hydrate","findIndex","pendingNavigationController","historyAction","navigation","restoreScrollPosition","preventScrollReset","revalidation","actionData","fetchers","Map","blockers","pendingAction","HistoryAction","pendingPreventScrollReset","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","deletedFetchers","activeDeferreds","blockerFunctions","pendingPatchRoutes","ignoreNextHistoryUpdate","updateState","newState","opts","completedFetchers","deletedFetchersKeys","fetcher","has","subscriber","unstable_viewTransitionOpts","viewTransitionOpts","unstable_flushSync","flushSync","delete","deleteFetcher","completeNavigation","isActionReload","isMutationMethod","_isRedirect","keys","mergeLoaderData","size","k","set","priorPaths","get","currentLocation","toPaths","add","getSavedScrollPosition","async","startNavigation","abort","startUninterruptedRevalidation","getScrollKey","saveScrollPosition","enableViewTransition","routesToUse","loadingNavigation","overrideNavigation","fogOfWar","notFoundMatches","handleNavigational404","isHashChangeOnly","submission","AbortController","pendingActionResult","request","createClientSideRequest","signal","pendingError","findNearestBoundary","type","actionResult","isFogOfWar","interruptActiveLoads","getSubmittingNavigation","discoverResult","discoverRoutes","shortCircuited","boundaryId","handleDiscoverRouteError","partialMatches","actionMatch","getTargetMatch","callDataStrategy","aborted","method","routeId","isRedirectResult","normalizeRedirectLocation","response","headers","startRedirectNavigation","isDeferredResult","isErrorResult","boundaryMatch","handleAction","getLoadingNavigation","updatedMatches","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","shouldUpdateNavigationState","getUpdatedActionData","matchesToLoad","revalidatingFetchers","getMatchesToLoad","cancelActiveDeferreds","updatedFetchers","markFetchRedirectsDone","getActionDataForCommit","updates","rf","revalidatingFetcher","getLoadingFetcher","getUpdatedRevalidatingFetchers","abortFetcher","controller","abortPendingFetchRevalidations","f","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","subscribe","done","_ref3","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","handleLoaders","redirectLocation","isDocumentReload","redirectHistoryAction","results","callDataStrategyImpl","Promise","all","isRedirectHandlerResult","normalizeRelativeRoutingRedirectResponse","convertHandlerResultToDataResult","currentMatches","fetchersToLoad","then","r","resolve","resolveDeferredResults","updateFetcherState","setFetcherError","getFetcher","markFetchersDone","doneFetcher","getDoneFetcher","doneKeys","landedId","yeetedKeys","deleteBlocker","updateBlocker","newBlocker","blocker","shouldBlockNavigation","Array","blockerKey","blockerFunction","predicate","cancelledRouteIds","dfd","cancel","y","leafRoute","isNonHMR","loadLazyRouteChildren","newMatches","matchedSplat","newPartialMatches","initialize","_ref","_window","transitions","sessionPositions","sessionStorage","getItem","parse","isArray","restoreAppliedTransitions","_saveAppliedTransitions","setItem","persistAppliedTransitions","enableScrollRestoration","positions","getPosition","getKey","navigate","normalizedPath","normalizeTo","fromRouteId","relative","normalizeNavigateOptions","userReplace","unstable_viewTransition","fetch","requestMatches","detectAndHandle405Error","existingFetcher","getSubmittingFetcher","abortController","fetchRequest","originatingLoadId","actionResults","revalidationRequest","loadId","loadFetcher","staleKey","handleFetcherAction","resolveDeferredData","handleFetcherLoader","revalidate","count","dispose","clear","getBlocker","patchRoutes","patchRoutesImpl","_internalFetchControllers","_internalActiveDeferreds","_internalSetRoutes","newRoutes","Symbol","prependBasename","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","body","isSubmissionNavigation","isValidMethod","searchParams","getInvalidBodyError","rawFormMethod","toUpperCase","stripHashFromPath","FormData","URLSearchParams","acc","convertFormDataToSearchParams","convertSearchParamsToFormData","append","getLoaderMatchesUntilBoundary","boundaryMatches","isInitialLoad","skipActionErrorRevalidation","currentUrl","nextUrl","actionStatus","statusCode","shouldSkipRevalidation","navigationMatches","currentLoaderData","currentMatch","isNew","isMissingData","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","currentParams","nextParams","defaultShouldRevalidate","isNewRouteInstance","fetcherMatches","fetcherMatch","shouldRevalidate","currentPath","loaderMatch","arg","routeChoice","pendingRouteChildren","pending","patch","val","dataChildren","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","requestContext","routeIdsToLoad","loadedMatches","shouldLoad","handlerOverride","staticContext","onReject","runHandler","handler","reject","abortPromise","handlerPromise","actualHandler","ctx","context","race","handlerError","catch","callLoaderOrAction","handlerResult","isResponse","contentType","deferred","resolveData","isDeferredData","Headers","trimmedMatches","normalizedLocation","protocol","isSameBasename","Request","processRouteLoaderData","skipLoaderErrorBubbling","foundError","loaderHeaders","newLoaderData","mergedLoaderData","hasOwnProperty","reverse","find","errorMessage","signals","isRevalidatingLoader","unwrap","unwrappedData","getAll","DataRouterContext","React","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useHref","useInRouterContext","navigator","useResolvedPath","joinedPathname","useLocation","useIsomorphicLayoutEffect","cb","static","useNavigate","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","useNavigateStable","dataRouterContext","routePathnamesJson","useNavigateUnstable","useRoutesImpl","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","Provider","navigationType","NavigationType","DefaultErrorComponent","useDataRouterState","UseRouteError","useRouteError","stack","lightgrey","preStyles","padding","backgroundColor","style","fontStyle","defaultErrorElement","RenderErrorBoundary","props","super","getDerivedStateFromError","getDerivedStateFromProps","componentDidCatch","errorInfo","render","routeContext","component","RenderedRoute","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","needsToRunLoader","reduceRight","shouldRenderHydrateFallback","alreadyWarned","getChildren","Component","element","hookName","useRouteContext","thisRoute","useRouteId","UseRouteId","useNavigation","UseNavigation","useMatches","UseMatches","blockerId","useBlocker","shouldBlock","UseBlocker","setBlockerKey","Route","_props","Router","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","apply","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","iterator","prototype","_defineProperties","descriptor","configurable","writable","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","call","next","err","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","o","minLen","len","arr2","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","MutationObserver","performance","_ref$userAgent","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","IS_IE","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_FAMILY_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_FA_PSEUDO_ELEMENT_PENDING","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","MUTATION_APPROACH_ASYNC","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","process","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","initial","FontAwesomeConfig","_ref2","attr","coerce","getAttrConfig","_config","familyPrefix","styleDefault","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","_onChangeCb","d","meaninglessTransform","x","rotate","flipX","flipY","idPool","nextUniqueId","toArray","array","classArray","node","classList","htmlEscape","str","joinStyles","styles","styleName","trim","transformIsMeaningful","transform","baseStyles","css","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","loaded","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","attributeName","joinAttributes","iconFromMapping","mapping","prefix","iconName","icon","doScroll","readyState","subject","initialValue","thisContext","func","c","bindInternal4","toHex","unicode","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","LONG_STYLE","values","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","emptyCanonicalIcon","styleOrPrefix","defined","getCanonicalIcon","_params$skipLookups","skipLookups","givenPrefix","canonical","aliasIconName","Library","instance","Constructor","_classCallCheck","definitions","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","args","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","watch","autoReplaceSvgRoot","autoReplace","setTimeout","api","noAuto","_icon","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","mask","symbol","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","maybeNotifyMissing","noop$1","p","preamble","perf","begin","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","contains","childList","characterData","subtree","classParser","ligature","existingPrefix","existingIconName","innerText","parseMeta","parser","styleParser","_classParser","extraClasses","extraAttributes","attributesParser","pluginMeta","extraStyles","prop","styles$2","generateMutation","nodeMeta","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","prefixes","prefixesDomQuery","candidates","querySelectorAll","resolvedMutations","onNode","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","makeLayersCounterAbstract","LayersText","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","_hexValueFromContent","cleaned","codePoint","second","codePointAt","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","iconIdentifier","iconName4","oldUnicode","newUnicode","byOldUnicode","firstChild","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","isNaN","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","opacity","nextPlugins","mixoutsTo","plugin","tk","sk","registerPlugins","pseudoElements2svg","unwatch","bootstrap","disconnect","symbolData","parse$1","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","camelize","chr","_excluded","normalizeIconArgs","objectWithKey","defaultProps","border","className","fixedWidth","inverse","flip","listItem","pull","pulse","rotation","spin","spinPulse","spinReverse","beat","fade","beatFade","bounce","shake","swapOpacity","FontAwesomeIcon","forwardRef","ref","allProps","iconArgs","maskArgs","_classes","flash","renderedIcon","_console","log","extraProps","convertCurry","displayName","propTypes","PropTypes","bool","oneOfType","oneOf","convert","mixins","attrs","pair","_extraProps$style","existingStyle","remaining","bind","__reactRouterVersion","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","v7_startTransition","setState","Link","LinkWithRef","absoluteHref","onClick","reloadDocument","isExternal","targetUrl","internalOnClick","replaceProp","event","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","shouldProcessLinkClick","preventDefault","useLinkClickHandler","defaultPrevented","faGithub","clamp","canUseDOM","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getPostClones","getPreClones","getTrackLeft","getTrackAnimateCSS","getTrackCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","swipeEnd","swipeMove","swipeStart","keyHandler","changeSlide","slideHandler","initializedState","extractObject","canGoNext","getSwipeDirection","getHeight","getWidth","lazySlidesOnRight","lazySlidesOnLeft","lazyEndIndex","lazyStartIndex","getRequiredLazySlides","getOnDemandLazySlides","safePreventDefault","_react","__esModule","_objectSpread","number","lowerBound","upperBound","_reactName","spec","onDemandSlides","endIndex","slideIndex","lazyLoadedList","requiredSlides","currentSlide","centerMode","floor","slidesToShow","centerPadding","elem","offsetWidth","offsetHeight","touchObject","xDist","yDist","swipeAngle","verticalSwiping","startX","curX","startY","curY","atan2","round","PI","abs","canGo","infinite","slideCount","newObject","slideWidth","Children","listNode","listRef","listWidth","ceil","trackNode","trackRef","trackWidth","vertical","centerPaddingAdj","slideHeight","listHeight","initialSlide","rtl","slidesToLoad","autoplaying","autoplay","waitForAnimate","animating","lazyLoad","slidesToScroll","useCSS","finalSlide","animationLeft","finalLeft","animationSlide","nextState","targetSlide","trackStyle","left","swipeLeft","indexOffset","previousInt","slideOffset","previousTargetSlide","direction","Number","accessibility","keyCode","swipe","draggable","dragging","touches","pageX","clientX","pageY","clientY","scrolling","swipeToSlide","edgeFriction","edgeDragged","onEdge","swiped","swiping","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","newSlide","activeSlide","currentLeft","breakpoint","indexes","navigables","prevNavigable","centerOffset","swipedSlide","slickList","slides","slide","offsetTop","offsetLeft","currentIndex","dataset","keysArray","trackHeight","trackChildren","transition","WebkitTransition","useTransform","WebkitTransform","msTransform","attachEvent","marginTop","marginLeft","speed","cssEase","unslick","targetLeft","variableWidth","slidesToOffset","targetSlideIndex","trackElem","right","faArrowRight","hasOwn","classNames","appendClass","parseValue","newClass","default","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","propIsEnumerable","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","toObject","g","Function","isFunction","each","collection","_default","l","Fragment","StrictMode","Profiler","q","t","Suspense","u","for","z","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","refs","updater","D","E","isReactComponent","forceUpdate","F","isPureReactComponent","G","H","I","__self","__source","J","h","$$typeof","_owner","L","M","N","escape","O","K","P","Q","_status","_result","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","_context","createFactory","createRef","isValidElement","_payload","_init","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","version","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Reflect","construct","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","ownerDocument","eb","db","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","mathml","svg","lb","mb","nb","ob","namespaceURI","valueOf","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","substring","ub","menuitem","area","br","col","embed","hr","img","input","keygen","link","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_targetInst","currentTarget","isDefaultPrevented","returnValue","isPropagationStopped","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","tel","time","week","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","start","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","capture","passive","Nb","ef","ff","parentWindow","gf","hf","je","ke","unshift","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","clearTimeout","qf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","mode","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","create","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","hasAttribute","uk","kk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","jsx","jsxs","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","any","arrayOf","instanceOf","objectOf","shape","exact","checkPropTypes","_interopRequireDefault","_innerSlider","_json2mq","_defaultProps","_innerSliderUtils","_extends","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","self","_assertThisInitialized","_possibleConstructorReturn","ReferenceError","getPrototypeOf","enquire","Slider","_React$Component","subClass","superClass","_inherits","_super","innerSlider","slickPrev","slickNext","dontAnimate","slickGoTo","pause","autoPlay","_responsiveMediaHandlers","query","register","_this2","responsive","breakpoints","breakpt","bQuery","minWidth","maxWidth","media","unregister","settings","newProps","_this3","resp","rows","slidesPerRow","newChildren","currentWidth","j","row","tabIndex","InnerSlider","innerSliderRefHandler","_initialState","_lodash","_classnames","_track","_dots","_arrows","_resizeObserverPolyfill","list","adaptiveHeight","onInit","prevState","onLazyLoad","adaptHeight","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","autoplayTimer","prevProps","checkImagesLoad","onReInit","setTrackStyle","didPropsChange","debouncedResize","resizeWindow","updatedState","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","_i2","_trackStyle","childrenCount","trackLeft","images","imagesCount","loadedCount","image","prevClickHandler","onload","onerror","onLazyLoadError","_index","_this$props","asNavFor","beforeChange","afterChange","_slideHandler","asNavForIndex","firstBatch","focusOnSelect","nodes","clickable","dir","ontouchmove","disableBodyScroll","triggerSlideHandler","enableBodyScroll","playType","play","autoplaySpeed","pauseType","dots","prevArrow","nextArrow","trackProps","pauseOnHover","onMouseEnter","onTrackOver","onMouseLeave","onTrackLeave","onMouseOver","selectHandler","dotProps","pauseOnDotsHover","clickHandler","onDotsLeave","onDotsOver","Dots","arrowProps","arrows","PrevArrow","NextArrow","verticalHeightStyle","centerPaddingStyle","listStyle","touchMove","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","currentDirection","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","objectToString","nativeMax","nativeMin","isObject","toNumber","isObjectLike","isSymbol","other","isBinary","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","flush","getSlideClasses","slickActive","slickCenter","slickCloned","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","_React$PureComponent","mouseEvents","handleRef","_rightBound","rightBound","_leftBound","leftBound","dotOptions","customPaging","appendDots","dotsClass","_createClass","prevClasses","prevHandler","prevArrowProps","customProps","_React$PureComponent2","_super2","nextClasses","nextHandler","nextArrowProps","MapShim","class_1","__entries__","_a","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","clientWidth","clientHeight","paddings","positions_1","getPaddings","horizPad","vertPad","bottom","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","ResizeObserver","camel2hyphen","obj2mq","mq","features","feature","isDimension","easing","MediaQueryDispatch","MediaQuery","Util","queries","browserIsIncapable","shouldDegrade","isUnconditional","addHandler","removeHandler","QueryHandler","handlers","mql","assess","addListener","constuctor","on","equals","removeListener","deferSetup","setup","initialised","off","unmatch"],"mappings":"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","file":"static/js/2.e30f24e2.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum 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 Pop = \"POP\",\n\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 Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\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 */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\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: 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({ action, location: nextLocation, delta: 1 });\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({ action, location: nextLocation, delta: 0 });\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({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\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 */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\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 */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\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\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\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\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\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}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\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 as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\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\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\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({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\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({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\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\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\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 =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\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(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\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\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnMissFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\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(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\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 */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\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(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\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,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\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\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !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\n return branches;\n}\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: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\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\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\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\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(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\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}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\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\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\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 */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\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\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\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 {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .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(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // 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 // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\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(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\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\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\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 */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\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) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\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\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\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\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\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\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(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\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\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\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 */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\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 */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\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/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnMissFunction,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnMiss?: AgnosticPatchRoutesOnMissFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\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 };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: 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};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\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};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\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};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\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\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnMissImpl = init.unstable_patchRoutesOnMiss;\n\n // Config driven behavior flags\n let future: FutureConfig = {\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 };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = 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: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = 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\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnMissImpl) {\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 { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnMiss 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 && patchRoutesOnMissImpl && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n // We need to run patchRoutesOnMiss in initialize()\n initialized = false;\n initialMatches = [];\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 let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\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\n let router: Router;\n let state: RouterState = {\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\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\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\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\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\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\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\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\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\n // Map of pending patchRoutesOnMiss() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\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 ignoreNextHistoryUpdate = false;\n\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(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\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\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\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 = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\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(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\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\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\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\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) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\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\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(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\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 =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\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\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\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\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\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\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.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\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\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(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\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 = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\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 = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\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({ blockers });\n },\n });\n return;\n }\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.unstable_viewTransition,\n flushSync,\n });\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({ 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\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\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(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\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(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\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 =\n (opts && opts.startUninterruptedRevalidation) === true;\n\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\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\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\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\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 load 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 (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\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 = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\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 (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\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\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\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\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\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(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\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(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { 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\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 = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\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 =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\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 =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\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(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\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(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\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, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\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\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { 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(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\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 let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\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\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\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 as any,\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\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\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, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\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\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\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\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, {\n fetcherSubmission: submission,\n });\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\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { 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(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\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\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\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 let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\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\n abortStaleFetchLoads(loadId);\n\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 (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\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(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\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 =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\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\n if (fetchRequest.signal.aborted) {\n return;\n }\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\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);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\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(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\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\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\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\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\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 (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\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(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\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 return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\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\n function deleteFetcher(key: string): void {\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 (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\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({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\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\n function markFetchRedirectsDone(): boolean {\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\n function abortStaleFetchLoads(landedId: number): boolean {\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\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\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\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\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\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\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\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\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({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\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\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnMissImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n let leafRoute = matches[matches.length - 1].route;\n if (\n leafRoute.path &&\n (leafRoute.path === \"*\" || leafRoute.path.endsWith(\"/*\"))\n ) {\n // If we matched a splat, it might only be because we haven't yet fetched\n // the children that would match with a higher score, so let's fetch\n // around and find out\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n let route =\n partialMatches.length > 0\n ? partialMatches[partialMatches.length - 1].route\n : null;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnMissImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\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) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let matchedSplat = false;\n if (newMatches) {\n let leafRoute = newMatches[newMatches.length - 1].route;\n\n if (leafRoute.index) {\n // If we found an index route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n\n if (leafRoute.path && leafRoute.path.length > 0) {\n if (leafRoute.path === \"*\") {\n // If we found a splat route, we can't be sure there's not a\n // higher-scoring route down some partial matches trail so we need\n // to check that out\n matchedSplat = true;\n } else {\n // If we found a non-splat route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n }\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // If we are no longer partially matching anything, this was either a\n // legit splat match above, or it's a 404. Also avoid loops if the\n // second pass results in the same partial matches\n if (\n !newPartialMatches ||\n partialMatches.map((m) => m.route.id).join(\"-\") ===\n newPartialMatches.map((m) => m.route.id).join(\"-\")\n ) {\n return { type: \"success\", matches: matchedSplat ? newMatches : null };\n }\n\n partialMatches = newPartialMatches;\n route = partialMatches[partialMatches.length - 1].route;\n if (route.path === \"*\") {\n // The splat is still our most accurate partial, so run with it\n return { type: \"success\", matches: partialMatches };\n }\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\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\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: To) => init.history.createHref(to),\n encodeLocation: (to: 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\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (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: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\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(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\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\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, 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, { pathname: location.pathname });\n let { matches: notFoundMatches, 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\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\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 { location, basename, ...result };\n }\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(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\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\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\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, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\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\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...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 `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(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\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\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(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\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\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\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\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\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\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\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\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\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(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\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\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\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 */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\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\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\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\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\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 =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\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(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\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\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n 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(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\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\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\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\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\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\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, 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\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\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\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = 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\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\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\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (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 (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\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\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\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.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\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, {\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\n ? false\n : isRevalidationRequired,\n });\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\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\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\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\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 &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnMiss() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnMissImpl: AgnosticPatchRoutesOnMissFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map>,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnMissImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\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(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\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\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\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: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\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\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, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\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: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\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\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\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 }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\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 loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\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 { type: ResultType.data, result: undefined };\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\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\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 { type: ResultType.error, 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\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\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(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : 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\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(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = 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\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\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 (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\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\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\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\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\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\n errors = errors || {};\n\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\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\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)\n ? result.error.status\n : 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 (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\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\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 = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...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\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...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 } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\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\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\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(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnMiss()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `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 =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\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\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\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\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || 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 let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\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\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\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}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\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}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\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: NavigationStates[\"Loading\"] = {\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}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\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}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\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: FetcherStates[\"Loading\"] = {\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}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\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}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\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}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\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}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\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 */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\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 */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { 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 =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\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 */\nexport function useInRouterContext(): boolean {\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 */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\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 */\nexport function useNavigationType(): NavigationType {\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 */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\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 */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = 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}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\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\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\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 =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = 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 */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\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 */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\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 */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\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 */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\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 */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // 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.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = 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\n if (__DEV__) {\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(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\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\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\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 (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\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 (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\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\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\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 (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\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 as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\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\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!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\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\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 = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \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 &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function 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 */\nexport function 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 */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\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 */\nexport function useActionData(): unknown {\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 */\nexport function useRouteError(): unknown {\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?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\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 */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (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 { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\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)\n ? state.blockers.get(blockerKey)!\n : 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(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\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\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\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 */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\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\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\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 \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n styleDefault: 'solid',\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_config).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = Object.values(PREFIX_TO_LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = Object.keys(PREFIX_TO_STYLE);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault);\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault);\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var style = PREFIX_TO_STYLE[styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[styleOrPrefix] || STYLE_TO_PREFIX[style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nfunction getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE.includes(cls) ? LONG_STYLE_TO_PREFIX[cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES.indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls);\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n var longPrefix = PREFIX_TO_LONG_STYLE[key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.familyPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.0.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$2);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n unstable_flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a