@tanstack/react-router 0.0.1-beta.206 → 0.0.1-beta.207

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46,6 +46,9 @@ var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
46
46
 
47
47
  const preloadWarning = 'Error preloading route! ☝️';
48
48
  const routerContext = /*#__PURE__*/React__namespace.createContext(null);
49
+ if (typeof document !== 'undefined') {
50
+ window.__TSR_ROUTER_CONTEXT__ = routerContext;
51
+ }
49
52
  function getInitialRouterState(location) {
50
53
  return {
51
54
  status: 'idle',
@@ -73,6 +76,10 @@ function RouterProvider({
73
76
  const tempLocationKeyRef = React__namespace.useRef(`${Math.round(Math.random() * 10000000)}`);
74
77
  const resetNextScrollRef = React__namespace.useRef(false);
75
78
  const navigateTimeoutRef = React__namespace.useRef(null);
79
+ const latestLoadPromiseRef = React__namespace.useRef(Promise.resolve());
80
+ const checkLatest = promise => {
81
+ return latestLoadPromiseRef.current !== promise ? latestLoadPromiseRef.current : undefined;
82
+ };
76
83
  const parseLocation = utils.useStableCallback(previousLocation => {
77
84
  const parse = ({
78
85
  pathname,
@@ -196,7 +203,6 @@ function RouterProvider({
196
203
  d.child.rank = i;
197
204
  return d.child;
198
205
  }), [routesByPath]);
199
- const latestLoadPromiseRef = React__namespace.useRef(Promise.resolve());
200
206
  const matchRoutes = utils.useStableCallback((pathname, locationSearch, opts) => {
201
207
  let routeParams = {};
202
208
  let foundRoute = flatRoutes.find(route => {
@@ -495,9 +501,11 @@ function RouterProvider({
495
501
  });
496
502
  });
497
503
  const loadMatches = utils.useStableCallback(async ({
504
+ checkLatest,
498
505
  matches,
499
506
  preload
500
507
  }) => {
508
+ let latestPromise;
501
509
  let firstBadMatchIndex;
502
510
 
503
511
  // Check each match middleware to see if the route can be accessed
@@ -558,7 +566,7 @@ function RouterProvider({
558
566
  } catch (err) {
559
567
  if (redirects.isRedirect(err)) {
560
568
  if (!preload) navigate(err);
561
- return;
569
+ return matches;
562
570
  }
563
571
  throw err;
564
572
  }
@@ -571,11 +579,6 @@ function RouterProvider({
571
579
  if (match.isFetching) {
572
580
  return getRouteMatch(state, match.id)?.loadPromise;
573
581
  }
574
- const fetchedAt = Date.now();
575
- const checkLatest = () => {
576
- const latest = getRouteMatch(state, match.id);
577
- return latest && latest.fetchedAt !== fetchedAt ? latest.loadPromise : undefined;
578
- };
579
582
  const handleIfRedirect = err => {
580
583
  if (redirects.isRedirect(err)) {
581
584
  if (!preload) {
@@ -586,7 +589,6 @@ function RouterProvider({
586
589
  return false;
587
590
  };
588
591
  const load = async () => {
589
- let latestPromise;
590
592
  try {
591
593
  const componentsPromise = Promise.all(router.componentTypes.map(async type => {
592
594
  const component = route.options[type];
@@ -628,12 +630,18 @@ function RouterProvider({
628
630
  updatedAt: Date.now()
629
631
  };
630
632
  }
633
+ if (!preload) {
634
+ setState(s => ({
635
+ ...s,
636
+ matches: s.matches.map(d => d.id === match.id ? match : d)
637
+ }));
638
+ }
631
639
  };
632
640
  let loadPromise;
633
641
  matches[index] = match = {
634
642
  ...match,
635
643
  isFetching: true,
636
- fetchedAt,
644
+ fetchedAt: Date.now(),
637
645
  invalid: false
638
646
  };
639
647
  loadPromise = load();
@@ -645,35 +653,32 @@ function RouterProvider({
645
653
  })());
646
654
  });
647
655
  await Promise.all(matchPromises);
656
+ return matches;
648
657
  });
649
- const load = utils.useStableCallback(async opts => {
658
+ const load = utils.useStableCallback(async () => {
650
659
  const promise = new Promise(async (resolve, reject) => {
660
+ const next = latestLocationRef.current;
651
661
  const prevLocation = state.resolvedLocation;
652
- const pathDidChange = !!(opts?.next && prevLocation.href !== opts.next.href);
662
+ const pathDidChange = !!(next && prevLocation.href !== next.href);
653
663
  let latestPromise;
654
- const checkLatest = () => {
655
- return latestLoadPromiseRef.current !== promise ? latestLoadPromiseRef.current : undefined;
656
- };
657
664
 
658
665
  // Cancel any pending matches
659
666
  cancelMatches(state);
660
667
  router$1.emit({
661
668
  type: 'onBeforeLoad',
662
669
  from: prevLocation,
663
- to: opts?.next ?? state.location,
670
+ to: next ?? state.location,
664
671
  pathChanged: pathDidChange
665
672
  });
666
- if (opts?.next) {
667
- // Ingest the new location
668
- setState(s => ({
669
- ...s,
670
- location: opts.next
671
- }));
672
- }
673
+
674
+ // Ingest the new location
675
+ setState(s => ({
676
+ ...s,
677
+ location: next
678
+ }));
673
679
 
674
680
  // Match the routes
675
- const matches = matchRoutes(state.location.pathname, state.location.search, {
676
- throwOnError: opts?.throwOnError,
681
+ let matches = matchRoutes(next.pathname, next.search, {
677
682
  debug: true
678
683
  });
679
684
  setState(s => ({
@@ -682,10 +687,11 @@ function RouterProvider({
682
687
  matches
683
688
  }));
684
689
  try {
685
- // Load the matches
686
690
  try {
691
+ // Load the matches
687
692
  await loadMatches({
688
- matches
693
+ matches,
694
+ checkLatest: () => checkLatest(promise)
689
695
  });
690
696
  } catch (err) {
691
697
  // swallow this error, since we'll display the
@@ -693,7 +699,7 @@ function RouterProvider({
693
699
  }
694
700
 
695
701
  // Only apply the latest transition
696
- if (latestPromise = checkLatest()) {
702
+ if (latestPromise = checkLatest(promise)) {
697
703
  return latestPromise;
698
704
  }
699
705
 
@@ -730,13 +736,13 @@ function RouterProvider({
730
736
  router$1.emit({
731
737
  type: 'onLoad',
732
738
  from: prevLocation,
733
- to: state.location,
739
+ to: next,
734
740
  pathChanged: pathDidChange
735
741
  });
736
742
  resolve();
737
743
  } catch (err) {
738
744
  // Only apply the latest transition
739
- if (latestPromise = checkLatest()) {
745
+ if (latestPromise = checkLatest(promise)) {
740
746
  return latestPromise;
741
747
  }
742
748
  reject(err);
@@ -745,13 +751,6 @@ function RouterProvider({
745
751
  latestLoadPromiseRef.current = promise;
746
752
  return latestLoadPromiseRef.current;
747
753
  });
748
- const safeLoad = React__namespace.useCallback(async () => {
749
- try {
750
- return load();
751
- } catch (err) {
752
- // Don't do anything
753
- }
754
- }, []);
755
754
  const preloadRoute = utils.useStableCallback(async (navigateOpts = state.location) => {
756
755
  let next = buildLocation(navigateOpts);
757
756
  let matches = matchRoutes(next.pathname, next.search, {
@@ -759,7 +758,8 @@ function RouterProvider({
759
758
  });
760
759
  await loadMatches({
761
760
  matches,
762
- preload: true
761
+ preload: true,
762
+ checkLatest: () => undefined
763
763
  });
764
764
  return [utils.last(matches), matches];
765
765
  });
@@ -872,10 +872,13 @@ function RouterProvider({
872
872
  const unsub = history$1.subscribe(() => {
873
873
  latestLocationRef.current = parseLocation(latestLocationRef.current);
874
874
  React__namespace.startTransition(() => {
875
- setState(s => ({
876
- ...s,
877
- location: latestLocationRef.current
878
- }));
875
+ if (state.location !== latestLocationRef.current) {
876
+ try {
877
+ load();
878
+ } catch (err) {
879
+ console.error(err);
880
+ }
881
+ }
879
882
  });
880
883
  });
881
884
  const nextLocation = buildLocation({
@@ -897,13 +900,12 @@ function RouterProvider({
897
900
  const initialLoad = React__namespace.useRef(true);
898
901
  if (initialLoad.current) {
899
902
  initialLoad.current = false;
900
- safeLoad();
901
- }
902
- React__namespace.useLayoutEffect(() => {
903
- if (state.resolvedLocation !== state.location) {
904
- safeLoad();
903
+ try {
904
+ load();
905
+ } catch (err) {
906
+ console.error(err);
905
907
  }
906
- }, [state.location]);
908
+ }
907
909
  React__namespace.useMemo(() => [...state.matches, ...state.pendingMatches].some(d => d.isFetching), [state.matches, state.pendingMatches]);
908
910
  const matchRoute = utils.useStableCallback((state, location, opts) => {
909
911
  location = {
@@ -1 +1 @@
1
- {"version":3,"file":"RouterProvider.js","sources":["../../src/RouterProvider.tsx"],"sourcesContent":["import * as React from 'react'\nimport { AnyPathParams, AnySearchSchema, Route } from './route'\nimport {\n RegisteredRouter,\n DehydratedRouteMatch,\n componentTypes,\n BuildNextOptions,\n RouterOptions,\n} from './router'\nimport { ParsedLocation } from './location'\nimport { AnyRouteMatch } from './RouteMatch'\nimport { RouteMatch } from './RouteMatch'\nimport { isRedirect } from './redirects'\nimport {\n functionalUpdate,\n replaceEqualDeep,\n useStableCallback,\n last,\n pick,\n partialDeepEqual,\n NoInfer,\n PickAsRequired,\n} from './utils'\nimport { RouterProps, Matches } from './react'\nimport {\n cleanPath,\n interpolatePath,\n joinPaths,\n matchPathname,\n parsePathname,\n resolvePath,\n trimPath,\n trimPathRight,\n} from './path'\nimport invariant from 'tiny-invariant'\nimport {\n FullSearchSchema,\n RouteById,\n RoutePaths,\n RoutesById,\n RoutesByPath,\n} from './routeInfo'\nimport {\n LinkInfo,\n LinkOptions,\n NavigateOptions,\n ResolveRelativePath,\n ToOptions,\n} from './link'\nimport {\n HistoryLocation,\n HistoryState,\n RouterHistory,\n createBrowserHistory,\n} from '.'\nimport { AnyRoute } from './route'\nimport { RouterState } from './router'\n\nexport interface CommitLocationOptions {\n replace?: boolean\n resetScroll?: boolean\n}\n\nexport interface MatchLocation {\n to?: string | number | null\n fuzzy?: boolean\n caseSensitive?: boolean\n from?: string\n}\n\nexport interface MatchRouteOptions {\n pending?: boolean\n caseSensitive?: boolean\n includeSearch?: boolean\n fuzzy?: boolean\n}\n\ntype LinkCurrentTargetElement = {\n preloadTimeout?: null | ReturnType<typeof setTimeout>\n}\n\nexport type BuildLinkFn<TRouteTree extends AnyRoute> = <\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n>(\n state: RouterState,\n dest: LinkOptions<TRouteTree, TFrom, TTo>,\n) => LinkInfo\n\nexport type NavigateFn<TRouteTree extends AnyRoute> = <\n TRouteTree extends AnyRoute,\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = TFrom,\n TMaskTo extends string = '',\n>({\n from,\n to = '' as any,\n ...rest\n}: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>\n\nexport type MatchRouteFn<TRouteTree extends AnyRoute> = <\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TResolved = ResolveRelativePath<TFrom, NoInfer<TTo>>,\n>(\n state: RouterState<TRouteTree>,\n location: ToOptions<TRouteTree, TFrom, TTo>,\n opts?: MatchRouteOptions,\n) => false | RouteById<TRouteTree, TResolved>['types']['allParams']\n\nexport type LoadFn = (opts?: {\n next?: ParsedLocation\n throwOnError?: boolean\n __dehydratedMatches?: DehydratedRouteMatch[]\n}) => Promise<void>\n\nconst preloadWarning = 'Error preloading route! ☝️'\n\nexport type RouterContext<\n TRouteTree extends AnyRoute,\n // TDehydrated extends Record<string, any>,\n> = {\n buildLink: BuildLinkFn<TRouteTree>\n state: RouterState<TRouteTree>\n navigate: NavigateFn<TRouteTree>\n matchRoute: MatchRouteFn<TRouteTree>\n routeTree: TRouteTree\n routesById: RoutesById<TRouteTree>\n options: RouterOptions<TRouteTree>\n history: RouterHistory\n load: LoadFn\n}\n\nexport const routerContext = React.createContext<RouterContext<any>>(null!)\n\nexport function getInitialRouterState(\n location: ParsedLocation,\n): RouterState<any> {\n return {\n status: 'idle',\n isFetching: false,\n resolvedLocation: location!,\n location: location!,\n matches: [],\n pendingMatches: [],\n lastUpdated: Date.now(),\n }\n}\n\nexport function RouterProvider<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({ router, ...rest }: RouterProps<TRouteTree, TDehydrated>) {\n const options = {\n ...router.options,\n ...rest,\n meta: {\n ...router.options.meta,\n ...rest?.meta,\n },\n } as PickAsRequired<\n RouterOptions<TRouteTree, TDehydrated>,\n 'stringifySearch' | 'parseSearch' | 'meta'\n >\n\n const history = React.useState(\n () => options.history ?? createBrowserHistory(),\n )[0]\n\n const tempLocationKeyRef = React.useRef<string | undefined>(\n `${Math.round(Math.random() * 10000000)}`,\n )\n const resetNextScrollRef = React.useRef<boolean>(false)\n\n const navigateTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const parseLocation = useStableCallback(\n (\n previousLocation?: ParsedLocation,\n ): ParsedLocation<FullSearchSchema<TRouteTree>> => {\n const parse = ({\n pathname,\n search,\n hash,\n state,\n }: HistoryLocation): ParsedLocation<FullSearchSchema<TRouteTree>> => {\n const parsedSearch = options.parseSearch(search)\n\n return {\n pathname: pathname,\n searchStr: search,\n search: replaceEqualDeep(\n previousLocation?.search,\n parsedSearch,\n ) as any,\n hash: hash.split('#').reverse()[0] ?? '',\n href: `${pathname}${search}${hash}`,\n state: replaceEqualDeep(\n previousLocation?.state,\n state,\n ) as HistoryState,\n }\n }\n\n const location = parse(history.location)\n\n let { __tempLocation, __tempKey } = location.state\n\n if (\n __tempLocation &&\n (!__tempKey || __tempKey === tempLocationKeyRef.current)\n ) {\n // Sync up the location keys\n const parsedTempLocation = parse(__tempLocation) as any\n parsedTempLocation.state.key = location.state.key\n\n delete parsedTempLocation.state.__tempLocation\n\n return {\n ...parsedTempLocation,\n maskedLocation: location,\n }\n }\n\n return location\n },\n )\n\n const [state, setState] = React.useState<RouterState<TRouteTree>>(() =>\n getInitialRouterState(parseLocation()),\n )\n\n const basepath = `/${trimPath(options.basepath ?? '') ?? ''}`\n\n const resolvePathWithBase = useStableCallback(\n (from: string, path: string) => {\n return resolvePath(basepath!, from, cleanPath(path))\n },\n )\n\n const [routesById, routesByPath] = React.useMemo(() => {\n const routesById = {} as RoutesById<TRouteTree>\n const routesByPath = {} as RoutesByPath<TRouteTree>\n\n const recurseRoutes = (routes: AnyRoute[]) => {\n routes.forEach((route, i) => {\n route.init({ originalIndex: i })\n\n const existingRoute = (routesById as any)[route.id]\n\n invariant(\n !existingRoute,\n `Duplicate routes found with id: ${String(route.id)}`,\n )\n ;(routesById as any)[route.id] = route\n\n if (!route.isRoot && route.path) {\n const trimmedFullPath = trimPathRight(route.fullPath)\n if (\n !(routesByPath as any)[trimmedFullPath] ||\n route.fullPath.endsWith('/')\n ) {\n ;(routesByPath as any)[trimmedFullPath] = route\n }\n }\n\n const children = route.children as Route[]\n\n if (children?.length) {\n recurseRoutes(children)\n }\n })\n }\n\n recurseRoutes([router.routeTree])\n\n return [routesById, routesByPath] as const\n }, [])\n\n const looseRoutesById = routesById as Record<string, AnyRoute>\n\n const flatRoutes = React.useMemo(\n () =>\n (Object.values(routesByPath) as AnyRoute[])\n .map((d, i) => {\n const trimmed = trimPath(d.fullPath)\n const parsed = parsePathname(trimmed)\n\n while (parsed.length > 1 && parsed[0]?.value === '/') {\n parsed.shift()\n }\n\n const score = parsed.map((d) => {\n if (d.type === 'param') {\n return 0.5\n }\n\n if (d.type === 'wildcard') {\n return 0.25\n }\n\n return 1\n })\n\n return { child: d, trimmed, parsed, index: i, score }\n })\n .sort((a, b) => {\n let isIndex = a.trimmed === '/' ? 1 : b.trimmed === '/' ? -1 : 0\n\n if (isIndex !== 0) return isIndex\n\n const length = Math.min(a.score.length, b.score.length)\n\n // Sort by length of score\n if (a.score.length !== b.score.length) {\n return b.score.length - a.score.length\n }\n\n // Sort by min available score\n for (let i = 0; i < length; i++) {\n if (a.score[i] !== b.score[i]) {\n return b.score[i]! - a.score[i]!\n }\n }\n\n // Sort by min available parsed value\n for (let i = 0; i < length; i++) {\n if (a.parsed[i]!.value !== b.parsed[i]!.value) {\n return a.parsed[i]!.value! > b.parsed[i]!.value! ? 1 : -1\n }\n }\n\n // Sort by length of trimmed full path\n if (a.trimmed !== b.trimmed) {\n return a.trimmed > b.trimmed ? 1 : -1\n }\n\n // Sort by original index\n return a.index - b.index\n })\n .map((d, i) => {\n d.child.rank = i\n return d.child\n }),\n [routesByPath],\n )\n\n const latestLoadPromiseRef = React.useRef<Promise<void>>(Promise.resolve())\n\n const matchRoutes = useStableCallback(\n <TRouteTree extends AnyRoute>(\n pathname: string,\n locationSearch: AnySearchSchema,\n opts?: { throwOnError?: boolean; debug?: boolean },\n ): RouteMatch<TRouteTree>[] => {\n let routeParams: AnyPathParams = {}\n\n let foundRoute = flatRoutes.find((route) => {\n const matchedParams = matchPathname(basepath, trimPathRight(pathname), {\n to: route.fullPath,\n caseSensitive: route.options.caseSensitive ?? options.caseSensitive,\n fuzzy: false,\n })\n\n if (matchedParams) {\n routeParams = matchedParams\n return true\n }\n\n return false\n })\n\n let routeCursor: AnyRoute = foundRoute || (routesById as any)['__root__']\n\n let matchedRoutes: AnyRoute[] = [routeCursor]\n // let includingLayouts = true\n while (routeCursor?.parentRoute) {\n routeCursor = routeCursor.parentRoute\n if (routeCursor) matchedRoutes.unshift(routeCursor)\n }\n\n // Existing matches are matches that are already loaded along with\n // pending matches that are still loading\n\n const parseErrors = matchedRoutes.map((route) => {\n let parsedParamsError\n\n if (route.options.parseParams) {\n try {\n const parsedParams = route.options.parseParams(routeParams)\n // Add the parsed params to the accumulated params bag\n Object.assign(routeParams, parsedParams)\n } catch (err: any) {\n parsedParamsError = new PathParamError(err.message, {\n cause: err,\n })\n\n if (opts?.throwOnError) {\n throw parsedParamsError\n }\n\n return parsedParamsError\n }\n }\n\n return\n })\n\n const matches = matchedRoutes.map((route, index) => {\n const interpolatedPath = interpolatePath(route.path, routeParams)\n const matchId = interpolatePath(route.id, routeParams, true)\n\n // Waste not, want not. If we already have a match for this route,\n // reuse it. This is important for layout routes, which might stick\n // around between navigation actions that only change leaf routes.\n const existingMatch = getRouteMatch(state, matchId)\n\n if (existingMatch) {\n return { ...existingMatch }\n }\n\n // Create a fresh route match\n const hasLoaders = !!(\n route.options.load ||\n componentTypes.some((d) => (route.options[d] as any)?.preload)\n )\n\n const routeMatch: AnyRouteMatch = {\n id: matchId,\n routeId: route.id,\n params: routeParams,\n pathname: joinPaths([basepath, interpolatedPath]),\n updatedAt: Date.now(),\n routeSearch: {},\n search: {} as any,\n status: hasLoaders ? 'pending' : 'success',\n isFetching: false,\n invalid: false,\n error: undefined,\n paramsError: parseErrors[index],\n searchError: undefined,\n loadPromise: Promise.resolve(),\n meta: undefined!,\n abortController: new AbortController(),\n fetchedAt: 0,\n }\n\n return routeMatch\n })\n\n // Take each match and resolve its search params and meta\n // This has to happen after the matches are created or found\n // so that we can use the parent match's search params and meta\n matches.forEach((match, i): any => {\n const parentMatch = matches[i - 1]\n const route = looseRoutesById[match.routeId]!\n\n const searchInfo = (() => {\n // Validate the search params and stabilize them\n const parentSearchInfo = {\n search: parentMatch?.search ?? locationSearch,\n routeSearch: parentMatch?.routeSearch ?? locationSearch,\n }\n\n try {\n const validator =\n typeof route.options.validateSearch === 'object'\n ? route.options.validateSearch.parse\n : route.options.validateSearch\n\n let routeSearch = validator?.(parentSearchInfo.search) ?? {}\n\n let search = {\n ...parentSearchInfo.search,\n ...routeSearch,\n }\n\n routeSearch = replaceEqualDeep(match.routeSearch, routeSearch)\n search = replaceEqualDeep(match.search, search)\n\n return {\n routeSearch,\n search,\n searchDidChange: match.routeSearch !== routeSearch,\n }\n } catch (err: any) {\n match.searchError = new SearchParamError(err.message, {\n cause: err,\n })\n\n if (opts?.throwOnError) {\n throw match.searchError\n }\n\n return parentSearchInfo\n }\n })()\n\n Object.assign(match, searchInfo)\n })\n\n return matches as any\n },\n )\n\n const cancelMatch = useStableCallback(\n <TRouteTree extends AnyRoute>(id: string) => {\n getRouteMatch(state, id)?.abortController?.abort()\n },\n )\n\n const cancelMatches = useStableCallback(\n <TRouteTree extends AnyRoute>(state: RouterState<TRouteTree>) => {\n state.matches.forEach((match) => {\n cancelMatch(match.id)\n })\n },\n )\n\n const buildLocation = useStableCallback(\n <TRouteTree extends AnyRoute>(\n opts: BuildNextOptions = {},\n ): ParsedLocation => {\n const build = (\n dest: BuildNextOptions & {\n unmaskOnReload?: boolean\n } = {},\n matches?: AnyRouteMatch[],\n ): ParsedLocation => {\n const from = latestLocationRef.current\n const fromPathname = dest.from ?? from.pathname\n\n let pathname = resolvePathWithBase(fromPathname, `${dest.to ?? ''}`)\n\n const fromMatches = matchRoutes(fromPathname, from.search)\n const stayingMatches = matches?.filter((d) =>\n fromMatches?.find((e) => e.routeId === d.routeId),\n )\n\n const prevParams = { ...last(fromMatches)?.params }\n\n let nextParams =\n (dest.params ?? true) === true\n ? prevParams\n : functionalUpdate(dest.params!, prevParams)\n\n if (nextParams) {\n matches\n ?.map((d) => looseRoutesById[d.routeId]!.options.stringifyParams)\n .filter(Boolean)\n .forEach((fn) => {\n nextParams = { ...nextParams!, ...fn!(nextParams!) }\n })\n }\n\n pathname = interpolatePath(pathname, nextParams ?? {})\n\n const preSearchFilters =\n stayingMatches\n ?.map(\n (match) =>\n looseRoutesById[match.routeId]!.options.preSearchFilters ?? [],\n )\n .flat()\n .filter(Boolean) ?? []\n\n const postSearchFilters =\n stayingMatches\n ?.map(\n (match) =>\n looseRoutesById[match.routeId]!.options.postSearchFilters ?? [],\n )\n .flat()\n .filter(Boolean) ?? []\n\n // Pre filters first\n const preFilteredSearch = preSearchFilters?.length\n ? preSearchFilters?.reduce(\n (prev, next) => next(prev) as any,\n from.search,\n )\n : from.search\n\n // Then the link/navigate function\n const destSearch =\n dest.search === true\n ? preFilteredSearch // Preserve resolvedFrom true\n : dest.search\n ? functionalUpdate(dest.search, preFilteredSearch) ?? {} // Updater\n : preSearchFilters?.length\n ? preFilteredSearch // Preserve resolvedFrom filters\n : {}\n\n // Then post filters\n const postFilteredSearch = postSearchFilters?.length\n ? postSearchFilters.reduce((prev, next) => next(prev), destSearch)\n : destSearch\n\n const search = replaceEqualDeep(from.search, postFilteredSearch)\n\n const searchStr = options.stringifySearch(search)\n\n const hash =\n dest.hash === true\n ? from.hash\n : dest.hash\n ? functionalUpdate(dest.hash!, from.hash)\n : from.hash\n\n const hashStr = hash ? `#${hash}` : ''\n\n let nextState =\n dest.state === true\n ? from.state\n : dest.state\n ? functionalUpdate(dest.state, from.state)\n : from.state\n\n nextState = replaceEqualDeep(from.state, nextState)\n\n return {\n pathname,\n search,\n searchStr,\n state: nextState as any,\n hash,\n href: history.createHref(`${pathname}${searchStr}${hashStr}`),\n unmaskOnReload: dest.unmaskOnReload,\n }\n }\n\n const buildWithMatches = (\n dest: BuildNextOptions = {},\n maskedDest?: BuildNextOptions,\n ) => {\n let next = build(dest)\n let maskedNext = maskedDest ? build(maskedDest) : undefined\n\n if (!maskedNext) {\n let params = {}\n\n let foundMask = options.routeMasks?.find((d) => {\n const match = matchPathname(basepath, next.pathname, {\n to: d.from,\n caseSensitive: false,\n fuzzy: false,\n })\n\n if (match) {\n params = match\n return true\n }\n\n return false\n })\n\n if (foundMask) {\n foundMask = {\n ...foundMask,\n from: interpolatePath(foundMask.from, params) as any,\n }\n maskedDest = foundMask\n maskedNext = build(maskedDest)\n }\n }\n\n const nextMatches = matchRoutes(next.pathname, next.search)\n const maskedMatches = maskedNext\n ? matchRoutes(maskedNext.pathname, maskedNext.search)\n : undefined\n const maskedFinal = maskedNext\n ? build(maskedDest, maskedMatches)\n : undefined\n\n const final = build(dest, nextMatches)\n\n if (maskedFinal) {\n final.maskedLocation = maskedFinal\n }\n\n return final\n }\n\n if (opts.mask) {\n return buildWithMatches(opts, {\n ...pick(opts, ['from']),\n ...opts.mask,\n })\n }\n\n return buildWithMatches(opts)\n },\n )\n\n const commitLocation = useStableCallback(\n async (next: ParsedLocation & CommitLocationOptions) => {\n if (navigateTimeoutRef.current) clearTimeout(navigateTimeoutRef.current)\n\n const isSameUrl = latestLocationRef.current.href === next.href\n\n // If the next urls are the same and we're not replacing,\n // do nothing\n if (!isSameUrl || !next.replace) {\n let { maskedLocation, ...nextHistory } = next\n\n if (maskedLocation) {\n nextHistory = {\n ...maskedLocation,\n state: {\n ...maskedLocation.state,\n __tempKey: undefined,\n __tempLocation: {\n ...nextHistory,\n search: nextHistory.searchStr,\n state: {\n ...nextHistory.state,\n __tempKey: undefined!,\n __tempLocation: undefined!,\n key: undefined!,\n },\n },\n },\n }\n\n if (nextHistory.unmaskOnReload ?? options.unmaskOnReload ?? false) {\n nextHistory.state.__tempKey = tempLocationKeyRef.current\n }\n }\n\n history[next.replace ? 'replace' : 'push'](\n nextHistory.href,\n nextHistory.state,\n )\n }\n\n resetNextScrollRef.current = next.resetScroll ?? true\n\n return latestLoadPromiseRef.current\n },\n )\n\n const buildAndCommitLocation = useStableCallback(\n ({\n replace,\n resetScroll,\n ...rest\n }: BuildNextOptions & CommitLocationOptions = {}) => {\n const location = buildLocation(rest)\n return commitLocation({\n ...location,\n replace,\n resetScroll,\n })\n },\n )\n\n const navigate = useStableCallback<NavigateFn<TRouteTree>>(\n ({ from, to = '', ...rest }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n const toString = String(to)\n const fromString = typeof from === 'undefined' ? from : String(from)\n let isExternal\n\n try {\n new URL(`${toString}`)\n isExternal = true\n } catch (e) {}\n\n invariant(\n !isExternal,\n 'Attempting to navigate to external url with this.navigate!',\n )\n\n return buildAndCommitLocation({\n ...rest,\n from: fromString,\n to: toString,\n })\n },\n )\n\n const loadMatches = useStableCallback(\n async ({\n matches,\n preload,\n }: {\n matches: AnyRouteMatch[]\n preload?: boolean\n }) => {\n let firstBadMatchIndex: number | undefined\n\n // Check each match middleware to see if the route can be accessed\n try {\n for (let [index, match] of matches.entries()) {\n const parentMatch = matches[index - 1]\n const route = looseRoutesById[match.routeId]!\n\n const handleError = (err: any, code: string) => {\n err.routerCode = code\n firstBadMatchIndex = firstBadMatchIndex ?? index\n\n if (isRedirect(err)) {\n throw err\n }\n\n try {\n route.options.onError?.(err)\n } catch (errorHandlerErr) {\n err = errorHandlerErr\n\n if (isRedirect(errorHandlerErr)) {\n throw errorHandlerErr\n }\n }\n\n matches[index] = match = {\n ...match,\n error: err,\n status: 'error',\n updatedAt: Date.now(),\n }\n }\n\n try {\n if (match.paramsError) {\n handleError(match.paramsError, 'PARSE_PARAMS')\n }\n\n if (match.searchError) {\n handleError(match.searchError, 'VALIDATE_SEARCH')\n }\n\n const parentMeta = parentMatch?.meta ?? options.meta ?? {}\n\n const beforeLoadMeta =\n (await route.options.beforeLoad?.({\n search: match.search,\n abortController: match.abortController,\n params: match.params,\n preload: !!preload,\n meta: parentMeta,\n location: state.location, // TODO: This might need to be latestLocationRef.current...?\n })) ?? ({} as any)\n\n const meta = {\n ...parentMeta,\n ...beforeLoadMeta,\n }\n\n matches[index] = match = {\n ...match,\n meta: replaceEqualDeep(match.meta, meta),\n }\n } catch (err) {\n handleError(err, 'BEFORE_LOAD')\n break\n }\n }\n } catch (err) {\n if (isRedirect(err)) {\n if (!preload) navigate(err as any)\n return\n }\n\n throw err\n }\n\n const validResolvedMatches = matches.slice(0, firstBadMatchIndex)\n const matchPromises: Promise<any>[] = []\n\n validResolvedMatches.forEach((match, index) => {\n matchPromises.push(\n (async () => {\n const parentMatchPromise = matchPromises[index - 1]\n const route = looseRoutesById[match.routeId]!\n\n if (match.isFetching) {\n return getRouteMatch(state, match.id)?.loadPromise\n }\n\n const fetchedAt = Date.now()\n const checkLatest = () => {\n const latest = getRouteMatch(state, match.id)\n return latest && latest.fetchedAt !== fetchedAt\n ? latest.loadPromise\n : undefined\n }\n\n const handleIfRedirect = (err: any) => {\n if (isRedirect(err)) {\n if (!preload) {\n navigate(err as any)\n }\n return true\n }\n return false\n }\n\n const load = async () => {\n let latestPromise\n\n try {\n const componentsPromise = Promise.all(\n componentTypes.map(async (type) => {\n const component = route.options[type]\n\n if ((component as any)?.preload) {\n await (component as any).preload()\n }\n }),\n )\n\n const loaderPromise = route.options.load?.({\n params: match.params,\n search: match.search,\n preload: !!preload,\n parentMatchPromise,\n abortController: match.abortController,\n meta: match.meta,\n })\n\n await Promise.all([componentsPromise, loaderPromise])\n if ((latestPromise = checkLatest())) return await latestPromise\n\n matches[index] = match = {\n ...match,\n error: undefined,\n status: 'success',\n isFetching: false,\n updatedAt: Date.now(),\n }\n } catch (error) {\n if ((latestPromise = checkLatest())) return await latestPromise\n if (handleIfRedirect(error)) return\n\n try {\n route.options.onError?.(error)\n } catch (onErrorError) {\n error = onErrorError\n if (handleIfRedirect(onErrorError)) return\n }\n\n matches[index] = match = {\n ...match,\n error,\n status: 'error',\n isFetching: false,\n updatedAt: Date.now(),\n }\n }\n }\n\n let loadPromise: Promise<void> | undefined\n\n matches[index] = match = {\n ...match,\n isFetching: true,\n fetchedAt,\n invalid: false,\n }\n\n loadPromise = load()\n\n matches[index] = match = {\n ...match,\n loadPromise,\n }\n\n await loadPromise\n })(),\n )\n })\n\n await Promise.all(matchPromises)\n },\n )\n\n const load = useStableCallback<LoadFn>(async (opts) => {\n const promise = new Promise<void>(async (resolve, reject) => {\n const prevLocation = state.resolvedLocation\n const pathDidChange = !!(\n opts?.next && prevLocation!.href !== opts.next.href\n )\n\n let latestPromise: Promise<void> | undefined | null\n\n const checkLatest = (): undefined | Promise<void> | null => {\n return latestLoadPromiseRef.current !== promise\n ? latestLoadPromiseRef.current\n : undefined\n }\n\n // Cancel any pending matches\n cancelMatches(state)\n\n router.emit({\n type: 'onBeforeLoad',\n from: prevLocation,\n to: opts?.next ?? state.location,\n pathChanged: pathDidChange,\n })\n\n if (opts?.next) {\n // Ingest the new location\n setState((s) => ({\n ...s,\n location: opts.next! as any,\n }))\n }\n\n // Match the routes\n const matches: RouteMatch<any, any>[] = matchRoutes(\n state.location.pathname,\n state.location.search,\n {\n throwOnError: opts?.throwOnError,\n debug: true,\n },\n )\n\n setState((s) => ({\n ...s,\n status: 'pending',\n matches,\n }))\n\n try {\n // Load the matches\n try {\n await loadMatches({\n matches,\n })\n } catch (err) {\n // swallow this error, since we'll display the\n // errors on the route components\n }\n\n // Only apply the latest transition\n if ((latestPromise = checkLatest())) {\n return latestPromise\n }\n\n // TODO:\n // const exitingMatchIds = previousMatches.filter(\n // (id) => !state.pendingMatches.includes(id),\n // )\n // const enteringMatchIds = state.pendingMatches.filter(\n // (id) => !previousMatches.includes(id),\n // )\n // const stayingMatchIds = previousMatches.filter((id) =>\n // state.pendingMatches.includes(id),\n // )\n\n setState((s) => ({\n ...s,\n status: 'idle',\n resolvedLocation: s.location,\n }))\n\n // TODO:\n // ;(\n // [\n // [exitingMatchIds, 'onLeave'],\n // [enteringMatchIds, 'onEnter'],\n // [stayingMatchIds, 'onTransition'],\n // ] as const\n // ).forEach(([matches, hook]) => {\n // matches.forEach((match) => {\n // const route = this.getRoute(match.routeId)\n // route.options[hook]?.(match)\n // })\n // })\n router.emit({\n type: 'onLoad',\n from: prevLocation,\n to: state.location,\n pathChanged: pathDidChange,\n })\n\n resolve()\n } catch (err) {\n // Only apply the latest transition\n if ((latestPromise = checkLatest())) {\n return latestPromise\n }\n\n reject(err)\n }\n })\n\n latestLoadPromiseRef.current = promise\n\n return latestLoadPromiseRef.current\n })\n\n const safeLoad = React.useCallback(async () => {\n try {\n return load()\n } catch (err) {\n // Don't do anything\n }\n }, [])\n\n const preloadRoute = useStableCallback(\n async (navigateOpts: BuildNextOptions = state.location) => {\n let next = buildLocation(navigateOpts)\n\n let matches = matchRoutes(next.pathname, next.search, {\n throwOnError: true,\n })\n\n await loadMatches({\n matches,\n preload: true,\n })\n\n return [last(matches)!, matches] as const\n },\n )\n\n const buildLink = useStableCallback<BuildLinkFn<TRouteTree>>(\n (state, dest) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n\n const {\n to,\n preload: userPreload,\n preloadDelay: userPreloadDelay,\n activeOptions,\n disabled,\n target,\n replace,\n resetScroll,\n } = dest\n\n try {\n new URL(`${to}`)\n return {\n type: 'external',\n href: to as any,\n }\n } catch (e) {}\n\n const nextOpts = dest\n\n const next = buildLocation(nextOpts as any)\n\n const preload = userPreload ?? options.defaultPreload\n const preloadDelay = userPreloadDelay ?? options.defaultPreloadDelay ?? 0\n\n // Compare path/hash for matches\n const currentPathSplit = latestLocationRef.current.pathname.split('/')\n const nextPathSplit = next.pathname.split('/')\n const pathIsFuzzyEqual = nextPathSplit.every(\n (d, i) => d === currentPathSplit[i],\n )\n // Combine the matches based on user options\n const pathTest = activeOptions?.exact\n ? latestLocationRef.current.pathname === next.pathname\n : pathIsFuzzyEqual\n const hashTest = activeOptions?.includeHash\n ? latestLocationRef.current.hash === next.hash\n : true\n const searchTest =\n activeOptions?.includeSearch ?? true\n ? partialDeepEqual(latestLocationRef.current.search, next.search)\n : true\n\n // The final \"active\" test\n const isActive = pathTest && hashTest && searchTest\n\n // The click handler\n const handleClick = (e: MouseEvent) => {\n if (\n !disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!target || target === '_self') &&\n e.button === 0\n ) {\n e.preventDefault()\n\n // All is well? Navigate!\n commitLocation({ ...next, replace, resetScroll })\n }\n }\n\n // The click handler\n const handleFocus = (e: MouseEvent) => {\n if (preload) {\n preloadRoute(nextOpts as any).catch((err) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n }\n }\n\n const handleTouchStart = (e: TouchEvent) => {\n preloadRoute(nextOpts as any).catch((err) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n preloadRoute(nextOpts as any).catch((err) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n }, preloadDelay)\n }\n }\n\n const handleLeave = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (target.preloadTimeout) {\n clearTimeout(target.preloadTimeout)\n target.preloadTimeout = null\n }\n }\n\n return {\n type: 'internal',\n next,\n handleFocus,\n handleClick,\n handleEnter,\n handleLeave,\n handleTouchStart,\n isActive,\n disabled,\n }\n },\n )\n\n const latestLocationRef = React.useRef(state.location)\n\n React.useLayoutEffect(() => {\n const unsub = history.subscribe(() => {\n latestLocationRef.current = parseLocation(latestLocationRef.current)\n\n React.startTransition(() => {\n setState((s) => ({\n ...s,\n location: latestLocationRef.current,\n }))\n })\n })\n\n const nextLocation = buildLocation({\n search: true,\n params: true,\n hash: true,\n state: true,\n })\n\n if (state.location.href !== nextLocation.href) {\n commitLocation({ ...nextLocation, replace: true })\n }\n\n return () => {\n unsub()\n }\n }, [history])\n\n const initialLoad = React.useRef(true)\n\n if (initialLoad.current) {\n initialLoad.current = false\n safeLoad()\n }\n\n React.useLayoutEffect(() => {\n if (state.resolvedLocation !== state.location) {\n safeLoad()\n }\n }, [state.location])\n\n const isFetching = React.useMemo(\n () => [...state.matches, ...state.pendingMatches].some((d) => d.isFetching),\n [state.matches, state.pendingMatches],\n )\n\n const matchRoute = useStableCallback((state, location, opts) => {\n location = {\n ...location,\n to: location.to\n ? resolvePathWithBase((location.from || '') as string, location.to)\n : undefined,\n } as any\n\n const next = buildLocation(location as any)\n if (opts?.pending && state.status !== 'pending') {\n return false\n }\n\n const baseLocation = opts?.pending\n ? latestLocationRef.current\n : state.resolvedLocation\n\n if (!baseLocation) {\n return false\n }\n\n const match = matchPathname(basepath, baseLocation.pathname, {\n ...opts,\n to: next.pathname,\n }) as any\n\n if (!match) {\n return false\n }\n\n if (opts?.includeSearch ?? true) {\n return partialDeepEqual(baseLocation.search, next.search) ? match : false\n }\n\n return match\n })\n\n const routerContextValue: RouterContext<TRouteTree> = {\n routeTree: router.routeTree,\n navigate,\n buildLink,\n state,\n matchRoute,\n routesById,\n options,\n history,\n load,\n }\n\n return (\n <routerContext.Provider value={routerContextValue}>\n <Matches />\n </routerContext.Provider>\n )\n}\n\nfunction mergeMatches<TRouteTree extends AnyRoute>(\n prevMatchesById: Record<string, RouteMatch<TRouteTree>>,\n nextMatches: AnyRouteMatch[],\n): Record<string, RouteMatch<TRouteTree>> {\n let matchesById = { ...prevMatchesById }\n\n nextMatches.forEach((match) => {\n if (!matchesById[match.id]) {\n matchesById[match.id] = match\n }\n\n matchesById[match.id] = {\n ...matchesById[match.id],\n ...match,\n }\n })\n\n return matchesById\n}\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\nexport class SearchParamError extends Error {}\nexport class PathParamError extends Error {}\n\nexport function getRouteMatch<TRouteTree extends AnyRoute>(\n state: RouterState<TRouteTree>,\n id: string,\n): undefined | RouteMatch<TRouteTree> {\n return [...state.pendingMatches, ...state.matches].find((d) => d.id === id)\n}\n"],"names":["preloadWarning","routerContext","React","createContext","getInitialRouterState","location","status","isFetching","resolvedLocation","matches","pendingMatches","lastUpdated","Date","now","RouterProvider","router","rest","options","meta","history","useState","createBrowserHistory","tempLocationKeyRef","useRef","Math","round","random","resetNextScrollRef","navigateTimeoutRef","parseLocation","useStableCallback","previousLocation","parse","pathname","search","hash","state","parsedSearch","parseSearch","searchStr","replaceEqualDeep","split","reverse","href","__tempLocation","__tempKey","current","parsedTempLocation","key","maskedLocation","setState","basepath","trimPath","resolvePathWithBase","from","path","resolvePath","cleanPath","routesById","routesByPath","useMemo","recurseRoutes","routes","forEach","route","i","init","originalIndex","existingRoute","id","invariant","String","isRoot","trimmedFullPath","trimPathRight","fullPath","endsWith","children","length","routeTree","looseRoutesById","flatRoutes","Object","values","map","d","trimmed","parsed","parsePathname","value","shift","score","type","child","index","sort","a","b","isIndex","min","rank","latestLoadPromiseRef","Promise","resolve","matchRoutes","locationSearch","opts","routeParams","foundRoute","find","matchedParams","matchPathname","to","caseSensitive","fuzzy","routeCursor","matchedRoutes","parentRoute","unshift","parseErrors","parsedParamsError","parseParams","parsedParams","assign","err","PathParamError","message","cause","throwOnError","interpolatedPath","interpolatePath","matchId","existingMatch","getRouteMatch","hasLoaders","load","componentTypes","some","preload","routeMatch","routeId","params","joinPaths","updatedAt","routeSearch","invalid","error","undefined","paramsError","searchError","loadPromise","abortController","AbortController","fetchedAt","match","parentMatch","searchInfo","parentSearchInfo","validator","validateSearch","searchDidChange","SearchParamError","cancelMatch","abort","cancelMatches","buildLocation","build","dest","latestLocationRef","fromPathname","fromMatches","stayingMatches","filter","e","prevParams","last","nextParams","functionalUpdate","stringifyParams","Boolean","fn","preSearchFilters","flat","postSearchFilters","preFilteredSearch","reduce","prev","next","destSearch","postFilteredSearch","stringifySearch","hashStr","nextState","createHref","unmaskOnReload","buildWithMatches","maskedDest","maskedNext","foundMask","routeMasks","nextMatches","maskedMatches","maskedFinal","final","mask","pick","commitLocation","clearTimeout","isSameUrl","replace","nextHistory","resetScroll","buildAndCommitLocation","navigate","toString","fromString","isExternal","URL","loadMatches","firstBadMatchIndex","entries","handleError","code","routerCode","isRedirect","onError","errorHandlerErr","parentMeta","beforeLoadMeta","beforeLoad","validResolvedMatches","slice","matchPromises","push","parentMatchPromise","checkLatest","latest","handleIfRedirect","latestPromise","componentsPromise","all","component","loaderPromise","onErrorError","promise","reject","prevLocation","pathDidChange","emit","pathChanged","s","debug","safeLoad","useCallback","preloadRoute","navigateOpts","buildLink","userPreload","preloadDelay","userPreloadDelay","activeOptions","disabled","target","nextOpts","defaultPreload","defaultPreloadDelay","currentPathSplit","nextPathSplit","pathIsFuzzyEqual","every","pathTest","exact","hashTest","includeHash","searchTest","includeSearch","partialDeepEqual","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","catch","console","warn","handleTouchStart","handleEnter","preloadTimeout","setTimeout","handleLeave","useLayoutEffect","unsub","subscribe","startTransition","nextLocation","initialLoad","matchRoute","pending","baseLocation","routerContextValue","createElement","Provider","Matches","metaKey","altKey","ctrlKey","shiftKey","Error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqHA,MAAMA,cAAc,GAAG,4BAA4B,CAAA;AAiB5C,MAAMC,aAAa,gBAAGC,gBAAK,CAACC,aAAa,CAAqB,IAAK,EAAC;AAEpE,SAASC,qBAAqBA,CACnCC,QAAwB,EACN;EAClB,OAAO;AACLC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,gBAAgB,EAAEH,QAAS;AAC3BA,IAAAA,QAAQ,EAAEA,QAAS;AACnBI,IAAAA,OAAO,EAAE,EAAE;AACXC,IAAAA,cAAc,EAAE,EAAE;AAClBC,IAAAA,WAAW,EAAEC,IAAI,CAACC,GAAG,EAAC;GACvB,CAAA;AACH,CAAA;AAEO,SAASC,cAAcA,CAG5B;UAAEC,QAAM;EAAE,GAAGC,IAAAA;AAA2C,CAAC,EAAE;AAC3D,EAAA,MAAMC,OAAO,GAAG;IACd,GAAGF,QAAM,CAACE,OAAO;AACjB,IAAA,GAAGD,IAAI;AACPE,IAAAA,IAAI,EAAE;AACJ,MAAA,GAAGH,QAAM,CAACE,OAAO,CAACC,IAAI;AACtB,MAAA,GAAGF,IAAI,EAAEE,IAAAA;AACX,KAAA;GAID,CAAA;AAED,EAAA,MAAMC,SAAO,GAAGjB,gBAAK,CAACkB,QAAQ,CAC5B,MAAMH,OAAO,CAACE,OAAO,IAAIE,4BAAoB,EAC/C,CAAC,CAAC,CAAC,CAAC,CAAA;EAEJ,MAAMC,kBAAkB,GAAGpB,gBAAK,CAACqB,MAAM,CACpC,CAAA,EAAEC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAG,QAAQ,CAAE,EAC1C,CAAC,CAAA;AACD,EAAA,MAAMC,kBAAkB,GAAGzB,gBAAK,CAACqB,MAAM,CAAU,KAAK,CAAC,CAAA;AAEvD,EAAA,MAAMK,kBAAkB,GAAG1B,gBAAK,CAACqB,MAAM,CAAwB,IAAI,CAAC,CAAA;AAEpE,EAAA,MAAMM,aAAa,GAAGC,uBAAiB,CAEnCC,gBAAiC,IACgB;IACjD,MAAMC,KAAK,GAAGA,CAAC;MACbC,QAAQ;MACRC,MAAM;MACNC,IAAI;AACJC,MAAAA,KAAAA;AACe,KAAC,KAAmD;AACnE,MAAA,MAAMC,YAAY,GAAGpB,OAAO,CAACqB,WAAW,CAACJ,MAAM,CAAC,CAAA;MAEhD,OAAO;AACLD,QAAAA,QAAQ,EAAEA,QAAQ;AAClBM,QAAAA,SAAS,EAAEL,MAAM;QACjBA,MAAM,EAAEM,sBAAgB,CACtBT,gBAAgB,EAAEG,MAAM,EACxBG,YACF,CAAQ;AACRF,QAAAA,IAAI,EAAEA,IAAI,CAACM,KAAK,CAAC,GAAG,CAAC,CAACC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AACxCC,QAAAA,IAAI,EAAG,CAAEV,EAAAA,QAAS,GAAEC,MAAO,CAAA,EAAEC,IAAK,CAAC,CAAA;AACnCC,QAAAA,KAAK,EAAEI,sBAAgB,CACrBT,gBAAgB,EAAEK,KAAK,EACvBA,KACF,CAAA;OACD,CAAA;KACF,CAAA;AAED,IAAA,MAAM/B,QAAQ,GAAG2B,KAAK,CAACb,SAAO,CAACd,QAAQ,CAAC,CAAA;IAExC,IAAI;MAAEuC,cAAc;AAAEC,MAAAA,SAAAA;KAAW,GAAGxC,QAAQ,CAAC+B,KAAK,CAAA;IAElD,IACEQ,cAAc,KACb,CAACC,SAAS,IAAIA,SAAS,KAAKvB,kBAAkB,CAACwB,OAAO,CAAC,EACxD;AACA;AACA,MAAA,MAAMC,kBAAkB,GAAGf,KAAK,CAACY,cAAc,CAAQ,CAAA;MACvDG,kBAAkB,CAACX,KAAK,CAACY,GAAG,GAAG3C,QAAQ,CAAC+B,KAAK,CAACY,GAAG,CAAA;AAEjD,MAAA,OAAOD,kBAAkB,CAACX,KAAK,CAACQ,cAAc,CAAA;MAE9C,OAAO;AACL,QAAA,GAAGG,kBAAkB;AACrBE,QAAAA,cAAc,EAAE5C,QAAAA;OACjB,CAAA;AACH,KAAA;AAEA,IAAA,OAAOA,QAAQ,CAAA;AACjB,GACF,CAAC,CAAA;AAED,EAAA,MAAM,CAAC+B,KAAK,EAAEc,QAAQ,CAAC,GAAGhD,gBAAK,CAACkB,QAAQ,CAA0B,MAChEhB,qBAAqB,CAACyB,aAAa,EAAE,CACvC,CAAC,CAAA;AAED,EAAA,MAAMsB,QAAQ,GAAI,CAAGC,CAAAA,EAAAA,aAAQ,CAACnC,OAAO,CAACkC,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAG,CAAC,CAAA,CAAA;EAE7D,MAAME,mBAAmB,GAAGvB,uBAAiB,CAC3C,CAACwB,IAAY,EAAEC,MAAY,KAAK;IAC9B,OAAOC,gBAAW,CAACL,QAAQ,EAAGG,IAAI,EAAEG,cAAS,CAACF,MAAI,CAAC,CAAC,CAAA;AACtD,GACF,CAAC,CAAA;EAED,MAAM,CAACG,UAAU,EAAEC,YAAY,CAAC,GAAGzD,gBAAK,CAAC0D,OAAO,CAAC,MAAM;IACrD,MAAMF,UAAU,GAAG,EAA4B,CAAA;IAC/C,MAAMC,YAAY,GAAG,EAA8B,CAAA;IAEnD,MAAME,aAAa,GAAIC,MAAkB,IAAK;AAC5CA,MAAAA,MAAM,CAACC,OAAO,CAAC,CAACC,KAAK,EAAEC,CAAC,KAAK;QAC3BD,KAAK,CAACE,IAAI,CAAC;AAAEC,UAAAA,aAAa,EAAEF,CAAAA;AAAE,SAAC,CAAC,CAAA;AAEhC,QAAA,MAAMG,aAAa,GAAIV,UAAU,CAASM,KAAK,CAACK,EAAE,CAAC,CAAA;AAEnDC,QAAAA,6BAAS,CACP,CAACF,aAAa,EACb,CAAkCG,gCAAAA,EAAAA,MAAM,CAACP,KAAK,CAACK,EAAE,CAAE,CAAA,CACtD,CAAC,CAAA;AACCX,QAAAA,UAAU,CAASM,KAAK,CAACK,EAAE,CAAC,GAAGL,KAAK,CAAA;QAEtC,IAAI,CAACA,KAAK,CAACQ,MAAM,IAAIR,KAAK,CAACT,IAAI,EAAE;AAC/B,UAAA,MAAMkB,eAAe,GAAGC,kBAAa,CAACV,KAAK,CAACW,QAAQ,CAAC,CAAA;AACrD,UAAA,IACE,CAAEhB,YAAY,CAASc,eAAe,CAAC,IACvCT,KAAK,CAACW,QAAQ,CAACC,QAAQ,CAAC,GAAG,CAAC,EAC5B;AACEjB,YAAAA,YAAY,CAASc,eAAe,CAAC,GAAGT,KAAK,CAAA;AACjD,WAAA;AACF,SAAA;AAEA,QAAA,MAAMa,QAAQ,GAAGb,KAAK,CAACa,QAAmB,CAAA;QAE1C,IAAIA,QAAQ,EAAEC,MAAM,EAAE;UACpBjB,aAAa,CAACgB,QAAQ,CAAC,CAAA;AACzB,SAAA;AACF,OAAC,CAAC,CAAA;KACH,CAAA;AAEDhB,IAAAA,aAAa,CAAC,CAAC9C,QAAM,CAACgE,SAAS,CAAC,CAAC,CAAA;AAEjC,IAAA,OAAO,CAACrB,UAAU,EAAEC,YAAY,CAAC,CAAA;GAClC,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMqB,eAAe,GAAGtB,UAAsC,CAAA;EAE9D,MAAMuB,UAAU,GAAG/E,gBAAK,CAAC0D,OAAO,CAC9B,MACGsB,MAAM,CAACC,MAAM,CAACxB,YAAY,CAAC,CACzByB,GAAG,CAAC,CAACC,CAAC,EAAEpB,CAAC,KAAK;AACb,IAAA,MAAMqB,OAAO,GAAGlC,aAAQ,CAACiC,CAAC,CAACV,QAAQ,CAAC,CAAA;AACpC,IAAA,MAAMY,MAAM,GAAGC,kBAAa,CAACF,OAAO,CAAC,CAAA;AAErC,IAAA,OAAOC,MAAM,CAACT,MAAM,GAAG,CAAC,IAAIS,MAAM,CAAC,CAAC,CAAC,EAAEE,KAAK,KAAK,GAAG,EAAE;MACpDF,MAAM,CAACG,KAAK,EAAE,CAAA;AAChB,KAAA;AAEA,IAAA,MAAMC,KAAK,GAAGJ,MAAM,CAACH,GAAG,CAAEC,CAAC,IAAK;AAC9B,MAAA,IAAIA,CAAC,CAACO,IAAI,KAAK,OAAO,EAAE;AACtB,QAAA,OAAO,GAAG,CAAA;AACZ,OAAA;AAEA,MAAA,IAAIP,CAAC,CAACO,IAAI,KAAK,UAAU,EAAE;AACzB,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AAEA,MAAA,OAAO,CAAC,CAAA;AACV,KAAC,CAAC,CAAA;IAEF,OAAO;AAAEC,MAAAA,KAAK,EAAER,CAAC;MAAEC,OAAO;MAAEC,MAAM;AAAEO,MAAAA,KAAK,EAAE7B,CAAC;AAAE0B,MAAAA,KAAAA;KAAO,CAAA;GACtD,CAAC,CACDI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;AACd,IAAA,IAAIC,OAAO,GAAGF,CAAC,CAACV,OAAO,KAAK,GAAG,GAAG,CAAC,GAAGW,CAAC,CAACX,OAAO,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAEhE,IAAA,IAAIY,OAAO,KAAK,CAAC,EAAE,OAAOA,OAAO,CAAA;AAEjC,IAAA,MAAMpB,MAAM,GAAGtD,IAAI,CAAC2E,GAAG,CAACH,CAAC,CAACL,KAAK,CAACb,MAAM,EAAEmB,CAAC,CAACN,KAAK,CAACb,MAAM,CAAC,CAAA;;AAEvD;IACA,IAAIkB,CAAC,CAACL,KAAK,CAACb,MAAM,KAAKmB,CAAC,CAACN,KAAK,CAACb,MAAM,EAAE;MACrC,OAAOmB,CAAC,CAACN,KAAK,CAACb,MAAM,GAAGkB,CAAC,CAACL,KAAK,CAACb,MAAM,CAAA;AACxC,KAAA;;AAEA;IACA,KAAK,IAAIb,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGa,MAAM,EAAEb,CAAC,EAAE,EAAE;AAC/B,MAAA,IAAI+B,CAAC,CAACL,KAAK,CAAC1B,CAAC,CAAC,KAAKgC,CAAC,CAACN,KAAK,CAAC1B,CAAC,CAAC,EAAE;AAC7B,QAAA,OAAOgC,CAAC,CAACN,KAAK,CAAC1B,CAAC,CAAC,GAAI+B,CAAC,CAACL,KAAK,CAAC1B,CAAC,CAAE,CAAA;AAClC,OAAA;AACF,KAAA;;AAEA;IACA,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGa,MAAM,EAAEb,CAAC,EAAE,EAAE;AAC/B,MAAA,IAAI+B,CAAC,CAACT,MAAM,CAACtB,CAAC,CAAC,CAAEwB,KAAK,KAAKQ,CAAC,CAACV,MAAM,CAACtB,CAAC,CAAC,CAAEwB,KAAK,EAAE;QAC7C,OAAOO,CAAC,CAACT,MAAM,CAACtB,CAAC,CAAC,CAAEwB,KAAK,GAAIQ,CAAC,CAACV,MAAM,CAACtB,CAAC,CAAC,CAAEwB,KAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3D,OAAA;AACF,KAAA;;AAEA;AACA,IAAA,IAAIO,CAAC,CAACV,OAAO,KAAKW,CAAC,CAACX,OAAO,EAAE;MAC3B,OAAOU,CAAC,CAACV,OAAO,GAAGW,CAAC,CAACX,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACvC,KAAA;;AAEA;AACA,IAAA,OAAOU,CAAC,CAACF,KAAK,GAAGG,CAAC,CAACH,KAAK,CAAA;GACzB,CAAC,CACDV,GAAG,CAAC,CAACC,CAAC,EAAEpB,CAAC,KAAK;AACboB,IAAAA,CAAC,CAACQ,KAAK,CAACO,IAAI,GAAGnC,CAAC,CAAA;IAChB,OAAOoB,CAAC,CAACQ,KAAK,CAAA;AAChB,GAAC,CAAC,EACN,CAAClC,YAAY,CACf,CAAC,CAAA;EAED,MAAM0C,oBAAoB,GAAGnG,gBAAK,CAACqB,MAAM,CAAgB+E,OAAO,CAACC,OAAO,EAAE,CAAC,CAAA;EAE3E,MAAMC,WAAW,GAAG1E,uBAAiB,CACnC,CACEG,QAAgB,EAChBwE,cAA+B,EAC/BC,IAAkD,KACrB;IAC7B,IAAIC,WAA0B,GAAG,EAAE,CAAA;AAEnC,IAAA,IAAIC,UAAU,GAAG3B,UAAU,CAAC4B,IAAI,CAAE7C,KAAK,IAAK;MAC1C,MAAM8C,aAAa,GAAGC,kBAAa,CAAC5D,QAAQ,EAAEuB,kBAAa,CAACzC,QAAQ,CAAC,EAAE;QACrE+E,EAAE,EAAEhD,KAAK,CAACW,QAAQ;QAClBsC,aAAa,EAAEjD,KAAK,CAAC/C,OAAO,CAACgG,aAAa,IAAIhG,OAAO,CAACgG,aAAa;AACnEC,QAAAA,KAAK,EAAE,KAAA;AACT,OAAC,CAAC,CAAA;AAEF,MAAA,IAAIJ,aAAa,EAAE;AACjBH,QAAAA,WAAW,GAAGG,aAAa,CAAA;AAC3B,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AAEA,MAAA,OAAO,KAAK,CAAA;AACd,KAAC,CAAC,CAAA;AAEF,IAAA,IAAIK,WAAqB,GAAGP,UAAU,IAAKlD,UAAU,CAAS,UAAU,CAAC,CAAA;AAEzE,IAAA,IAAI0D,aAAyB,GAAG,CAACD,WAAW,CAAC,CAAA;AAC7C;IACA,OAAOA,WAAW,EAAEE,WAAW,EAAE;MAC/BF,WAAW,GAAGA,WAAW,CAACE,WAAW,CAAA;AACrC,MAAA,IAAIF,WAAW,EAAEC,aAAa,CAACE,OAAO,CAACH,WAAW,CAAC,CAAA;AACrD,KAAA;;AAEA;AACA;;AAEA,IAAA,MAAMI,WAAW,GAAGH,aAAa,CAAChC,GAAG,CAAEpB,KAAK,IAAK;AAC/C,MAAA,IAAIwD,iBAAiB,CAAA;AAErB,MAAA,IAAIxD,KAAK,CAAC/C,OAAO,CAACwG,WAAW,EAAE;QAC7B,IAAI;UACF,MAAMC,YAAY,GAAG1D,KAAK,CAAC/C,OAAO,CAACwG,WAAW,CAACd,WAAW,CAAC,CAAA;AAC3D;AACAzB,UAAAA,MAAM,CAACyC,MAAM,CAAChB,WAAW,EAAEe,YAAY,CAAC,CAAA;SACzC,CAAC,OAAOE,GAAQ,EAAE;AACjBJ,UAAAA,iBAAiB,GAAG,IAAIK,cAAc,CAACD,GAAG,CAACE,OAAO,EAAE;AAClDC,YAAAA,KAAK,EAAEH,GAAAA;AACT,WAAC,CAAC,CAAA;UAEF,IAAIlB,IAAI,EAAEsB,YAAY,EAAE;AACtB,YAAA,MAAMR,iBAAiB,CAAA;AACzB,WAAA;AAEA,UAAA,OAAOA,iBAAiB,CAAA;AAC1B,SAAA;AACF,OAAA;AAEA,MAAA,OAAA;AACF,KAAC,CAAC,CAAA;IAEF,MAAM/G,OAAO,GAAG2G,aAAa,CAAChC,GAAG,CAAC,CAACpB,KAAK,EAAE8B,KAAK,KAAK;MAClD,MAAMmC,gBAAgB,GAAGC,oBAAe,CAAClE,KAAK,CAACT,IAAI,EAAEoD,WAAW,CAAC,CAAA;MACjE,MAAMwB,OAAO,GAAGD,oBAAe,CAAClE,KAAK,CAACK,EAAE,EAAEsC,WAAW,EAAE,IAAI,CAAC,CAAA;;AAE5D;AACA;AACA;AACA,MAAA,MAAMyB,aAAa,GAAGC,aAAa,CAACjG,KAAK,EAAE+F,OAAO,CAAC,CAAA;AAEnD,MAAA,IAAIC,aAAa,EAAE;QACjB,OAAO;UAAE,GAAGA,aAAAA;SAAe,CAAA;AAC7B,OAAA;;AAEA;MACA,MAAME,UAAU,GAAG,CAAC,EAClBtE,KAAK,CAAC/C,OAAO,CAACsH,IAAI,IAClBC,qBAAc,CAACC,IAAI,CAAEpD,CAAC,IAAMrB,KAAK,CAAC/C,OAAO,CAACoE,CAAC,CAAC,EAAUqD,OAAO,CAAC,CAC/D,CAAA;AAED,MAAA,MAAMC,UAAyB,GAAG;AAChCtE,QAAAA,EAAE,EAAE8D,OAAO;QACXS,OAAO,EAAE5E,KAAK,CAACK,EAAE;AACjBwE,QAAAA,MAAM,EAAElC,WAAW;QACnB1E,QAAQ,EAAE6G,cAAS,CAAC,CAAC3F,QAAQ,EAAE8E,gBAAgB,CAAC,CAAC;AACjDc,QAAAA,SAAS,EAAEnI,IAAI,CAACC,GAAG,EAAE;QACrBmI,WAAW,EAAE,EAAE;QACf9G,MAAM,EAAE,EAAS;AACjB5B,QAAAA,MAAM,EAAEgI,UAAU,GAAG,SAAS,GAAG,SAAS;AAC1C/H,QAAAA,UAAU,EAAE,KAAK;AACjB0I,QAAAA,OAAO,EAAE,KAAK;AACdC,QAAAA,KAAK,EAAEC,SAAS;AAChBC,QAAAA,WAAW,EAAE7B,WAAW,CAACzB,KAAK,CAAC;AAC/BuD,QAAAA,WAAW,EAAEF,SAAS;AACtBG,QAAAA,WAAW,EAAEhD,OAAO,CAACC,OAAO,EAAE;AAC9BrF,QAAAA,IAAI,EAAEiI,SAAU;AAChBI,QAAAA,eAAe,EAAE,IAAIC,eAAe,EAAE;AACtCC,QAAAA,SAAS,EAAE,CAAA;OACZ,CAAA;AAED,MAAA,OAAOd,UAAU,CAAA;AACnB,KAAC,CAAC,CAAA;;AAEF;AACA;AACA;AACAlI,IAAAA,OAAO,CAACsD,OAAO,CAAC,CAAC2F,KAAK,EAAEzF,CAAC,KAAU;AACjC,MAAA,MAAM0F,WAAW,GAAGlJ,OAAO,CAACwD,CAAC,GAAG,CAAC,CAAC,CAAA;AAClC,MAAA,MAAMD,KAAK,GAAGgB,eAAe,CAAC0E,KAAK,CAACd,OAAO,CAAE,CAAA;MAE7C,MAAMgB,UAAU,GAAG,CAAC,MAAM;AACxB;AACA,QAAA,MAAMC,gBAAgB,GAAG;AACvB3H,UAAAA,MAAM,EAAEyH,WAAW,EAAEzH,MAAM,IAAIuE,cAAc;AAC7CuC,UAAAA,WAAW,EAAEW,WAAW,EAAEX,WAAW,IAAIvC,cAAAA;SAC1C,CAAA;QAED,IAAI;UACF,MAAMqD,SAAS,GACb,OAAO9F,KAAK,CAAC/C,OAAO,CAAC8I,cAAc,KAAK,QAAQ,GAC5C/F,KAAK,CAAC/C,OAAO,CAAC8I,cAAc,CAAC/H,KAAK,GAClCgC,KAAK,CAAC/C,OAAO,CAAC8I,cAAc,CAAA;UAElC,IAAIf,WAAW,GAAGc,SAAS,GAAGD,gBAAgB,CAAC3H,MAAM,CAAC,IAAI,EAAE,CAAA;AAE5D,UAAA,IAAIA,MAAM,GAAG;YACX,GAAG2H,gBAAgB,CAAC3H,MAAM;YAC1B,GAAG8G,WAAAA;WACJ,CAAA;UAEDA,WAAW,GAAGxG,sBAAgB,CAACkH,KAAK,CAACV,WAAW,EAAEA,WAAW,CAAC,CAAA;UAC9D9G,MAAM,GAAGM,sBAAgB,CAACkH,KAAK,CAACxH,MAAM,EAAEA,MAAM,CAAC,CAAA;UAE/C,OAAO;YACL8G,WAAW;YACX9G,MAAM;AACN8H,YAAAA,eAAe,EAAEN,KAAK,CAACV,WAAW,KAAKA,WAAAA;WACxC,CAAA;SACF,CAAC,OAAOpB,GAAQ,EAAE;UACjB8B,KAAK,CAACL,WAAW,GAAG,IAAIY,gBAAgB,CAACrC,GAAG,CAACE,OAAO,EAAE;AACpDC,YAAAA,KAAK,EAAEH,GAAAA;AACT,WAAC,CAAC,CAAA;UAEF,IAAIlB,IAAI,EAAEsB,YAAY,EAAE;YACtB,MAAM0B,KAAK,CAACL,WAAW,CAAA;AACzB,WAAA;AAEA,UAAA,OAAOQ,gBAAgB,CAAA;AACzB,SAAA;AACF,OAAC,GAAG,CAAA;AAEJ3E,MAAAA,MAAM,CAACyC,MAAM,CAAC+B,KAAK,EAAEE,UAAU,CAAC,CAAA;AAClC,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOnJ,OAAO,CAAA;AAChB,GACF,CAAC,CAAA;AAED,EAAA,MAAMyJ,WAAW,GAAGpI,uBAAiB,CACLuC,EAAU,IAAK;IAC3CgE,aAAa,CAACjG,KAAK,EAAEiC,EAAE,CAAC,EAAEkF,eAAe,EAAEY,KAAK,EAAE,CAAA;AACpD,GACF,CAAC,CAAA;AAED,EAAA,MAAMC,aAAa,GAAGtI,uBAAiB,CACPM,KAA8B,IAAK;AAC/DA,IAAAA,KAAK,CAAC3B,OAAO,CAACsD,OAAO,CAAE2F,KAAK,IAAK;AAC/BQ,MAAAA,WAAW,CAACR,KAAK,CAACrF,EAAE,CAAC,CAAA;AACvB,KAAC,CAAC,CAAA;AACJ,GACF,CAAC,CAAA;EAED,MAAMgG,aAAa,GAAGvI,uBAAiB,CACrC,CACE4E,IAAsB,GAAG,EAAE,KACR;IACnB,MAAM4D,KAAK,GAAGA,CACZC,IAEC,GAAG,EAAE,EACN9J,OAAyB,KACN;AACnB,MAAA,MAAM6C,IAAI,GAAGkH,iBAAiB,CAAC1H,OAAO,CAAA;MACtC,MAAM2H,YAAY,GAAGF,IAAI,CAACjH,IAAI,IAAIA,IAAI,CAACrB,QAAQ,CAAA;AAE/C,MAAA,IAAIA,QAAQ,GAAGoB,mBAAmB,CAACoH,YAAY,EAAG,CAAEF,EAAAA,IAAI,CAACvD,EAAE,IAAI,EAAG,EAAC,CAAC,CAAA;MAEpE,MAAM0D,WAAW,GAAGlE,WAAW,CAACiE,YAAY,EAAEnH,IAAI,CAACpB,MAAM,CAAC,CAAA;MAC1D,MAAMyI,cAAc,GAAGlK,OAAO,EAAEmK,MAAM,CAAEvF,CAAC,IACvCqF,WAAW,EAAE7D,IAAI,CAAEgE,CAAC,IAAKA,CAAC,CAACjC,OAAO,KAAKvD,CAAC,CAACuD,OAAO,CAClD,CAAC,CAAA;AAED,MAAA,MAAMkC,UAAU,GAAG;AAAE,QAAA,GAAGC,UAAI,CAACL,WAAW,CAAC,EAAE7B,MAAAA;OAAQ,CAAA;MAEnD,IAAImC,UAAU,GACZ,CAACT,IAAI,CAAC1B,MAAM,IAAI,IAAI,MAAM,IAAI,GAC1BiC,UAAU,GACVG,sBAAgB,CAACV,IAAI,CAAC1B,MAAM,EAAGiC,UAAU,CAAC,CAAA;AAEhD,MAAA,IAAIE,UAAU,EAAE;QACdvK,OAAO,EACH2E,GAAG,CAAEC,CAAC,IAAKL,eAAe,CAACK,CAAC,CAACuD,OAAO,CAAC,CAAE3H,OAAO,CAACiK,eAAe,CAAC,CAChEN,MAAM,CAACO,OAAO,CAAC,CACfpH,OAAO,CAAEqH,EAAE,IAAK;AACfJ,UAAAA,UAAU,GAAG;AAAE,YAAA,GAAGA,UAAW;YAAE,GAAGI,EAAE,CAAEJ,UAAW,CAAA;WAAG,CAAA;AACtD,SAAC,CAAC,CAAA;AACN,OAAA;MAEA/I,QAAQ,GAAGiG,oBAAe,CAACjG,QAAQ,EAAE+I,UAAU,IAAI,EAAE,CAAC,CAAA;AAEtD,MAAA,MAAMK,gBAAgB,GACpBV,cAAc,EACVvF,GAAG,CACFsE,KAAK,IACJ1E,eAAe,CAAC0E,KAAK,CAACd,OAAO,CAAC,CAAE3H,OAAO,CAACoK,gBAAgB,IAAI,EAChE,CAAC,CACAC,IAAI,EAAE,CACNV,MAAM,CAACO,OAAO,CAAC,IAAI,EAAE,CAAA;AAE1B,MAAA,MAAMI,iBAAiB,GACrBZ,cAAc,EACVvF,GAAG,CACFsE,KAAK,IACJ1E,eAAe,CAAC0E,KAAK,CAACd,OAAO,CAAC,CAAE3H,OAAO,CAACsK,iBAAiB,IAAI,EACjE,CAAC,CACAD,IAAI,EAAE,CACNV,MAAM,CAACO,OAAO,CAAC,IAAI,EAAE,CAAA;;AAE1B;MACA,MAAMK,iBAAiB,GAAGH,gBAAgB,EAAEvG,MAAM,GAC9CuG,gBAAgB,EAAEI,MAAM,CACtB,CAACC,IAAI,EAAEC,IAAI,KAAKA,IAAI,CAACD,IAAI,CAAQ,EACjCpI,IAAI,CAACpB,MACP,CAAC,GACDoB,IAAI,CAACpB,MAAM,CAAA;;AAEf;MACA,MAAM0J,UAAU,GACdrB,IAAI,CAACrI,MAAM,KAAK,IAAI,GAChBsJ,iBAAiB;AAAC,QAClBjB,IAAI,CAACrI,MAAM,GACX+I,sBAAgB,CAACV,IAAI,CAACrI,MAAM,EAAEsJ,iBAAiB,CAAC,IAAI,EAAE;AAAC,QACvDH,gBAAgB,EAAEvG,MAAM,GACxB0G,iBAAiB;AAAC,QAClB,EAAE,CAAA;;AAER;MACA,MAAMK,kBAAkB,GAAGN,iBAAiB,EAAEzG,MAAM,GAChDyG,iBAAiB,CAACE,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,KAAKA,IAAI,CAACD,IAAI,CAAC,EAAEE,UAAU,CAAC,GAChEA,UAAU,CAAA;MAEd,MAAM1J,MAAM,GAAGM,sBAAgB,CAACc,IAAI,CAACpB,MAAM,EAAE2J,kBAAkB,CAAC,CAAA;AAEhE,MAAA,MAAMtJ,SAAS,GAAGtB,OAAO,CAAC6K,eAAe,CAAC5J,MAAM,CAAC,CAAA;AAEjD,MAAA,MAAMC,IAAI,GACRoI,IAAI,CAACpI,IAAI,KAAK,IAAI,GACdmB,IAAI,CAACnB,IAAI,GACToI,IAAI,CAACpI,IAAI,GACT8I,sBAAgB,CAACV,IAAI,CAACpI,IAAI,EAAGmB,IAAI,CAACnB,IAAI,CAAC,GACvCmB,IAAI,CAACnB,IAAI,CAAA;MAEf,MAAM4J,OAAO,GAAG5J,IAAI,GAAI,IAAGA,IAAK,CAAA,CAAC,GAAG,EAAE,CAAA;AAEtC,MAAA,IAAI6J,SAAS,GACXzB,IAAI,CAACnI,KAAK,KAAK,IAAI,GACfkB,IAAI,CAAClB,KAAK,GACVmI,IAAI,CAACnI,KAAK,GACV6I,sBAAgB,CAACV,IAAI,CAACnI,KAAK,EAAEkB,IAAI,CAAClB,KAAK,CAAC,GACxCkB,IAAI,CAAClB,KAAK,CAAA;MAEhB4J,SAAS,GAAGxJ,sBAAgB,CAACc,IAAI,CAAClB,KAAK,EAAE4J,SAAS,CAAC,CAAA;MAEnD,OAAO;QACL/J,QAAQ;QACRC,MAAM;QACNK,SAAS;AACTH,QAAAA,KAAK,EAAE4J,SAAgB;QACvB7J,IAAI;AACJQ,QAAAA,IAAI,EAAExB,SAAO,CAAC8K,UAAU,CAAE,CAAA,EAAEhK,QAAS,CAAA,EAAEM,SAAU,CAAA,EAAEwJ,OAAQ,CAAA,CAAC,CAAC;QAC7DG,cAAc,EAAE3B,IAAI,CAAC2B,cAAAA;OACtB,CAAA;KACF,CAAA;IAED,MAAMC,gBAAgB,GAAGA,CACvB5B,IAAsB,GAAG,EAAE,EAC3B6B,UAA6B,KAC1B;AACH,MAAA,IAAIT,IAAI,GAAGrB,KAAK,CAACC,IAAI,CAAC,CAAA;MACtB,IAAI8B,UAAU,GAAGD,UAAU,GAAG9B,KAAK,CAAC8B,UAAU,CAAC,GAAGjD,SAAS,CAAA;MAE3D,IAAI,CAACkD,UAAU,EAAE;QACf,IAAIxD,MAAM,GAAG,EAAE,CAAA;QAEf,IAAIyD,SAAS,GAAGrL,OAAO,CAACsL,UAAU,EAAE1F,IAAI,CAAExB,CAAC,IAAK;UAC9C,MAAMqE,KAAK,GAAG3C,kBAAa,CAAC5D,QAAQ,EAAEwI,IAAI,CAAC1J,QAAQ,EAAE;YACnD+E,EAAE,EAAE3B,CAAC,CAAC/B,IAAI;AACV2D,YAAAA,aAAa,EAAE,KAAK;AACpBC,YAAAA,KAAK,EAAE,KAAA;AACT,WAAC,CAAC,CAAA;AAEF,UAAA,IAAIwC,KAAK,EAAE;AACTb,YAAAA,MAAM,GAAGa,KAAK,CAAA;AACd,YAAA,OAAO,IAAI,CAAA;AACb,WAAA;AAEA,UAAA,OAAO,KAAK,CAAA;AACd,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI4C,SAAS,EAAE;AACbA,UAAAA,SAAS,GAAG;AACV,YAAA,GAAGA,SAAS;AACZhJ,YAAAA,IAAI,EAAE4E,oBAAe,CAACoE,SAAS,CAAChJ,IAAI,EAAEuF,MAAM,CAAA;WAC7C,CAAA;AACDuD,UAAAA,UAAU,GAAGE,SAAS,CAAA;AACtBD,UAAAA,UAAU,GAAG/B,KAAK,CAAC8B,UAAU,CAAC,CAAA;AAChC,SAAA;AACF,OAAA;MAEA,MAAMI,WAAW,GAAGhG,WAAW,CAACmF,IAAI,CAAC1J,QAAQ,EAAE0J,IAAI,CAACzJ,MAAM,CAAC,CAAA;AAC3D,MAAA,MAAMuK,aAAa,GAAGJ,UAAU,GAC5B7F,WAAW,CAAC6F,UAAU,CAACpK,QAAQ,EAAEoK,UAAU,CAACnK,MAAM,CAAC,GACnDiH,SAAS,CAAA;MACb,MAAMuD,WAAW,GAAGL,UAAU,GAC1B/B,KAAK,CAAC8B,UAAU,EAAEK,aAAa,CAAC,GAChCtD,SAAS,CAAA;AAEb,MAAA,MAAMwD,KAAK,GAAGrC,KAAK,CAACC,IAAI,EAAEiC,WAAW,CAAC,CAAA;AAEtC,MAAA,IAAIE,WAAW,EAAE;QACfC,KAAK,CAAC1J,cAAc,GAAGyJ,WAAW,CAAA;AACpC,OAAA;AAEA,MAAA,OAAOC,KAAK,CAAA;KACb,CAAA;IAED,IAAIjG,IAAI,CAACkG,IAAI,EAAE;MACb,OAAOT,gBAAgB,CAACzF,IAAI,EAAE;AAC5B,QAAA,GAAGmG,UAAI,CAACnG,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;AACvB,QAAA,GAAGA,IAAI,CAACkG,IAAAA;AACV,OAAC,CAAC,CAAA;AACJ,KAAA;IAEA,OAAOT,gBAAgB,CAACzF,IAAI,CAAC,CAAA;AAC/B,GACF,CAAC,CAAA;AAED,EAAA,MAAMoG,cAAc,GAAGhL,uBAAiB,CACtC,MAAO6J,IAA4C,IAAK;IACtD,IAAI/J,kBAAkB,CAACkB,OAAO,EAAEiK,YAAY,CAACnL,kBAAkB,CAACkB,OAAO,CAAC,CAAA;IAExE,MAAMkK,SAAS,GAAGxC,iBAAiB,CAAC1H,OAAO,CAACH,IAAI,KAAKgJ,IAAI,CAAChJ,IAAI,CAAA;;AAE9D;AACA;AACA,IAAA,IAAI,CAACqK,SAAS,IAAI,CAACrB,IAAI,CAACsB,OAAO,EAAE;MAC/B,IAAI;QAAEhK,cAAc;QAAE,GAAGiK,WAAAA;AAAY,OAAC,GAAGvB,IAAI,CAAA;AAE7C,MAAA,IAAI1I,cAAc,EAAE;AAClBiK,QAAAA,WAAW,GAAG;AACZ,UAAA,GAAGjK,cAAc;AACjBb,UAAAA,KAAK,EAAE;YACL,GAAGa,cAAc,CAACb,KAAK;AACvBS,YAAAA,SAAS,EAAEsG,SAAS;AACpBvG,YAAAA,cAAc,EAAE;AACd,cAAA,GAAGsK,WAAW;cACdhL,MAAM,EAAEgL,WAAW,CAAC3K,SAAS;AAC7BH,cAAAA,KAAK,EAAE;gBACL,GAAG8K,WAAW,CAAC9K,KAAK;AACpBS,gBAAAA,SAAS,EAAEsG,SAAU;AACrBvG,gBAAAA,cAAc,EAAEuG,SAAU;AAC1BnG,gBAAAA,GAAG,EAAEmG,SAAAA;AACP,eAAA;AACF,aAAA;AACF,WAAA;SACD,CAAA;QAED,IAAI+D,WAAW,CAAChB,cAAc,IAAIjL,OAAO,CAACiL,cAAc,IAAI,KAAK,EAAE;AACjEgB,UAAAA,WAAW,CAAC9K,KAAK,CAACS,SAAS,GAAGvB,kBAAkB,CAACwB,OAAO,CAAA;AAC1D,SAAA;AACF,OAAA;AAEA3B,MAAAA,SAAO,CAACwK,IAAI,CAACsB,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,CACxCC,WAAW,CAACvK,IAAI,EAChBuK,WAAW,CAAC9K,KACd,CAAC,CAAA;AACH,KAAA;AAEAT,IAAAA,kBAAkB,CAACmB,OAAO,GAAG6I,IAAI,CAACwB,WAAW,IAAI,IAAI,CAAA;IAErD,OAAO9G,oBAAoB,CAACvD,OAAO,CAAA;AACrC,GACF,CAAC,CAAA;AAED,EAAA,MAAMsK,sBAAsB,GAAGtL,uBAAiB,CAC9C,CAAC;IACCmL,OAAO;IACPE,WAAW;IACX,GAAGnM,IAAAA;GACsC,GAAG,EAAE,KAAK;AACnD,IAAA,MAAMX,QAAQ,GAAGgK,aAAa,CAACrJ,IAAI,CAAC,CAAA;AACpC,IAAA,OAAO8L,cAAc,CAAC;AACpB,MAAA,GAAGzM,QAAQ;MACX4M,OAAO;AACPE,MAAAA,WAAAA;AACF,KAAC,CAAC,CAAA;AACJ,GACF,CAAC,CAAA;AAED,EAAA,MAAME,QAAQ,GAAGvL,uBAAiB,CAChC,CAAC;IAAEwB,IAAI;AAAE0D,IAAAA,EAAE,GAAG,EAAE;IAAE,GAAGhG,IAAAA;AAAK,GAAC,KAAK;AAC9B;AACA;;AAEA;AACA;AACA,IAAA,MAAMsM,QAAQ,GAAG/I,MAAM,CAACyC,EAAE,CAAC,CAAA;AAC3B,IAAA,MAAMuG,UAAU,GAAG,OAAOjK,IAAI,KAAK,WAAW,GAAGA,IAAI,GAAGiB,MAAM,CAACjB,IAAI,CAAC,CAAA;AACpE,IAAA,IAAIkK,UAAU,CAAA;IAEd,IAAI;AACF,MAAA,IAAIC,GAAG,CAAE,CAAEH,EAAAA,QAAS,EAAC,CAAC,CAAA;AACtBE,MAAAA,UAAU,GAAG,IAAI,CAAA;AACnB,KAAC,CAAC,OAAO3C,CAAC,EAAE,EAAC;AAEbvG,IAAAA,6BAAS,CACP,CAACkJ,UAAU,EACX,4DACF,CAAC,CAAA;AAED,IAAA,OAAOJ,sBAAsB,CAAC;AAC5B,MAAA,GAAGpM,IAAI;AACPsC,MAAAA,IAAI,EAAEiK,UAAU;AAChBvG,MAAAA,EAAE,EAAEsG,QAAAA;AACN,KAAC,CAAC,CAAA;AACJ,GACF,CAAC,CAAA;AAED,EAAA,MAAMI,WAAW,GAAG5L,uBAAiB,CACnC,OAAO;IACLrB,OAAO;AACPiI,IAAAA,OAAAA;AAIF,GAAC,KAAK;AACJ,IAAA,IAAIiF,kBAAsC,CAAA;;AAE1C;IACA,IAAI;AACF,MAAA,KAAK,IAAI,CAAC7H,KAAK,EAAE4D,KAAK,CAAC,IAAIjJ,OAAO,CAACmN,OAAO,EAAE,EAAE;AAC5C,QAAA,MAAMjE,WAAW,GAAGlJ,OAAO,CAACqF,KAAK,GAAG,CAAC,CAAC,CAAA;AACtC,QAAA,MAAM9B,KAAK,GAAGgB,eAAe,CAAC0E,KAAK,CAACd,OAAO,CAAE,CAAA;AAE7C,QAAA,MAAMiF,WAAW,GAAGA,CAACjG,GAAQ,EAAEkG,IAAY,KAAK;UAC9ClG,GAAG,CAACmG,UAAU,GAAGD,IAAI,CAAA;UACrBH,kBAAkB,GAAGA,kBAAkB,IAAI7H,KAAK,CAAA;AAEhD,UAAA,IAAIkI,oBAAU,CAACpG,GAAG,CAAC,EAAE;AACnB,YAAA,MAAMA,GAAG,CAAA;AACX,WAAA;UAEA,IAAI;AACF5D,YAAAA,KAAK,CAAC/C,OAAO,CAACgN,OAAO,GAAGrG,GAAG,CAAC,CAAA;WAC7B,CAAC,OAAOsG,eAAe,EAAE;AACxBtG,YAAAA,GAAG,GAAGsG,eAAe,CAAA;AAErB,YAAA,IAAIF,oBAAU,CAACE,eAAe,CAAC,EAAE;AAC/B,cAAA,MAAMA,eAAe,CAAA;AACvB,aAAA;AACF,WAAA;AAEAzN,UAAAA,OAAO,CAACqF,KAAK,CAAC,GAAG4D,KAAK,GAAG;AACvB,YAAA,GAAGA,KAAK;AACRR,YAAAA,KAAK,EAAEtB,GAAG;AACVtH,YAAAA,MAAM,EAAE,OAAO;AACfyI,YAAAA,SAAS,EAAEnI,IAAI,CAACC,GAAG,EAAC;WACrB,CAAA;SACF,CAAA;QAED,IAAI;UACF,IAAI6I,KAAK,CAACN,WAAW,EAAE;AACrByE,YAAAA,WAAW,CAACnE,KAAK,CAACN,WAAW,EAAE,cAAc,CAAC,CAAA;AAChD,WAAA;UAEA,IAAIM,KAAK,CAACL,WAAW,EAAE;AACrBwE,YAAAA,WAAW,CAACnE,KAAK,CAACL,WAAW,EAAE,iBAAiB,CAAC,CAAA;AACnD,WAAA;UAEA,MAAM8E,UAAU,GAAGxE,WAAW,EAAEzI,IAAI,IAAID,OAAO,CAACC,IAAI,IAAI,EAAE,CAAA;UAE1D,MAAMkN,cAAc,GAClB,CAAC,MAAMpK,KAAK,CAAC/C,OAAO,CAACoN,UAAU,GAAG;YAChCnM,MAAM,EAAEwH,KAAK,CAACxH,MAAM;YACpBqH,eAAe,EAAEG,KAAK,CAACH,eAAe;YACtCV,MAAM,EAAEa,KAAK,CAACb,MAAM;YACpBH,OAAO,EAAE,CAAC,CAACA,OAAO;AAClBxH,YAAAA,IAAI,EAAEiN,UAAU;AAChB9N,YAAAA,QAAQ,EAAE+B,KAAK,CAAC/B,QAAQ;WACzB,CAAC,KAAM,EAAU,CAAA;AAEpB,UAAA,MAAMa,IAAI,GAAG;AACX,YAAA,GAAGiN,UAAU;YACb,GAAGC,cAAAA;WACJ,CAAA;AAED3N,UAAAA,OAAO,CAACqF,KAAK,CAAC,GAAG4D,KAAK,GAAG;AACvB,YAAA,GAAGA,KAAK;AACRxI,YAAAA,IAAI,EAAEsB,sBAAgB,CAACkH,KAAK,CAACxI,IAAI,EAAEA,IAAI,CAAA;WACxC,CAAA;SACF,CAAC,OAAO0G,GAAG,EAAE;AACZiG,UAAAA,WAAW,CAACjG,GAAG,EAAE,aAAa,CAAC,CAAA;AAC/B,UAAA,MAAA;AACF,SAAA;AACF,OAAA;KACD,CAAC,OAAOA,GAAG,EAAE;AACZ,MAAA,IAAIoG,oBAAU,CAACpG,GAAG,CAAC,EAAE;AACnB,QAAA,IAAI,CAACc,OAAO,EAAE2E,QAAQ,CAACzF,GAAU,CAAC,CAAA;AAClC,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,MAAMA,GAAG,CAAA;AACX,KAAA;IAEA,MAAM0G,oBAAoB,GAAG7N,OAAO,CAAC8N,KAAK,CAAC,CAAC,EAAEZ,kBAAkB,CAAC,CAAA;IACjE,MAAMa,aAA6B,GAAG,EAAE,CAAA;AAExCF,IAAAA,oBAAoB,CAACvK,OAAO,CAAC,CAAC2F,KAAK,EAAE5D,KAAK,KAAK;AAC7C0I,MAAAA,aAAa,CAACC,IAAI,CAChB,CAAC,YAAY;AACX,QAAA,MAAMC,kBAAkB,GAAGF,aAAa,CAAC1I,KAAK,GAAG,CAAC,CAAC,CAAA;AACnD,QAAA,MAAM9B,KAAK,GAAGgB,eAAe,CAAC0E,KAAK,CAACd,OAAO,CAAE,CAAA;QAE7C,IAAIc,KAAK,CAACnJ,UAAU,EAAE;UACpB,OAAO8H,aAAa,CAACjG,KAAK,EAAEsH,KAAK,CAACrF,EAAE,CAAC,EAAEiF,WAAW,CAAA;AACpD,SAAA;AAEA,QAAA,MAAMG,SAAS,GAAG7I,IAAI,CAACC,GAAG,EAAE,CAAA;QAC5B,MAAM8N,WAAW,GAAGA,MAAM;UACxB,MAAMC,MAAM,GAAGvG,aAAa,CAACjG,KAAK,EAAEsH,KAAK,CAACrF,EAAE,CAAC,CAAA;AAC7C,UAAA,OAAOuK,MAAM,IAAIA,MAAM,CAACnF,SAAS,KAAKA,SAAS,GAC3CmF,MAAM,CAACtF,WAAW,GAClBH,SAAS,CAAA;SACd,CAAA;QAED,MAAM0F,gBAAgB,GAAIjH,GAAQ,IAAK;AACrC,UAAA,IAAIoG,oBAAU,CAACpG,GAAG,CAAC,EAAE;YACnB,IAAI,CAACc,OAAO,EAAE;cACZ2E,QAAQ,CAACzF,GAAU,CAAC,CAAA;AACtB,aAAA;AACA,YAAA,OAAO,IAAI,CAAA;AACb,WAAA;AACA,UAAA,OAAO,KAAK,CAAA;SACb,CAAA;AAED,QAAA,MAAMW,IAAI,GAAG,YAAY;AACvB,UAAA,IAAIuG,aAAa,CAAA;UAEjB,IAAI;AACF,YAAA,MAAMC,iBAAiB,GAAGzI,OAAO,CAAC0I,GAAG,CACnCxG,qBAAc,CAACpD,GAAG,CAAC,MAAOQ,IAAI,IAAK;AACjC,cAAA,MAAMqJ,SAAS,GAAGjL,KAAK,CAAC/C,OAAO,CAAC2E,IAAI,CAAC,CAAA;cAErC,IAAKqJ,SAAS,EAAUvG,OAAO,EAAE;AAC/B,gBAAA,MAAOuG,SAAS,CAASvG,OAAO,EAAE,CAAA;AACpC,eAAA;AACF,aAAC,CACH,CAAC,CAAA;AAED,YAAA,MAAMwG,aAAa,GAAGlL,KAAK,CAAC/C,OAAO,CAACsH,IAAI,GAAG;cACzCM,MAAM,EAAEa,KAAK,CAACb,MAAM;cACpB3G,MAAM,EAAEwH,KAAK,CAACxH,MAAM;cACpBwG,OAAO,EAAE,CAAC,CAACA,OAAO;cAClBgG,kBAAkB;cAClBnF,eAAe,EAAEG,KAAK,CAACH,eAAe;cACtCrI,IAAI,EAAEwI,KAAK,CAACxI,IAAAA;AACd,aAAC,CAAC,CAAA;YAEF,MAAMoF,OAAO,CAAC0I,GAAG,CAAC,CAACD,iBAAiB,EAAEG,aAAa,CAAC,CAAC,CAAA;YACrD,IAAKJ,aAAa,GAAGH,WAAW,EAAE,EAAG,OAAO,MAAMG,aAAa,CAAA;AAE/DrO,YAAAA,OAAO,CAACqF,KAAK,CAAC,GAAG4D,KAAK,GAAG;AACvB,cAAA,GAAGA,KAAK;AACRR,cAAAA,KAAK,EAAEC,SAAS;AAChB7I,cAAAA,MAAM,EAAE,SAAS;AACjBC,cAAAA,UAAU,EAAE,KAAK;AACjBwI,cAAAA,SAAS,EAAEnI,IAAI,CAACC,GAAG,EAAC;aACrB,CAAA;WACF,CAAC,OAAOqI,KAAK,EAAE;YACd,IAAK4F,aAAa,GAAGH,WAAW,EAAE,EAAG,OAAO,MAAMG,aAAa,CAAA;AAC/D,YAAA,IAAID,gBAAgB,CAAC3F,KAAK,CAAC,EAAE,OAAA;YAE7B,IAAI;AACFlF,cAAAA,KAAK,CAAC/C,OAAO,CAACgN,OAAO,GAAG/E,KAAK,CAAC,CAAA;aAC/B,CAAC,OAAOiG,YAAY,EAAE;AACrBjG,cAAAA,KAAK,GAAGiG,YAAY,CAAA;AACpB,cAAA,IAAIN,gBAAgB,CAACM,YAAY,CAAC,EAAE,OAAA;AACtC,aAAA;AAEA1O,YAAAA,OAAO,CAACqF,KAAK,CAAC,GAAG4D,KAAK,GAAG;AACvB,cAAA,GAAGA,KAAK;cACRR,KAAK;AACL5I,cAAAA,MAAM,EAAE,OAAO;AACfC,cAAAA,UAAU,EAAE,KAAK;AACjBwI,cAAAA,SAAS,EAAEnI,IAAI,CAACC,GAAG,EAAC;aACrB,CAAA;AACH,WAAA;SACD,CAAA;AAED,QAAA,IAAIyI,WAAsC,CAAA;AAE1C7I,QAAAA,OAAO,CAACqF,KAAK,CAAC,GAAG4D,KAAK,GAAG;AACvB,UAAA,GAAGA,KAAK;AACRnJ,UAAAA,UAAU,EAAE,IAAI;UAChBkJ,SAAS;AACTR,UAAAA,OAAO,EAAE,KAAA;SACV,CAAA;QAEDK,WAAW,GAAGf,IAAI,EAAE,CAAA;AAEpB9H,QAAAA,OAAO,CAACqF,KAAK,CAAC,GAAG4D,KAAK,GAAG;AACvB,UAAA,GAAGA,KAAK;AACRJ,UAAAA,WAAAA;SACD,CAAA;AAED,QAAA,MAAMA,WAAW,CAAA;OAClB,GACH,CAAC,CAAA;AACH,KAAC,CAAC,CAAA;AAEF,IAAA,MAAMhD,OAAO,CAAC0I,GAAG,CAACR,aAAa,CAAC,CAAA;AAClC,GACF,CAAC,CAAA;AAED,EAAA,MAAMjG,IAAI,GAAGzG,uBAAiB,CAAS,MAAO4E,IAAI,IAAK;IACrD,MAAM0I,OAAO,GAAG,IAAI9I,OAAO,CAAO,OAAOC,OAAO,EAAE8I,MAAM,KAAK;AAC3D,MAAA,MAAMC,YAAY,GAAGlN,KAAK,CAAC5B,gBAAgB,CAAA;AAC3C,MAAA,MAAM+O,aAAa,GAAG,CAAC,EACrB7I,IAAI,EAAEiF,IAAI,IAAI2D,YAAY,CAAE3M,IAAI,KAAK+D,IAAI,CAACiF,IAAI,CAAChJ,IAAI,CACpD,CAAA;AAED,MAAA,IAAImM,aAA+C,CAAA;MAEnD,MAAMH,WAAW,GAAGA,MAAwC;QAC1D,OAAOtI,oBAAoB,CAACvD,OAAO,KAAKsM,OAAO,GAC3C/I,oBAAoB,CAACvD,OAAO,GAC5BqG,SAAS,CAAA;OACd,CAAA;;AAED;MACAiB,aAAa,CAAChI,KAAK,CAAC,CAAA;MAEpBrB,QAAM,CAACyO,IAAI,CAAC;AACV5J,QAAAA,IAAI,EAAE,cAAc;AACpBtC,QAAAA,IAAI,EAAEgM,YAAY;AAClBtI,QAAAA,EAAE,EAAEN,IAAI,EAAEiF,IAAI,IAAIvJ,KAAK,CAAC/B,QAAQ;AAChCoP,QAAAA,WAAW,EAAEF,aAAAA;AACf,OAAC,CAAC,CAAA;MAEF,IAAI7I,IAAI,EAAEiF,IAAI,EAAE;AACd;QACAzI,QAAQ,CAAEwM,CAAC,KAAM;AACf,UAAA,GAAGA,CAAC;UACJrP,QAAQ,EAAEqG,IAAI,CAACiF,IAAAA;AACjB,SAAC,CAAC,CAAC,CAAA;AACL,OAAA;;AAEA;AACA,MAAA,MAAMlL,OAA+B,GAAG+F,WAAW,CACjDpE,KAAK,CAAC/B,QAAQ,CAAC4B,QAAQ,EACvBG,KAAK,CAAC/B,QAAQ,CAAC6B,MAAM,EACrB;QACE8F,YAAY,EAAEtB,IAAI,EAAEsB,YAAY;AAChC2H,QAAAA,KAAK,EAAE,IAAA;AACT,OACF,CAAC,CAAA;MAEDzM,QAAQ,CAAEwM,CAAC,KAAM;AACf,QAAA,GAAGA,CAAC;AACJpP,QAAAA,MAAM,EAAE,SAAS;AACjBG,QAAAA,OAAAA;AACF,OAAC,CAAC,CAAC,CAAA;MAEH,IAAI;AACF;QACA,IAAI;AACF,UAAA,MAAMiN,WAAW,CAAC;AAChBjN,YAAAA,OAAAA;AACF,WAAC,CAAC,CAAA;SACH,CAAC,OAAOmH,GAAG,EAAE;AACZ;AACA;AAAA,SAAA;;AAGF;AACA,QAAA,IAAKkH,aAAa,GAAGH,WAAW,EAAE,EAAG;AACnC,UAAA,OAAOG,aAAa,CAAA;AACtB,SAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;QAEA5L,QAAQ,CAAEwM,CAAC,KAAM;AACf,UAAA,GAAGA,CAAC;AACJpP,UAAAA,MAAM,EAAE,MAAM;UACdE,gBAAgB,EAAEkP,CAAC,CAACrP,QAAAA;AACtB,SAAC,CAAC,CAAC,CAAA;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;QACAU,QAAM,CAACyO,IAAI,CAAC;AACV5J,UAAAA,IAAI,EAAE,QAAQ;AACdtC,UAAAA,IAAI,EAAEgM,YAAY;UAClBtI,EAAE,EAAE5E,KAAK,CAAC/B,QAAQ;AAClBoP,UAAAA,WAAW,EAAEF,aAAAA;AACf,SAAC,CAAC,CAAA;AAEFhJ,QAAAA,OAAO,EAAE,CAAA;OACV,CAAC,OAAOqB,GAAG,EAAE;AACZ;AACA,QAAA,IAAKkH,aAAa,GAAGH,WAAW,EAAE,EAAG;AACnC,UAAA,OAAOG,aAAa,CAAA;AACtB,SAAA;QAEAO,MAAM,CAACzH,GAAG,CAAC,CAAA;AACb,OAAA;AACF,KAAC,CAAC,CAAA;IAEFvB,oBAAoB,CAACvD,OAAO,GAAGsM,OAAO,CAAA;IAEtC,OAAO/I,oBAAoB,CAACvD,OAAO,CAAA;AACrC,GAAC,CAAC,CAAA;AAEF,EAAA,MAAM8M,QAAQ,GAAG1P,gBAAK,CAAC2P,WAAW,CAAC,YAAY;IAC7C,IAAI;MACF,OAAOtH,IAAI,EAAE,CAAA;KACd,CAAC,OAAOX,GAAG,EAAE;AACZ;AAAA,KAAA;GAEH,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMkI,YAAY,GAAGhO,uBAAiB,CACpC,OAAOiO,YAA8B,GAAG3N,KAAK,CAAC/B,QAAQ,KAAK;AACzD,IAAA,IAAIsL,IAAI,GAAGtB,aAAa,CAAC0F,YAAY,CAAC,CAAA;IAEtC,IAAItP,OAAO,GAAG+F,WAAW,CAACmF,IAAI,CAAC1J,QAAQ,EAAE0J,IAAI,CAACzJ,MAAM,EAAE;AACpD8F,MAAAA,YAAY,EAAE,IAAA;AAChB,KAAC,CAAC,CAAA;AAEF,IAAA,MAAM0F,WAAW,CAAC;MAChBjN,OAAO;AACPiI,MAAAA,OAAO,EAAE,IAAA;AACX,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,CAACqC,UAAI,CAACtK,OAAO,CAAC,EAAGA,OAAO,CAAC,CAAA;AAClC,GACF,CAAC,CAAA;EAED,MAAMuP,SAAS,GAAGlO,uBAAiB,CACjC,CAACM,KAAK,EAAEmI,IAAI,KAAK;AACf;AACA;;AAEA;AACA;;IAEA,MAAM;MACJvD,EAAE;AACF0B,MAAAA,OAAO,EAAEuH,WAAW;AACpBC,MAAAA,YAAY,EAAEC,gBAAgB;MAC9BC,aAAa;MACbC,QAAQ;MACRC,MAAM;MACNrD,OAAO;AACPE,MAAAA,WAAAA;AACF,KAAC,GAAG5C,IAAI,CAAA;IAER,IAAI;AACF,MAAA,IAAIkD,GAAG,CAAE,CAAEzG,EAAAA,EAAG,EAAC,CAAC,CAAA;MAChB,OAAO;AACLpB,QAAAA,IAAI,EAAE,UAAU;AAChBjD,QAAAA,IAAI,EAAEqE,EAAAA;OACP,CAAA;AACH,KAAC,CAAC,OAAO6D,CAAC,EAAE,EAAC;IAEb,MAAM0F,QAAQ,GAAGhG,IAAI,CAAA;AAErB,IAAA,MAAMoB,IAAI,GAAGtB,aAAa,CAACkG,QAAe,CAAC,CAAA;AAE3C,IAAA,MAAM7H,OAAO,GAAGuH,WAAW,IAAIhP,OAAO,CAACuP,cAAc,CAAA;IACrD,MAAMN,YAAY,GAAGC,gBAAgB,IAAIlP,OAAO,CAACwP,mBAAmB,IAAI,CAAC,CAAA;;AAEzE;IACA,MAAMC,gBAAgB,GAAGlG,iBAAiB,CAAC1H,OAAO,CAACb,QAAQ,CAACQ,KAAK,CAAC,GAAG,CAAC,CAAA;IACtE,MAAMkO,aAAa,GAAGhF,IAAI,CAAC1J,QAAQ,CAACQ,KAAK,CAAC,GAAG,CAAC,CAAA;AAC9C,IAAA,MAAMmO,gBAAgB,GAAGD,aAAa,CAACE,KAAK,CAC1C,CAACxL,CAAC,EAAEpB,CAAC,KAAKoB,CAAC,KAAKqL,gBAAgB,CAACzM,CAAC,CACpC,CAAC,CAAA;AACD;AACA,IAAA,MAAM6M,QAAQ,GAAGV,aAAa,EAAEW,KAAK,GACjCvG,iBAAiB,CAAC1H,OAAO,CAACb,QAAQ,KAAK0J,IAAI,CAAC1J,QAAQ,GACpD2O,gBAAgB,CAAA;AACpB,IAAA,MAAMI,QAAQ,GAAGZ,aAAa,EAAEa,WAAW,GACvCzG,iBAAiB,CAAC1H,OAAO,CAACX,IAAI,KAAKwJ,IAAI,CAACxJ,IAAI,GAC5C,IAAI,CAAA;IACR,MAAM+O,UAAU,GACdd,aAAa,EAAEe,aAAa,IAAI,IAAI,GAChCC,sBAAgB,CAAC5G,iBAAiB,CAAC1H,OAAO,CAACZ,MAAM,EAAEyJ,IAAI,CAACzJ,MAAM,CAAC,GAC/D,IAAI,CAAA;;AAEV;AACA,IAAA,MAAMmP,QAAQ,GAAGP,QAAQ,IAAIE,QAAQ,IAAIE,UAAU,CAAA;;AAEnD;IACA,MAAMI,WAAW,GAAIzG,CAAa,IAAK;MACrC,IACE,CAACwF,QAAQ,IACT,CAACkB,WAAW,CAAC1G,CAAC,CAAC,IACf,CAACA,CAAC,CAAC2G,gBAAgB,KAClB,CAAClB,MAAM,IAAIA,MAAM,KAAK,OAAO,CAAC,IAC/BzF,CAAC,CAAC4G,MAAM,KAAK,CAAC,EACd;QACA5G,CAAC,CAAC6G,cAAc,EAAE,CAAA;;AAElB;AACA5E,QAAAA,cAAc,CAAC;AAAE,UAAA,GAAGnB,IAAI;UAAEsB,OAAO;AAAEE,UAAAA,WAAAA;AAAY,SAAC,CAAC,CAAA;AACnD,OAAA;KACD,CAAA;;AAED;IACA,MAAMwE,WAAW,GAAI9G,CAAa,IAAK;AACrC,MAAA,IAAInC,OAAO,EAAE;AACXoH,QAAAA,YAAY,CAACS,QAAe,CAAC,CAACqB,KAAK,CAAEhK,GAAG,IAAK;AAC3CiK,UAAAA,OAAO,CAACC,IAAI,CAAClK,GAAG,CAAC,CAAA;AACjBiK,UAAAA,OAAO,CAACC,IAAI,CAAC9R,cAAc,CAAC,CAAA;AAC9B,SAAC,CAAC,CAAA;AACJ,OAAA;KACD,CAAA;IAED,MAAM+R,gBAAgB,GAAIlH,CAAa,IAAK;AAC1CiF,MAAAA,YAAY,CAACS,QAAe,CAAC,CAACqB,KAAK,CAAEhK,GAAG,IAAK;AAC3CiK,QAAAA,OAAO,CAACC,IAAI,CAAClK,GAAG,CAAC,CAAA;AACjBiK,QAAAA,OAAO,CAACC,IAAI,CAAC9R,cAAc,CAAC,CAAA;AAC9B,OAAC,CAAC,CAAA;KACH,CAAA;IAED,MAAMgS,WAAW,GAAInH,CAAa,IAAK;AACrC,MAAA,MAAMyF,MAAM,GAAIzF,CAAC,CAACyF,MAAM,IAAI,EAA+B,CAAA;AAE3D,MAAA,IAAI5H,OAAO,EAAE;QACX,IAAI4H,MAAM,CAAC2B,cAAc,EAAE;AACzB,UAAA,OAAA;AACF,SAAA;AAEA3B,QAAAA,MAAM,CAAC2B,cAAc,GAAGC,UAAU,CAAC,MAAM;UACvC5B,MAAM,CAAC2B,cAAc,GAAG,IAAI,CAAA;AAC5BnC,UAAAA,YAAY,CAACS,QAAe,CAAC,CAACqB,KAAK,CAAEhK,GAAG,IAAK;AAC3CiK,YAAAA,OAAO,CAACC,IAAI,CAAClK,GAAG,CAAC,CAAA;AACjBiK,YAAAA,OAAO,CAACC,IAAI,CAAC9R,cAAc,CAAC,CAAA;AAC9B,WAAC,CAAC,CAAA;SACH,EAAEkQ,YAAY,CAAC,CAAA;AAClB,OAAA;KACD,CAAA;IAED,MAAMiC,WAAW,GAAItH,CAAa,IAAK;AACrC,MAAA,MAAMyF,MAAM,GAAIzF,CAAC,CAACyF,MAAM,IAAI,EAA+B,CAAA;MAE3D,IAAIA,MAAM,CAAC2B,cAAc,EAAE;AACzBlF,QAAAA,YAAY,CAACuD,MAAM,CAAC2B,cAAc,CAAC,CAAA;QACnC3B,MAAM,CAAC2B,cAAc,GAAG,IAAI,CAAA;AAC9B,OAAA;KACD,CAAA;IAED,OAAO;AACLrM,MAAAA,IAAI,EAAE,UAAU;MAChB+F,IAAI;MACJgG,WAAW;MACXL,WAAW;MACXU,WAAW;MACXG,WAAW;MACXJ,gBAAgB;MAChBV,QAAQ;AACRhB,MAAAA,QAAAA;KACD,CAAA;AACH,GACF,CAAC,CAAA;EAED,MAAM7F,iBAAiB,GAAGtK,gBAAK,CAACqB,MAAM,CAACa,KAAK,CAAC/B,QAAQ,CAAC,CAAA;EAEtDH,gBAAK,CAACkS,eAAe,CAAC,MAAM;AAC1B,IAAA,MAAMC,KAAK,GAAGlR,SAAO,CAACmR,SAAS,CAAC,MAAM;MACpC9H,iBAAiB,CAAC1H,OAAO,GAAGjB,aAAa,CAAC2I,iBAAiB,CAAC1H,OAAO,CAAC,CAAA;MAEpE5C,gBAAK,CAACqS,eAAe,CAAC,MAAM;QAC1BrP,QAAQ,CAAEwM,CAAC,KAAM;AACf,UAAA,GAAGA,CAAC;UACJrP,QAAQ,EAAEmK,iBAAiB,CAAC1H,OAAAA;AAC9B,SAAC,CAAC,CAAC,CAAA;AACL,OAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;IAEF,MAAM0P,YAAY,GAAGnI,aAAa,CAAC;AACjCnI,MAAAA,MAAM,EAAE,IAAI;AACZ2G,MAAAA,MAAM,EAAE,IAAI;AACZ1G,MAAAA,IAAI,EAAE,IAAI;AACVC,MAAAA,KAAK,EAAE,IAAA;AACT,KAAC,CAAC,CAAA;IAEF,IAAIA,KAAK,CAAC/B,QAAQ,CAACsC,IAAI,KAAK6P,YAAY,CAAC7P,IAAI,EAAE;AAC7CmK,MAAAA,cAAc,CAAC;AAAE,QAAA,GAAG0F,YAAY;AAAEvF,QAAAA,OAAO,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AACpD,KAAA;AAEA,IAAA,OAAO,MAAM;AACXoF,MAAAA,KAAK,EAAE,CAAA;KACR,CAAA;AACH,GAAC,EAAE,CAAClR,SAAO,CAAC,CAAC,CAAA;AAEb,EAAA,MAAMsR,WAAW,GAAGvS,gBAAK,CAACqB,MAAM,CAAC,IAAI,CAAC,CAAA;EAEtC,IAAIkR,WAAW,CAAC3P,OAAO,EAAE;IACvB2P,WAAW,CAAC3P,OAAO,GAAG,KAAK,CAAA;AAC3B8M,IAAAA,QAAQ,EAAE,CAAA;AACZ,GAAA;EAEA1P,gBAAK,CAACkS,eAAe,CAAC,MAAM;AAC1B,IAAA,IAAIhQ,KAAK,CAAC5B,gBAAgB,KAAK4B,KAAK,CAAC/B,QAAQ,EAAE;AAC7CuP,MAAAA,QAAQ,EAAE,CAAA;AACZ,KAAA;AACF,GAAC,EAAE,CAACxN,KAAK,CAAC/B,QAAQ,CAAC,CAAC,CAAA;AAEpB,EAAmBH,gBAAK,CAAC0D,OAAO,CAC9B,MAAM,CAAC,GAAGxB,KAAK,CAAC3B,OAAO,EAAE,GAAG2B,KAAK,CAAC1B,cAAc,CAAC,CAAC+H,IAAI,CAAEpD,CAAC,IAAKA,CAAC,CAAC9E,UAAU,CAAC,EAC3E,CAAC6B,KAAK,CAAC3B,OAAO,EAAE2B,KAAK,CAAC1B,cAAc,CACtC,EAAC;EAED,MAAMgS,UAAU,GAAG5Q,uBAAiB,CAAC,CAACM,KAAK,EAAE/B,QAAQ,EAAEqG,IAAI,KAAK;AAC9DrG,IAAAA,QAAQ,GAAG;AACT,MAAA,GAAGA,QAAQ;AACX2G,MAAAA,EAAE,EAAE3G,QAAQ,CAAC2G,EAAE,GACX3D,mBAAmB,CAAEhD,QAAQ,CAACiD,IAAI,IAAI,EAAE,EAAajD,QAAQ,CAAC2G,EAAE,CAAC,GACjEmC,SAAAA;KACE,CAAA;AAER,IAAA,MAAMwC,IAAI,GAAGtB,aAAa,CAAChK,QAAe,CAAC,CAAA;IAC3C,IAAIqG,IAAI,EAAEiM,OAAO,IAAIvQ,KAAK,CAAC9B,MAAM,KAAK,SAAS,EAAE;AAC/C,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AAEA,IAAA,MAAMsS,YAAY,GAAGlM,IAAI,EAAEiM,OAAO,GAC9BnI,iBAAiB,CAAC1H,OAAO,GACzBV,KAAK,CAAC5B,gBAAgB,CAAA;IAE1B,IAAI,CAACoS,YAAY,EAAE;AACjB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IAEA,MAAMlJ,KAAK,GAAG3C,kBAAa,CAAC5D,QAAQ,EAAEyP,YAAY,CAAC3Q,QAAQ,EAAE;AAC3D,MAAA,GAAGyE,IAAI;MACPM,EAAE,EAAE2E,IAAI,CAAC1J,QAAAA;AACX,KAAC,CAAQ,CAAA;IAET,IAAI,CAACyH,KAAK,EAAE;AACV,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AAEA,IAAA,IAAIhD,IAAI,EAAEyK,aAAa,IAAI,IAAI,EAAE;AAC/B,MAAA,OAAOC,sBAAgB,CAACwB,YAAY,CAAC1Q,MAAM,EAAEyJ,IAAI,CAACzJ,MAAM,CAAC,GAAGwH,KAAK,GAAG,KAAK,CAAA;AAC3E,KAAA;AAEA,IAAA,OAAOA,KAAK,CAAA;AACd,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMmJ,kBAA6C,GAAG;IACpD9N,SAAS,EAAEhE,QAAM,CAACgE,SAAS;IAC3BsI,QAAQ;IACR2C,SAAS;IACT5N,KAAK;IACLsQ,UAAU;IACVhP,UAAU;IACVzC,OAAO;aACPE,SAAO;AACPoH,IAAAA,IAAAA;GACD,CAAA;AAED,EAAA,oBACErI,gBAAA,CAAA4S,aAAA,CAAC7S,aAAa,CAAC8S,QAAQ,EAAA;AAACtN,IAAAA,KAAK,EAAEoN,kBAAAA;AAAmB,GAAA,eAChD3S,gBAAA,CAAA4S,aAAA,CAACE,aAAO,EAAA,IAAE,CACY,CAAC,CAAA;AAE7B,CAAA;AAsBA,SAASzB,WAAWA,CAAC1G,CAAa,EAAE;AAClC,EAAA,OAAO,CAAC,EAAEA,CAAC,CAACoI,OAAO,IAAIpI,CAAC,CAACqI,MAAM,IAAIrI,CAAC,CAACsI,OAAO,IAAItI,CAAC,CAACuI,QAAQ,CAAC,CAAA;AAC7D,CAAA;AACO,MAAMnJ,gBAAgB,SAASoJ,KAAK,CAAC,EAAA;AACrC,MAAMxL,cAAc,SAASwL,KAAK,CAAC,EAAA;AAEnC,SAAShL,aAAaA,CAC3BjG,KAA8B,EAC9BiC,EAAU,EAC0B;EACpC,OAAO,CAAC,GAAGjC,KAAK,CAAC1B,cAAc,EAAE,GAAG0B,KAAK,CAAC3B,OAAO,CAAC,CAACoG,IAAI,CAAExB,CAAC,IAAKA,CAAC,CAAChB,EAAE,KAAKA,EAAE,CAAC,CAAA;AAC7E;;;;;;;;;"}
1
+ {"version":3,"file":"RouterProvider.js","sources":["../../src/RouterProvider.tsx"],"sourcesContent":["import * as React from 'react'\nimport { AnyPathParams, AnySearchSchema, Route } from './route'\nimport {\n RegisteredRouter,\n DehydratedRouteMatch,\n componentTypes,\n BuildNextOptions,\n RouterOptions,\n} from './router'\nimport { ParsedLocation } from './location'\nimport { AnyRouteMatch } from './RouteMatch'\nimport { RouteMatch } from './RouteMatch'\nimport { isRedirect } from './redirects'\nimport {\n functionalUpdate,\n replaceEqualDeep,\n useStableCallback,\n last,\n pick,\n partialDeepEqual,\n NoInfer,\n PickAsRequired,\n} from './utils'\nimport { RouterProps, Matches } from './react'\nimport {\n cleanPath,\n interpolatePath,\n joinPaths,\n matchPathname,\n parsePathname,\n resolvePath,\n trimPath,\n trimPathRight,\n} from './path'\nimport invariant from 'tiny-invariant'\nimport {\n FullSearchSchema,\n RouteById,\n RoutePaths,\n RoutesById,\n RoutesByPath,\n} from './routeInfo'\nimport {\n LinkInfo,\n LinkOptions,\n NavigateOptions,\n ResolveRelativePath,\n ToOptions,\n} from './link'\nimport {\n HistoryLocation,\n HistoryState,\n RouterHistory,\n createBrowserHistory,\n} from '.'\nimport { AnyRoute } from './route'\nimport { RouterState } from './router'\n\nexport interface CommitLocationOptions {\n replace?: boolean\n resetScroll?: boolean\n}\n\nexport interface MatchLocation {\n to?: string | number | null\n fuzzy?: boolean\n caseSensitive?: boolean\n from?: string\n}\n\nexport interface MatchRouteOptions {\n pending?: boolean\n caseSensitive?: boolean\n includeSearch?: boolean\n fuzzy?: boolean\n}\n\ntype LinkCurrentTargetElement = {\n preloadTimeout?: null | ReturnType<typeof setTimeout>\n}\n\nexport type BuildLinkFn<TRouteTree extends AnyRoute> = <\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n>(\n state: RouterState,\n dest: LinkOptions<TRouteTree, TFrom, TTo>,\n) => LinkInfo\n\nexport type NavigateFn<TRouteTree extends AnyRoute> = <\n TRouteTree extends AnyRoute,\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = TFrom,\n TMaskTo extends string = '',\n>({\n from,\n to = '' as any,\n ...rest\n}: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>\n\nexport type MatchRouteFn<TRouteTree extends AnyRoute> = <\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TResolved = ResolveRelativePath<TFrom, NoInfer<TTo>>,\n>(\n state: RouterState<TRouteTree>,\n location: ToOptions<TRouteTree, TFrom, TTo>,\n opts?: MatchRouteOptions,\n) => false | RouteById<TRouteTree, TResolved>['types']['allParams']\n\nexport type LoadFn = (opts?: {\n next?: ParsedLocation\n throwOnError?: boolean\n __dehydratedMatches?: DehydratedRouteMatch[]\n}) => Promise<void>\n\nconst preloadWarning = 'Error preloading route! ☝️'\n\nexport type RouterContext<\n TRouteTree extends AnyRoute,\n // TDehydrated extends Record<string, any>,\n> = {\n buildLink: BuildLinkFn<TRouteTree>\n state: RouterState<TRouteTree>\n navigate: NavigateFn<TRouteTree>\n matchRoute: MatchRouteFn<TRouteTree>\n routeTree: TRouteTree\n routesById: RoutesById<TRouteTree>\n options: RouterOptions<TRouteTree>\n history: RouterHistory\n load: LoadFn\n}\n\nexport const routerContext = React.createContext<RouterContext<any>>(null!)\n\nif (typeof document !== 'undefined') {\n window.__TSR_ROUTER_CONTEXT__ = routerContext as any\n}\n\nexport function getInitialRouterState(\n location: ParsedLocation,\n): RouterState<any> {\n return {\n status: 'idle',\n isFetching: false,\n resolvedLocation: location!,\n location: location!,\n matches: [],\n pendingMatches: [],\n lastUpdated: Date.now(),\n }\n}\n\nexport function RouterProvider<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({ router, ...rest }: RouterProps<TRouteTree, TDehydrated>) {\n const options = {\n ...router.options,\n ...rest,\n meta: {\n ...router.options.meta,\n ...rest?.meta,\n },\n } as PickAsRequired<\n RouterOptions<TRouteTree, TDehydrated>,\n 'stringifySearch' | 'parseSearch' | 'meta'\n >\n\n const history = React.useState(\n () => options.history ?? createBrowserHistory(),\n )[0]\n\n const tempLocationKeyRef = React.useRef<string | undefined>(\n `${Math.round(Math.random() * 10000000)}`,\n )\n const resetNextScrollRef = React.useRef<boolean>(false)\n\n const navigateTimeoutRef = React.useRef<NodeJS.Timeout | null>(null)\n\n const latestLoadPromiseRef = React.useRef<Promise<void>>(Promise.resolve())\n\n const checkLatest = (promise: Promise<void>): undefined | Promise<void> => {\n return latestLoadPromiseRef.current !== promise\n ? latestLoadPromiseRef.current\n : undefined\n }\n\n const parseLocation = useStableCallback(\n (\n previousLocation?: ParsedLocation,\n ): ParsedLocation<FullSearchSchema<TRouteTree>> => {\n const parse = ({\n pathname,\n search,\n hash,\n state,\n }: HistoryLocation): ParsedLocation<FullSearchSchema<TRouteTree>> => {\n const parsedSearch = options.parseSearch(search)\n\n return {\n pathname: pathname,\n searchStr: search,\n search: replaceEqualDeep(\n previousLocation?.search,\n parsedSearch,\n ) as any,\n hash: hash.split('#').reverse()[0] ?? '',\n href: `${pathname}${search}${hash}`,\n state: replaceEqualDeep(\n previousLocation?.state,\n state,\n ) as HistoryState,\n }\n }\n\n const location = parse(history.location)\n\n let { __tempLocation, __tempKey } = location.state\n\n if (\n __tempLocation &&\n (!__tempKey || __tempKey === tempLocationKeyRef.current)\n ) {\n // Sync up the location keys\n const parsedTempLocation = parse(__tempLocation) as any\n parsedTempLocation.state.key = location.state.key\n\n delete parsedTempLocation.state.__tempLocation\n\n return {\n ...parsedTempLocation,\n maskedLocation: location,\n }\n }\n\n return location\n },\n )\n\n const [state, setState] = React.useState<RouterState<TRouteTree>>(() =>\n getInitialRouterState(parseLocation()),\n )\n\n const basepath = `/${trimPath(options.basepath ?? '') ?? ''}`\n\n const resolvePathWithBase = useStableCallback(\n (from: string, path: string) => {\n return resolvePath(basepath!, from, cleanPath(path))\n },\n )\n\n const [routesById, routesByPath] = React.useMemo(() => {\n const routesById = {} as RoutesById<TRouteTree>\n const routesByPath = {} as RoutesByPath<TRouteTree>\n\n const recurseRoutes = (routes: AnyRoute[]) => {\n routes.forEach((route, i) => {\n route.init({ originalIndex: i })\n\n const existingRoute = (routesById as any)[route.id]\n\n invariant(\n !existingRoute,\n `Duplicate routes found with id: ${String(route.id)}`,\n )\n ;(routesById as any)[route.id] = route\n\n if (!route.isRoot && route.path) {\n const trimmedFullPath = trimPathRight(route.fullPath)\n if (\n !(routesByPath as any)[trimmedFullPath] ||\n route.fullPath.endsWith('/')\n ) {\n ;(routesByPath as any)[trimmedFullPath] = route\n }\n }\n\n const children = route.children as Route[]\n\n if (children?.length) {\n recurseRoutes(children)\n }\n })\n }\n\n recurseRoutes([router.routeTree])\n\n return [routesById, routesByPath] as const\n }, [])\n\n const looseRoutesById = routesById as Record<string, AnyRoute>\n\n const flatRoutes = React.useMemo(\n () =>\n (Object.values(routesByPath) as AnyRoute[])\n .map((d, i) => {\n const trimmed = trimPath(d.fullPath)\n const parsed = parsePathname(trimmed)\n\n while (parsed.length > 1 && parsed[0]?.value === '/') {\n parsed.shift()\n }\n\n const score = parsed.map((d) => {\n if (d.type === 'param') {\n return 0.5\n }\n\n if (d.type === 'wildcard') {\n return 0.25\n }\n\n return 1\n })\n\n return { child: d, trimmed, parsed, index: i, score }\n })\n .sort((a, b) => {\n let isIndex = a.trimmed === '/' ? 1 : b.trimmed === '/' ? -1 : 0\n\n if (isIndex !== 0) return isIndex\n\n const length = Math.min(a.score.length, b.score.length)\n\n // Sort by length of score\n if (a.score.length !== b.score.length) {\n return b.score.length - a.score.length\n }\n\n // Sort by min available score\n for (let i = 0; i < length; i++) {\n if (a.score[i] !== b.score[i]) {\n return b.score[i]! - a.score[i]!\n }\n }\n\n // Sort by min available parsed value\n for (let i = 0; i < length; i++) {\n if (a.parsed[i]!.value !== b.parsed[i]!.value) {\n return a.parsed[i]!.value! > b.parsed[i]!.value! ? 1 : -1\n }\n }\n\n // Sort by length of trimmed full path\n if (a.trimmed !== b.trimmed) {\n return a.trimmed > b.trimmed ? 1 : -1\n }\n\n // Sort by original index\n return a.index - b.index\n })\n .map((d, i) => {\n d.child.rank = i\n return d.child\n }),\n [routesByPath],\n )\n\n const matchRoutes = useStableCallback(\n <TRouteTree extends AnyRoute>(\n pathname: string,\n locationSearch: AnySearchSchema,\n opts?: { throwOnError?: boolean; debug?: boolean },\n ): RouteMatch<TRouteTree>[] => {\n let routeParams: AnyPathParams = {}\n\n let foundRoute = flatRoutes.find((route) => {\n const matchedParams = matchPathname(basepath, trimPathRight(pathname), {\n to: route.fullPath,\n caseSensitive: route.options.caseSensitive ?? options.caseSensitive,\n fuzzy: false,\n })\n\n if (matchedParams) {\n routeParams = matchedParams\n return true\n }\n\n return false\n })\n\n let routeCursor: AnyRoute = foundRoute || (routesById as any)['__root__']\n\n let matchedRoutes: AnyRoute[] = [routeCursor]\n // let includingLayouts = true\n while (routeCursor?.parentRoute) {\n routeCursor = routeCursor.parentRoute\n if (routeCursor) matchedRoutes.unshift(routeCursor)\n }\n\n // Existing matches are matches that are already loaded along with\n // pending matches that are still loading\n\n const parseErrors = matchedRoutes.map((route) => {\n let parsedParamsError\n\n if (route.options.parseParams) {\n try {\n const parsedParams = route.options.parseParams(routeParams)\n // Add the parsed params to the accumulated params bag\n Object.assign(routeParams, parsedParams)\n } catch (err: any) {\n parsedParamsError = new PathParamError(err.message, {\n cause: err,\n })\n\n if (opts?.throwOnError) {\n throw parsedParamsError\n }\n\n return parsedParamsError\n }\n }\n\n return\n })\n\n const matches = matchedRoutes.map((route, index) => {\n const interpolatedPath = interpolatePath(route.path, routeParams)\n const matchId = interpolatePath(route.id, routeParams, true)\n\n // Waste not, want not. If we already have a match for this route,\n // reuse it. This is important for layout routes, which might stick\n // around between navigation actions that only change leaf routes.\n const existingMatch = getRouteMatch(state, matchId)\n\n if (existingMatch) {\n return { ...existingMatch }\n }\n\n // Create a fresh route match\n const hasLoaders = !!(\n route.options.load ||\n componentTypes.some((d) => (route.options[d] as any)?.preload)\n )\n\n const routeMatch: AnyRouteMatch = {\n id: matchId,\n routeId: route.id,\n params: routeParams,\n pathname: joinPaths([basepath, interpolatedPath]),\n updatedAt: Date.now(),\n routeSearch: {},\n search: {} as any,\n status: hasLoaders ? 'pending' : 'success',\n isFetching: false,\n invalid: false,\n error: undefined,\n paramsError: parseErrors[index],\n searchError: undefined,\n loadPromise: Promise.resolve(),\n meta: undefined!,\n abortController: new AbortController(),\n fetchedAt: 0,\n }\n\n return routeMatch\n })\n\n // Take each match and resolve its search params and meta\n // This has to happen after the matches are created or found\n // so that we can use the parent match's search params and meta\n matches.forEach((match, i): any => {\n const parentMatch = matches[i - 1]\n const route = looseRoutesById[match.routeId]!\n\n const searchInfo = (() => {\n // Validate the search params and stabilize them\n const parentSearchInfo = {\n search: parentMatch?.search ?? locationSearch,\n routeSearch: parentMatch?.routeSearch ?? locationSearch,\n }\n\n try {\n const validator =\n typeof route.options.validateSearch === 'object'\n ? route.options.validateSearch.parse\n : route.options.validateSearch\n\n let routeSearch = validator?.(parentSearchInfo.search) ?? {}\n\n let search = {\n ...parentSearchInfo.search,\n ...routeSearch,\n }\n\n routeSearch = replaceEqualDeep(match.routeSearch, routeSearch)\n search = replaceEqualDeep(match.search, search)\n\n return {\n routeSearch,\n search,\n searchDidChange: match.routeSearch !== routeSearch,\n }\n } catch (err: any) {\n match.searchError = new SearchParamError(err.message, {\n cause: err,\n })\n\n if (opts?.throwOnError) {\n throw match.searchError\n }\n\n return parentSearchInfo\n }\n })()\n\n Object.assign(match, searchInfo)\n })\n\n return matches as any\n },\n )\n\n const cancelMatch = useStableCallback(\n <TRouteTree extends AnyRoute>(id: string) => {\n getRouteMatch(state, id)?.abortController?.abort()\n },\n )\n\n const cancelMatches = useStableCallback(\n <TRouteTree extends AnyRoute>(state: RouterState<TRouteTree>) => {\n state.matches.forEach((match) => {\n cancelMatch(match.id)\n })\n },\n )\n\n const buildLocation = useStableCallback(\n <TRouteTree extends AnyRoute>(\n opts: BuildNextOptions = {},\n ): ParsedLocation => {\n const build = (\n dest: BuildNextOptions & {\n unmaskOnReload?: boolean\n } = {},\n matches?: AnyRouteMatch[],\n ): ParsedLocation => {\n const from = latestLocationRef.current\n const fromPathname = dest.from ?? from.pathname\n\n let pathname = resolvePathWithBase(fromPathname, `${dest.to ?? ''}`)\n\n const fromMatches = matchRoutes(fromPathname, from.search)\n const stayingMatches = matches?.filter((d) =>\n fromMatches?.find((e) => e.routeId === d.routeId),\n )\n\n const prevParams = { ...last(fromMatches)?.params }\n\n let nextParams =\n (dest.params ?? true) === true\n ? prevParams\n : functionalUpdate(dest.params!, prevParams)\n\n if (nextParams) {\n matches\n ?.map((d) => looseRoutesById[d.routeId]!.options.stringifyParams)\n .filter(Boolean)\n .forEach((fn) => {\n nextParams = { ...nextParams!, ...fn!(nextParams!) }\n })\n }\n\n pathname = interpolatePath(pathname, nextParams ?? {})\n\n const preSearchFilters =\n stayingMatches\n ?.map(\n (match) =>\n looseRoutesById[match.routeId]!.options.preSearchFilters ?? [],\n )\n .flat()\n .filter(Boolean) ?? []\n\n const postSearchFilters =\n stayingMatches\n ?.map(\n (match) =>\n looseRoutesById[match.routeId]!.options.postSearchFilters ?? [],\n )\n .flat()\n .filter(Boolean) ?? []\n\n // Pre filters first\n const preFilteredSearch = preSearchFilters?.length\n ? preSearchFilters?.reduce(\n (prev, next) => next(prev) as any,\n from.search,\n )\n : from.search\n\n // Then the link/navigate function\n const destSearch =\n dest.search === true\n ? preFilteredSearch // Preserve resolvedFrom true\n : dest.search\n ? functionalUpdate(dest.search, preFilteredSearch) ?? {} // Updater\n : preSearchFilters?.length\n ? preFilteredSearch // Preserve resolvedFrom filters\n : {}\n\n // Then post filters\n const postFilteredSearch = postSearchFilters?.length\n ? postSearchFilters.reduce((prev, next) => next(prev), destSearch)\n : destSearch\n\n const search = replaceEqualDeep(from.search, postFilteredSearch)\n\n const searchStr = options.stringifySearch(search)\n\n const hash =\n dest.hash === true\n ? from.hash\n : dest.hash\n ? functionalUpdate(dest.hash!, from.hash)\n : from.hash\n\n const hashStr = hash ? `#${hash}` : ''\n\n let nextState =\n dest.state === true\n ? from.state\n : dest.state\n ? functionalUpdate(dest.state, from.state)\n : from.state\n\n nextState = replaceEqualDeep(from.state, nextState)\n\n return {\n pathname,\n search,\n searchStr,\n state: nextState as any,\n hash,\n href: history.createHref(`${pathname}${searchStr}${hashStr}`),\n unmaskOnReload: dest.unmaskOnReload,\n }\n }\n\n const buildWithMatches = (\n dest: BuildNextOptions = {},\n maskedDest?: BuildNextOptions,\n ) => {\n let next = build(dest)\n let maskedNext = maskedDest ? build(maskedDest) : undefined\n\n if (!maskedNext) {\n let params = {}\n\n let foundMask = options.routeMasks?.find((d) => {\n const match = matchPathname(basepath, next.pathname, {\n to: d.from,\n caseSensitive: false,\n fuzzy: false,\n })\n\n if (match) {\n params = match\n return true\n }\n\n return false\n })\n\n if (foundMask) {\n foundMask = {\n ...foundMask,\n from: interpolatePath(foundMask.from, params) as any,\n }\n maskedDest = foundMask\n maskedNext = build(maskedDest)\n }\n }\n\n const nextMatches = matchRoutes(next.pathname, next.search)\n const maskedMatches = maskedNext\n ? matchRoutes(maskedNext.pathname, maskedNext.search)\n : undefined\n const maskedFinal = maskedNext\n ? build(maskedDest, maskedMatches)\n : undefined\n\n const final = build(dest, nextMatches)\n\n if (maskedFinal) {\n final.maskedLocation = maskedFinal\n }\n\n return final\n }\n\n if (opts.mask) {\n return buildWithMatches(opts, {\n ...pick(opts, ['from']),\n ...opts.mask,\n })\n }\n\n return buildWithMatches(opts)\n },\n )\n\n const commitLocation = useStableCallback(\n async (next: ParsedLocation & CommitLocationOptions) => {\n if (navigateTimeoutRef.current) clearTimeout(navigateTimeoutRef.current)\n\n const isSameUrl = latestLocationRef.current.href === next.href\n\n // If the next urls are the same and we're not replacing,\n // do nothing\n if (!isSameUrl || !next.replace) {\n let { maskedLocation, ...nextHistory } = next\n\n if (maskedLocation) {\n nextHistory = {\n ...maskedLocation,\n state: {\n ...maskedLocation.state,\n __tempKey: undefined,\n __tempLocation: {\n ...nextHistory,\n search: nextHistory.searchStr,\n state: {\n ...nextHistory.state,\n __tempKey: undefined!,\n __tempLocation: undefined!,\n key: undefined!,\n },\n },\n },\n }\n\n if (nextHistory.unmaskOnReload ?? options.unmaskOnReload ?? false) {\n nextHistory.state.__tempKey = tempLocationKeyRef.current\n }\n }\n\n history[next.replace ? 'replace' : 'push'](\n nextHistory.href,\n nextHistory.state,\n )\n }\n\n resetNextScrollRef.current = next.resetScroll ?? true\n\n return latestLoadPromiseRef.current\n },\n )\n\n const buildAndCommitLocation = useStableCallback(\n ({\n replace,\n resetScroll,\n ...rest\n }: BuildNextOptions & CommitLocationOptions = {}) => {\n const location = buildLocation(rest)\n return commitLocation({\n ...location,\n replace,\n resetScroll,\n })\n },\n )\n\n const navigate = useStableCallback<NavigateFn<TRouteTree>>(\n ({ from, to = '', ...rest }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n const toString = String(to)\n const fromString = typeof from === 'undefined' ? from : String(from)\n let isExternal\n\n try {\n new URL(`${toString}`)\n isExternal = true\n } catch (e) {}\n\n invariant(\n !isExternal,\n 'Attempting to navigate to external url with this.navigate!',\n )\n\n return buildAndCommitLocation({\n ...rest,\n from: fromString,\n to: toString,\n })\n },\n )\n\n const loadMatches = useStableCallback(\n async ({\n checkLatest,\n matches,\n preload,\n }: {\n checkLatest: () => Promise<void> | undefined\n matches: AnyRouteMatch[]\n preload?: boolean\n }): Promise<RouteMatch[]> => {\n let latestPromise\n let firstBadMatchIndex: number | undefined\n\n // Check each match middleware to see if the route can be accessed\n try {\n for (let [index, match] of matches.entries()) {\n const parentMatch = matches[index - 1]\n const route = looseRoutesById[match.routeId]!\n\n const handleError = (err: any, code: string) => {\n err.routerCode = code\n firstBadMatchIndex = firstBadMatchIndex ?? index\n\n if (isRedirect(err)) {\n throw err\n }\n\n try {\n route.options.onError?.(err)\n } catch (errorHandlerErr) {\n err = errorHandlerErr\n\n if (isRedirect(errorHandlerErr)) {\n throw errorHandlerErr\n }\n }\n\n matches[index] = match = {\n ...match,\n error: err,\n status: 'error',\n updatedAt: Date.now(),\n }\n }\n\n try {\n if (match.paramsError) {\n handleError(match.paramsError, 'PARSE_PARAMS')\n }\n\n if (match.searchError) {\n handleError(match.searchError, 'VALIDATE_SEARCH')\n }\n\n const parentMeta = parentMatch?.meta ?? options.meta ?? {}\n\n const beforeLoadMeta =\n (await route.options.beforeLoad?.({\n search: match.search,\n abortController: match.abortController,\n params: match.params,\n preload: !!preload,\n meta: parentMeta,\n location: state.location, // TODO: This might need to be latestLocationRef.current...?\n })) ?? ({} as any)\n\n const meta = {\n ...parentMeta,\n ...beforeLoadMeta,\n }\n\n matches[index] = match = {\n ...match,\n meta: replaceEqualDeep(match.meta, meta),\n }\n } catch (err) {\n handleError(err, 'BEFORE_LOAD')\n break\n }\n }\n } catch (err) {\n if (isRedirect(err)) {\n if (!preload) navigate(err as any)\n return matches\n }\n\n throw err\n }\n\n const validResolvedMatches = matches.slice(0, firstBadMatchIndex)\n const matchPromises: Promise<any>[] = []\n\n validResolvedMatches.forEach((match, index) => {\n matchPromises.push(\n (async () => {\n const parentMatchPromise = matchPromises[index - 1]\n const route = looseRoutesById[match.routeId]!\n\n if (match.isFetching) {\n return getRouteMatch(state, match.id)?.loadPromise\n }\n\n const handleIfRedirect = (err: any) => {\n if (isRedirect(err)) {\n if (!preload) {\n navigate(err as any)\n }\n return true\n }\n return false\n }\n\n const load = async () => {\n try {\n const componentsPromise = Promise.all(\n componentTypes.map(async (type) => {\n const component = route.options[type]\n\n if ((component as any)?.preload) {\n await (component as any).preload()\n }\n }),\n )\n\n const loaderPromise = route.options.load?.({\n params: match.params,\n search: match.search,\n preload: !!preload,\n parentMatchPromise,\n abortController: match.abortController,\n meta: match.meta,\n })\n\n await Promise.all([componentsPromise, loaderPromise])\n if ((latestPromise = checkLatest())) return await latestPromise\n\n matches[index] = match = {\n ...match,\n error: undefined,\n status: 'success',\n isFetching: false,\n updatedAt: Date.now(),\n }\n } catch (error) {\n if ((latestPromise = checkLatest())) return await latestPromise\n if (handleIfRedirect(error)) return\n\n try {\n route.options.onError?.(error)\n } catch (onErrorError) {\n error = onErrorError\n if (handleIfRedirect(onErrorError)) return\n }\n\n matches[index] = match = {\n ...match,\n error,\n status: 'error',\n isFetching: false,\n updatedAt: Date.now(),\n }\n }\n\n if (!preload) {\n setState((s) => ({\n ...s,\n matches: s.matches.map((d) =>\n d.id === match.id ? match : d,\n ),\n }))\n }\n }\n\n let loadPromise: Promise<void> | undefined\n\n matches[index] = match = {\n ...match,\n isFetching: true,\n fetchedAt: Date.now(),\n invalid: false,\n }\n\n loadPromise = load()\n\n matches[index] = match = {\n ...match,\n loadPromise,\n }\n\n await loadPromise\n })(),\n )\n })\n\n await Promise.all(matchPromises)\n return matches\n },\n )\n\n const load = useStableCallback<LoadFn>(async () => {\n const promise = new Promise<void>(async (resolve, reject) => {\n const next = latestLocationRef.current\n const prevLocation = state.resolvedLocation\n const pathDidChange = !!(next && prevLocation!.href !== next.href)\n let latestPromise: Promise<void> | undefined | null\n\n // Cancel any pending matches\n cancelMatches(state)\n\n router.emit({\n type: 'onBeforeLoad',\n from: prevLocation,\n to: next ?? state.location,\n pathChanged: pathDidChange,\n })\n\n // Ingest the new location\n setState((s) => ({\n ...s,\n location: next,\n }))\n\n // Match the routes\n let matches: RouteMatch<any, any>[] = matchRoutes(\n next.pathname,\n next.search,\n {\n debug: true,\n },\n )\n\n setState((s) => ({\n ...s,\n status: 'pending',\n matches,\n }))\n\n try {\n try {\n // Load the matches\n await loadMatches({\n matches,\n checkLatest: () => checkLatest(promise),\n })\n } catch (err) {\n // swallow this error, since we'll display the\n // errors on the route components\n }\n\n // Only apply the latest transition\n if ((latestPromise = checkLatest(promise))) {\n return latestPromise\n }\n\n // TODO:\n // const exitingMatchIds = previousMatches.filter(\n // (id) => !state.pendingMatches.includes(id),\n // )\n // const enteringMatchIds = state.pendingMatches.filter(\n // (id) => !previousMatches.includes(id),\n // )\n // const stayingMatchIds = previousMatches.filter((id) =>\n // state.pendingMatches.includes(id),\n // )\n\n setState((s) => ({\n ...s,\n status: 'idle',\n resolvedLocation: s.location,\n }))\n\n // TODO:\n // ;(\n // [\n // [exitingMatchIds, 'onLeave'],\n // [enteringMatchIds, 'onEnter'],\n // [stayingMatchIds, 'onTransition'],\n // ] as const\n // ).forEach(([matches, hook]) => {\n // matches.forEach((match) => {\n // const route = this.getRoute(match.routeId)\n // route.options[hook]?.(match)\n // })\n // })\n router.emit({\n type: 'onLoad',\n from: prevLocation,\n to: next,\n pathChanged: pathDidChange,\n })\n\n resolve()\n } catch (err) {\n // Only apply the latest transition\n if ((latestPromise = checkLatest(promise))) {\n return latestPromise\n }\n\n reject(err)\n }\n })\n\n latestLoadPromiseRef.current = promise\n\n return latestLoadPromiseRef.current\n })\n\n const preloadRoute = useStableCallback(\n async (navigateOpts: BuildNextOptions = state.location) => {\n let next = buildLocation(navigateOpts)\n\n let matches = matchRoutes(next.pathname, next.search, {\n throwOnError: true,\n })\n\n await loadMatches({\n matches,\n preload: true,\n checkLatest: () => undefined,\n })\n\n return [last(matches)!, matches] as const\n },\n )\n\n const buildLink = useStableCallback<BuildLinkFn<TRouteTree>>(\n (state, dest) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n\n const {\n to,\n preload: userPreload,\n preloadDelay: userPreloadDelay,\n activeOptions,\n disabled,\n target,\n replace,\n resetScroll,\n } = dest\n\n try {\n new URL(`${to}`)\n return {\n type: 'external',\n href: to as any,\n }\n } catch (e) {}\n\n const nextOpts = dest\n\n const next = buildLocation(nextOpts as any)\n\n const preload = userPreload ?? options.defaultPreload\n const preloadDelay = userPreloadDelay ?? options.defaultPreloadDelay ?? 0\n\n // Compare path/hash for matches\n const currentPathSplit = latestLocationRef.current.pathname.split('/')\n const nextPathSplit = next.pathname.split('/')\n const pathIsFuzzyEqual = nextPathSplit.every(\n (d, i) => d === currentPathSplit[i],\n )\n // Combine the matches based on user options\n const pathTest = activeOptions?.exact\n ? latestLocationRef.current.pathname === next.pathname\n : pathIsFuzzyEqual\n const hashTest = activeOptions?.includeHash\n ? latestLocationRef.current.hash === next.hash\n : true\n const searchTest =\n activeOptions?.includeSearch ?? true\n ? partialDeepEqual(latestLocationRef.current.search, next.search)\n : true\n\n // The final \"active\" test\n const isActive = pathTest && hashTest && searchTest\n\n // The click handler\n const handleClick = (e: MouseEvent) => {\n if (\n !disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!target || target === '_self') &&\n e.button === 0\n ) {\n e.preventDefault()\n\n // All is well? Navigate!\n commitLocation({ ...next, replace, resetScroll })\n }\n }\n\n // The click handler\n const handleFocus = (e: MouseEvent) => {\n if (preload) {\n preloadRoute(nextOpts as any).catch((err) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n }\n }\n\n const handleTouchStart = (e: TouchEvent) => {\n preloadRoute(nextOpts as any).catch((err) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n preloadRoute(nextOpts as any).catch((err) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n }, preloadDelay)\n }\n }\n\n const handleLeave = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (target.preloadTimeout) {\n clearTimeout(target.preloadTimeout)\n target.preloadTimeout = null\n }\n }\n\n return {\n type: 'internal',\n next,\n handleFocus,\n handleClick,\n handleEnter,\n handleLeave,\n handleTouchStart,\n isActive,\n disabled,\n }\n },\n )\n\n const latestLocationRef = React.useRef(state.location)\n\n React.useLayoutEffect(() => {\n const unsub = history.subscribe(() => {\n latestLocationRef.current = parseLocation(latestLocationRef.current)\n\n React.startTransition(() => {\n if (state.location !== latestLocationRef.current) {\n try {\n load()\n } catch (err) {\n console.error(err)\n }\n }\n })\n })\n\n const nextLocation = buildLocation({\n search: true,\n params: true,\n hash: true,\n state: true,\n })\n\n if (state.location.href !== nextLocation.href) {\n commitLocation({ ...nextLocation, replace: true })\n }\n\n return () => {\n unsub()\n }\n }, [history])\n\n const initialLoad = React.useRef(true)\n\n if (initialLoad.current) {\n initialLoad.current = false\n try {\n load()\n } catch (err) {\n console.error(err)\n }\n }\n\n const isFetching = React.useMemo(\n () => [...state.matches, ...state.pendingMatches].some((d) => d.isFetching),\n [state.matches, state.pendingMatches],\n )\n\n const matchRoute = useStableCallback((state, location, opts) => {\n location = {\n ...location,\n to: location.to\n ? resolvePathWithBase((location.from || '') as string, location.to)\n : undefined,\n } as any\n\n const next = buildLocation(location as any)\n if (opts?.pending && state.status !== 'pending') {\n return false\n }\n\n const baseLocation = opts?.pending\n ? latestLocationRef.current\n : state.resolvedLocation\n\n if (!baseLocation) {\n return false\n }\n\n const match = matchPathname(basepath, baseLocation.pathname, {\n ...opts,\n to: next.pathname,\n }) as any\n\n if (!match) {\n return false\n }\n\n if (opts?.includeSearch ?? true) {\n return partialDeepEqual(baseLocation.search, next.search) ? match : false\n }\n\n return match\n })\n\n const routerContextValue: RouterContext<TRouteTree> = {\n routeTree: router.routeTree,\n navigate,\n buildLink,\n state,\n matchRoute,\n routesById,\n options,\n history,\n load,\n }\n\n return (\n <routerContext.Provider value={routerContextValue}>\n <Matches />\n </routerContext.Provider>\n )\n}\n\nfunction mergeMatches<TRouteTree extends AnyRoute>(\n prevMatchesById: Record<string, RouteMatch<TRouteTree>>,\n nextMatches: AnyRouteMatch[],\n): Record<string, RouteMatch<TRouteTree>> {\n let matchesById = { ...prevMatchesById }\n\n nextMatches.forEach((match) => {\n if (!matchesById[match.id]) {\n matchesById[match.id] = match\n }\n\n matchesById[match.id] = {\n ...matchesById[match.id],\n ...match,\n }\n })\n\n return matchesById\n}\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\nexport class SearchParamError extends Error {}\nexport class PathParamError extends Error {}\n\nexport function getRouteMatch<TRouteTree extends AnyRoute>(\n state: RouterState<TRouteTree>,\n id: string,\n): undefined | RouteMatch<TRouteTree> {\n return [...state.pendingMatches, ...state.matches].find((d) => d.id === id)\n}\n"],"names":["preloadWarning","routerContext","React","createContext","document","window","__TSR_ROUTER_CONTEXT__","getInitialRouterState","location","status","isFetching","resolvedLocation","matches","pendingMatches","lastUpdated","Date","now","RouterProvider","router","rest","options","meta","history","useState","createBrowserHistory","tempLocationKeyRef","useRef","Math","round","random","resetNextScrollRef","navigateTimeoutRef","latestLoadPromiseRef","Promise","resolve","checkLatest","promise","current","undefined","parseLocation","useStableCallback","previousLocation","parse","pathname","search","hash","state","parsedSearch","parseSearch","searchStr","replaceEqualDeep","split","reverse","href","__tempLocation","__tempKey","parsedTempLocation","key","maskedLocation","setState","basepath","trimPath","resolvePathWithBase","from","path","resolvePath","cleanPath","routesById","routesByPath","useMemo","recurseRoutes","routes","forEach","route","i","init","originalIndex","existingRoute","id","invariant","String","isRoot","trimmedFullPath","trimPathRight","fullPath","endsWith","children","length","routeTree","looseRoutesById","flatRoutes","Object","values","map","d","trimmed","parsed","parsePathname","value","shift","score","type","child","index","sort","a","b","isIndex","min","rank","matchRoutes","locationSearch","opts","routeParams","foundRoute","find","matchedParams","matchPathname","to","caseSensitive","fuzzy","routeCursor","matchedRoutes","parentRoute","unshift","parseErrors","parsedParamsError","parseParams","parsedParams","assign","err","PathParamError","message","cause","throwOnError","interpolatedPath","interpolatePath","matchId","existingMatch","getRouteMatch","hasLoaders","load","componentTypes","some","preload","routeMatch","routeId","params","joinPaths","updatedAt","routeSearch","invalid","error","paramsError","searchError","loadPromise","abortController","AbortController","fetchedAt","match","parentMatch","searchInfo","parentSearchInfo","validator","validateSearch","searchDidChange","SearchParamError","cancelMatch","abort","cancelMatches","buildLocation","build","dest","latestLocationRef","fromPathname","fromMatches","stayingMatches","filter","e","prevParams","last","nextParams","functionalUpdate","stringifyParams","Boolean","fn","preSearchFilters","flat","postSearchFilters","preFilteredSearch","reduce","prev","next","destSearch","postFilteredSearch","stringifySearch","hashStr","nextState","createHref","unmaskOnReload","buildWithMatches","maskedDest","maskedNext","foundMask","routeMasks","nextMatches","maskedMatches","maskedFinal","final","mask","pick","commitLocation","clearTimeout","isSameUrl","replace","nextHistory","resetScroll","buildAndCommitLocation","navigate","toString","fromString","isExternal","URL","loadMatches","latestPromise","firstBadMatchIndex","entries","handleError","code","routerCode","isRedirect","onError","errorHandlerErr","parentMeta","beforeLoadMeta","beforeLoad","validResolvedMatches","slice","matchPromises","push","parentMatchPromise","handleIfRedirect","componentsPromise","all","component","loaderPromise","onErrorError","s","reject","prevLocation","pathDidChange","emit","pathChanged","debug","preloadRoute","navigateOpts","buildLink","userPreload","preloadDelay","userPreloadDelay","activeOptions","disabled","target","nextOpts","defaultPreload","defaultPreloadDelay","currentPathSplit","nextPathSplit","pathIsFuzzyEqual","every","pathTest","exact","hashTest","includeHash","searchTest","includeSearch","partialDeepEqual","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","catch","console","warn","handleTouchStart","handleEnter","preloadTimeout","setTimeout","handleLeave","useLayoutEffect","unsub","subscribe","startTransition","nextLocation","initialLoad","matchRoute","pending","baseLocation","routerContextValue","createElement","Provider","Matches","metaKey","altKey","ctrlKey","shiftKey","Error"],"mappings":"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"}
@@ -198,7 +198,8 @@ function Navigate(props) {
198
198
  }
199
199
  const matchesContext = /*#__PURE__*/React__namespace.createContext(null);
200
200
  function useRouter() {
201
- const value = React__namespace.useContext(RouterProvider.routerContext);
201
+ const resolvedContext = window.__TSR_ROUTER_CONTEXT__ || RouterProvider.routerContext;
202
+ const value = React__namespace.useContext(resolvedContext);
202
203
  warning__default["default"](value, 'useRouter must be used inside a <RouterProvider> component!');
203
204
  return value;
204
205
  }