{"version":3,"file":"Match.cjs","names":["Solid","rootRouteId","isServer","Dynamic","CatchBoundary","ErrorComponent","useRouter","CatchNotFound","getNotFound","nearestMatchContext","SafeFragment","renderRouteNotFound","ScrollRestoration","ClientOnly","nonRouteComponentContext","renderInNonRouteComponentContext","AnyRoute","AnyRouter","RootRouteOptions","renderScrollRestoration","undefined","router","route","parentRoute","id","options","scrollRestoration","_$createComponent","Match","props","routeId","currentMatch","createMemo","stores","byRoute","get","nearestMatch","const","routesById","routeOptions","resolvePendingComponent","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ssr","shouldSkipSuspenseFallback","ShellComponent","shellComponent","MatchContent","Show","when","status","fallback","process","env","NODE_ENV","children","MatchInner","Provider","value","Suspense","getResetKey","onCatch","error","Error","notFoundError","console","warn","defaultOnCatch","_$mergeProps","Switch","_$memo","useContext","match","componentKey","current","remount","remountDeps","defaultRemountDeps","deps","loaderDeps","params","_strictParams","search","_strictSearch","JSON","stringify","out","Comp","defaultComponent","Outlet","keyedOut","keyed","_key","_","RouteErrorComponent","info","componentStack","nonRouteComponent","nearestParentMatch","parentMatch","childRouteId","_notFound","ids","indexOf","_routeKey"],"sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { rootRouteId } from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound, getNotFound } from './not-found'\nimport { nearestMatchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport { ClientOnly } from './ClientOnly'\nimport {\n  nonRouteComponentContext,\n  renderInNonRouteComponentContext,\n} from './nonRouteComponentContext'\nimport type {\n  AnyRoute,\n  AnyRouter,\n  RootRouteOptions,\n} from '@tanstack/router-core'\n\n// Keep the client constant undefined so the server-only script can be dropped.\nconst renderScrollRestoration =\n  isServer === false\n    ? undefined\n    : (router: AnyRouter, route: AnyRoute) =>\n        (isServer ?? router.isServer) &&\n        route.parentRoute?.id === rootRouteId &&\n        router.options.scrollRestoration ? (\n          <ScrollRestoration />\n        ) : null\n\nexport const Match = (props: { routeId: string }) => {\n  const router = useRouter()\n\n  const currentMatch = Solid.createMemo(\n    () => router.stores.byRoute.get(props.routeId)!.get()!,\n  )\n\n  const nearestMatch = [() => props.routeId, currentMatch] as const\n\n  const route: AnyRoute = router.routesById[props.routeId]\n\n  // Lazy route option mutations become observable with the next client match\n  // publication. Server stores are non-reactive and options load before render.\n  const routeOptions =\n    (isServer ?? router.isServer)\n      ? () => route.options\n      : () => {\n          currentMatch()\n          return route.options\n        }\n\n  const resolvePendingComponent = () =>\n    routeOptions().pendingComponent ?? router.options.defaultPendingComponent\n\n  const routeErrorComponent = () =>\n    routeOptions().errorComponent ?? router.options.defaultErrorComponent\n\n  const routeNotFoundComponent = () =>\n    route.isRoot\n      ? // If it's the root route, use the _notFound option, with fallback to the notFoundRoute's component\n        (routeOptions().notFoundComponent ??\n        router.options.notFoundRoute?.options.component)\n      : routeOptions().notFoundComponent\n\n  const resolvedNoSsr = () =>\n    currentMatch().ssr === false || currentMatch().ssr === 'data-only'\n\n  const shouldSkipSuspenseFallback = () =>\n    (isServer ?? router.isServer)\n      ? resolvedNoSsr()\n      : currentMatch().ssr === 'data-only'\n\n  const ShellComponent = route.isRoot\n    ? ((route.options as RootRouteOptions).shellComponent ?? SafeFragment)\n    : SafeFragment\n\n  const MatchContent = () => (\n    <Solid.Show\n      when={currentMatch().status !== 'pending'}\n      fallback={(() => {\n        if (process.env.NODE_ENV !== 'production') {\n          return renderInNonRouteComponentContext(\n            () => <Dynamic component={resolvePendingComponent()} />,\n            'pendingComponent',\n          )\n        }\n        return <Dynamic component={resolvePendingComponent()} />\n      })()}\n    >\n      <MatchInner />\n    </Solid.Show>\n  )\n\n  return (\n    <ShellComponent>\n      <nearestMatchContext.Provider value={nearestMatch}>\n        <Solid.Suspense\n          fallback={(() => {\n            // Data-only SSR renders the inner fallback on the server, so\n            // avoid adding an extra suspense fallback on the client.\n            if (shouldSkipSuspenseFallback()) {\n              return undefined\n            }\n            if (process.env.NODE_ENV !== 'production') {\n              return renderInNonRouteComponentContext(\n                () => <Dynamic component={resolvePendingComponent()} />,\n                'pendingComponent',\n              )\n            }\n            return <Dynamic component={resolvePendingComponent()} />\n          })()}\n        >\n          <Dynamic\n            component={routeErrorComponent() ? CatchBoundary : SafeFragment}\n            getResetKey={currentMatch}\n            errorComponent={routeErrorComponent() as any}\n            onCatch={(error: Error) => {\n              // Forward not found errors (we don't want to show the error component for these)\n              const notFoundError = getNotFound(error)\n              if (notFoundError) {\n                notFoundError.routeId ??= currentMatch().routeId\n                throw notFoundError\n              }\n              if (process.env.NODE_ENV !== 'production') {\n                console.warn(\n                  `Warning: Error in route match: ${currentMatch().routeId}`,\n                )\n              }\n              ;(route.options.onCatch ?? router.options.defaultOnCatch)?.(error)\n            }}\n          >\n            <Dynamic\n              component={\n                routeNotFoundComponent() ? CatchNotFound : SafeFragment\n              }\n              fallback={(error: any) => {\n                const notFoundError = getNotFound(error) ?? error\n\n                notFoundError.routeId ??= currentMatch().routeId\n\n                if (notFoundError.routeId !== currentMatch().routeId) {\n                  throw notFoundError\n                }\n\n                return process.env.NODE_ENV !== 'production' ? (\n                  renderInNonRouteComponentContext(\n                    () => (\n                      <Dynamic\n                        component={routeNotFoundComponent()}\n                        {...notFoundError}\n                      />\n                    ),\n                    'notFoundComponent',\n                  )\n                ) : (\n                  <Dynamic\n                    component={routeNotFoundComponent()}\n                    {...notFoundError}\n                  />\n                )\n              }}\n            >\n              <Solid.Switch>\n                <Solid.Match when={resolvedNoSsr()}>\n                  <ClientOnly\n                    fallback={(() => {\n                      if (process.env.NODE_ENV !== 'production') {\n                        return renderInNonRouteComponentContext(\n                          () => (\n                            <Dynamic component={resolvePendingComponent()} />\n                          ),\n                          'pendingComponent',\n                        )\n                      }\n                      return <Dynamic component={resolvePendingComponent()} />\n                    })()}\n                  >\n                    <MatchContent />\n                  </ClientOnly>\n                </Solid.Match>\n                <Solid.Match when={!resolvedNoSsr()}>\n                  <MatchContent />\n                </Solid.Match>\n              </Solid.Switch>\n            </Dynamic>\n          </Dynamic>\n        </Solid.Suspense>\n      </nearestMatchContext.Provider>\n\n      {renderScrollRestoration?.(router, route)}\n    </ShellComponent>\n  )\n}\n\nexport const MatchInner = (): any => {\n  const router = useRouter()\n  const nearestMatch = Solid.useContext(nearestMatchContext)\n  const match = nearestMatch[1 /* match */]\n  const routeId = nearestMatch[0 /* route id */]\n  const route = router.routesById[routeId()!]!\n  const currentMatch = () => match()!\n\n  const componentKey = () => {\n    const current = currentMatch()\n    const remount =\n      route.options.remountDeps ?? router.options.defaultRemountDeps\n    if (!remount) {\n      return routeId()\n    }\n    const deps = remount({\n      routeId: routeId()!,\n      loaderDeps: current.loaderDeps,\n      params: current._strictParams,\n      search: current._strictSearch,\n    })\n    return JSON.stringify(deps) ?? routeId()\n  }\n\n  const out = () => {\n    const Comp = route.options.component ?? router.options.defaultComponent\n    if (Comp) {\n      return <Comp />\n    }\n    return <Outlet />\n  }\n\n  const keyedOut = () => (\n    <Solid.Show when={componentKey()} keyed>\n      {(_key) => out()}\n    </Solid.Show>\n  )\n\n  return (\n    <Solid.Switch>\n      <Solid.Match when={currentMatch().status === 'notFound'}>\n        {(_) => renderRouteNotFound(router, route, currentMatch().error)}\n      </Solid.Match>\n      <Solid.Match when={currentMatch().status === 'error'}>\n        {(_) => {\n          if (isServer ?? router.isServer) {\n            const RouteErrorComponent =\n              (route.options.errorComponent ??\n                router.options.defaultErrorComponent) ||\n              ErrorComponent\n\n            return process.env.NODE_ENV !== 'production' ? (\n              renderInNonRouteComponentContext(\n                () => (\n                  <RouteErrorComponent\n                    error={currentMatch().error}\n                    info={{\n                      componentStack: '',\n                    }}\n                  />\n                ),\n                'errorComponent',\n              )\n            ) : (\n              <RouteErrorComponent\n                error={currentMatch().error}\n                info={{\n                  componentStack: '',\n                }}\n              />\n            )\n          }\n\n          throw currentMatch().error\n        }}\n      </Solid.Match>\n      <Solid.Match when={currentMatch().status === 'success'}>\n        {keyedOut()}\n      </Solid.Match>\n    </Solid.Switch>\n  )\n}\n\nexport const Outlet = () => {\n  if (process.env.NODE_ENV !== 'production') {\n    const nonRouteComponent = Solid.useContext(nonRouteComponentContext!)\n    if (nonRouteComponent) {\n      console.warn(\n        `Warning: An <Outlet /> was rendered inside a ${nonRouteComponent}. <Outlet /> should only be rendered inside a route component.`,\n      )\n    }\n  }\n\n  const router = useRouter()\n  const nearestParentMatch = Solid.useContext(nearestMatchContext)\n  const parentMatch = nearestParentMatch[1 /* match */]\n  const routeId = nearestParentMatch[0 /* route id */]\n  const route = router.routesById[routeId()!]!\n\n  const childRouteId = () => {\n    if (parentMatch()!._notFound) {\n      return\n    }\n    const ids = router.stores.ids.get()\n    return ids[ids.indexOf(routeId()!) + 1]\n  }\n\n  return (\n    <Solid.Show\n      when={childRouteId()}\n      keyed\n      fallback={\n        parentMatch()!._notFound\n          ? renderRouteNotFound(router, route, parentMatch()!.error)\n          : undefined\n      }\n    >\n      {(_routeKey: string) => {\n        return (\n          <Solid.Show\n            when={routeId() === rootRouteId}\n            fallback={<Match routeId={childRouteId()!} />}\n          >\n            <Solid.Suspense\n              fallback={(() => {\n                if (process.env.NODE_ENV !== 'production') {\n                  return renderInNonRouteComponentContext(\n                    () => (\n                      <Dynamic\n                        component={router.options.defaultPendingComponent}\n                      />\n                    ),\n                    'pendingComponent',\n                  )\n                }\n                return (\n                  <Dynamic component={router.options.defaultPendingComponent} />\n                )\n              })()}\n            >\n              <Match routeId={childRouteId()!} />\n            </Solid.Suspense>\n          </Solid.Show>\n        )\n      }}\n    </Solid.Show>\n  )\n}\n"],"mappings":"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"}