{"version":3,"file":"Match.cjs","names":["<ScrollRestoration />","<Solid.Show when={matchState()}>\n      {(currentMatchState) => {\n        const route = router.routesById[props.routeId] as AnyRoute\n        const routeOptions = () => {\n          // Lazy route options become observable with the next publication.\n          currentMatchState()\n          return route.options\n        }\n        const resolvePendingComponent = Solid.createMemo(\n          () =>\n            routeOptions().pendingComponent ??\n            router.options.defaultPendingComponent,\n        )\n        const routeErrorComponent = Solid.createMemo(\n          () =>\n            routeOptions().errorComponent ??\n            router.options.defaultErrorComponent,\n        )\n        const routeNotFoundComponent = Solid.createMemo(() =>\n          route.isRoot\n            ? (routeOptions().notFoundComponent ??\n              router.options.notFoundRoute?.options.component ??\n              router.options.defaultNotFoundComponent)\n            : (routeOptions().notFoundComponent ??\n              router.options.defaultNotFoundComponent),\n        )\n        const resolvedNoSsr = Solid.createMemo(\n          () =>\n            currentMatchState().ssr === false ||\n            currentMatchState().ssr === 'data-only',\n        )\n        const ResolvedLoadingBoundary = Solid.createMemo(() =>\n          resolvedNoSsr() ? SafeFragment : Solid.Loading,\n        )\n        const shouldSkipLoadingFallback = Solid.createMemo(() =>\n          (isServer ?? router.isServer)\n            ? resolvedNoSsr()\n            : currentMatchState().ssr === 'data-only',\n        )\n        const ResolvedNotFoundBoundary = Solid.createMemo(() =>\n          routeNotFoundComponent() ? CatchNotFound : SafeFragment,\n        )\n        const ShellComponent = Solid.createMemo(() =>\n          route.isRoot\n            ? ((route.options as RootRouteOptions).shellComponent ??\n              SafeFragment)\n            : SafeFragment,\n        )\n\n        const MatchContent = () => (\n          <Solid.Show\n            when={currentMatchState().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        const RouteContent = () => (\n          <Dynamic\n            component={ResolvedNotFoundBoundary()}\n            fallback={(error: any) => {\n              const notFoundError = getNotFound(error) ?? error\n              notFoundError.routeId ??= currentMatchState().routeId\n\n              if (notFoundError.routeId !== currentMatchState().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                        () => <Dynamic component={resolvePendingComponent()} />,\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        )\n\n        return (\n          <Dynamic component={ShellComponent()}>\n            <NearestMatchContext value={nearestMatch}>\n              <Dynamic\n                component={ResolvedLoadingBoundary()}\n                fallback={(() => {\n                  // Data-only SSR renders the inner fallback on the server, so\n                  // avoid adding an extra loading fallback on the client.\n                  if (shouldSkipLoadingFallback()) {\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                <Solid.Show\n                  when={routeErrorComponent()}\n                  fallback={<RouteContent />}\n                >\n                  {(errorComponent) => (\n                    <CatchBoundary\n                      // Scope the reset key to this match and its\n                      // descendants (whose errors bubble here when they\n                      // have no errorComponent of their own): resetting on\n                      // unrelated matches' transitions just re-throws the\n                      // still-stale error and recreates the retried\n                      // subtree mid-settle.\n                      getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}\n                      errorComponent={errorComponent() as any}\n                      onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}\n                      render={RouteContent}\n                    />\n                  )}\n                </Solid.Show>\n              </Dynamic>\n            </NearestMatchContext>\n\n            {renderScrollRestoration?.(router, route)}\n          </Dynamic>\n        )\n      }}\n    </Solid.Show>","Solid.Show","<Solid.Show\n            when={currentMatchState().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>","<Dynamic component={resolvePendingComponent()} />","<MatchInner />","<Dynamic\n            component={ResolvedNotFoundBoundary()}\n            fallback={(error: any) => {\n              const notFoundError = getNotFound(error) ?? error\n              notFoundError.routeId ??= currentMatchState().routeId\n\n              if (notFoundError.routeId !== currentMatchState().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                        () => <Dynamic component={resolvePendingComponent()} />,\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>","fallback={(error: any) => {\n              const notFoundError = getNotFound(error) ?? error\n              notFoundError.routeId ??= currentMatchState().routeId\n\n              if (notFoundError.routeId !== currentMatchState().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            }}","<Dynamic\n                      component={routeNotFoundComponent()}\n                      {...notFoundError}\n                    />","<Dynamic\n                  component={routeNotFoundComponent()}\n                  {...notFoundError}\n                />","<Solid.Switch>\n              <Solid.Match when={resolvedNoSsr()}>\n                <ClientOnly\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                  <MatchContent />\n                </ClientOnly>\n              </Solid.Match>\n              <Solid.Match when={!resolvedNoSsr()}>\n                <MatchContent />\n              </Solid.Match>\n            </Solid.Switch>","Solid.Switch","<Solid.Match when={resolvedNoSsr()}>\n                <ClientOnly\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                  <MatchContent />\n                </ClientOnly>\n              </Solid.Match>","Solid.Match","<ClientOnly\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                  <MatchContent />\n                </ClientOnly>","<MatchContent />","<Solid.Match when={!resolvedNoSsr()}>\n                <MatchContent />\n              </Solid.Match>","<Dynamic component={ShellComponent()}>\n            <NearestMatchContext value={nearestMatch}>\n              <Dynamic\n                component={ResolvedLoadingBoundary()}\n                fallback={(() => {\n                  // Data-only SSR renders the inner fallback on the server, so\n                  // avoid adding an extra loading fallback on the client.\n                  if (shouldSkipLoadingFallback()) {\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                <Solid.Show\n                  when={routeErrorComponent()}\n                  fallback={<RouteContent />}\n                >\n                  {(errorComponent) => (\n                    <CatchBoundary\n                      // Scope the reset key to this match and its\n                      // descendants (whose errors bubble here when they\n                      // have no errorComponent of their own): resetting on\n                      // unrelated matches' transitions just re-throws the\n                      // still-stale error and recreates the retried\n                      // subtree mid-settle.\n                      getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}\n                      errorComponent={errorComponent() as any}\n                      onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}\n                      render={RouteContent}\n                    />\n                  )}\n                </Solid.Show>\n              </Dynamic>\n            </NearestMatchContext>\n\n            {renderScrollRestoration?.(router, route)}\n          </Dynamic>","<NearestMatchContext value={nearestMatch}>\n              <Dynamic\n                component={ResolvedLoadingBoundary()}\n                fallback={(() => {\n                  // Data-only SSR renders the inner fallback on the server, so\n                  // avoid adding an extra loading fallback on the client.\n                  if (shouldSkipLoadingFallback()) {\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                <Solid.Show\n                  when={routeErrorComponent()}\n                  fallback={<RouteContent />}\n                >\n                  {(errorComponent) => (\n                    <CatchBoundary\n                      // Scope the reset key to this match and its\n                      // descendants (whose errors bubble here when they\n                      // have no errorComponent of their own): resetting on\n                      // unrelated matches' transitions just re-throws the\n                      // still-stale error and recreates the retried\n                      // subtree mid-settle.\n                      getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}\n                      errorComponent={errorComponent() as any}\n                      onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}\n                      render={RouteContent}\n                    />\n                  )}\n                </Solid.Show>\n              </Dynamic>\n            </NearestMatchContext>","value={nearestMatch}","<Dynamic\n                component={ResolvedLoadingBoundary()}\n                fallback={(() => {\n                  // Data-only SSR renders the inner fallback on the server, so\n                  // avoid adding an extra loading fallback on the client.\n                  if (shouldSkipLoadingFallback()) {\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                <Solid.Show\n                  when={routeErrorComponent()}\n                  fallback={<RouteContent />}\n                >\n                  {(errorComponent) => (\n                    <CatchBoundary\n                      // Scope the reset key to this match and its\n                      // descendants (whose errors bubble here when they\n                      // have no errorComponent of their own): resetting on\n                      // unrelated matches' transitions just re-throws the\n                      // still-stale error and recreates the retried\n                      // subtree mid-settle.\n                      getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}\n                      errorComponent={errorComponent() as any}\n                      onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}\n                      render={RouteContent}\n                    />\n                  )}\n                </Solid.Show>\n              </Dynamic>","<Solid.Show\n                  when={routeErrorComponent()}\n                  fallback={<RouteContent />}\n                >\n                  {(errorComponent) => (\n                    <CatchBoundary\n                      // Scope the reset key to this match and its\n                      // descendants (whose errors bubble here when they\n                      // have no errorComponent of their own): resetting on\n                      // unrelated matches' transitions just re-throws the\n                      // still-stale error and recreates the retried\n                      // subtree mid-settle.\n                      getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}\n                      errorComponent={errorComponent() as any}\n                      onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}\n                      render={RouteContent}\n                    />\n                  )}\n                </Solid.Show>","<RouteContent />","<CatchBoundary\n                      // Scope the reset key to this match and its\n                      // descendants (whose errors bubble here when they\n                      // have no errorComponent of their own): resetting on\n                      // unrelated matches' transitions just re-throws the\n                      // still-stale error and recreates the retried\n                      // subtree mid-settle.\n                      getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}\n                      errorComponent={errorComponent() as any}\n                      onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}\n                      render={RouteContent}\n                    />","getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}","onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}","render={RouteContent}","renderScrollRestoration?.(router, route)","<Solid.Show when={matchState()}>\n      {(currentMatchState) => {\n        const route = Solid.createMemo(() => currentMatchState().route)\n        const currentMatch = Solid.createMemo(() => currentMatchState().match)\n        const componentKey = Solid.createMemo(\n          () => currentMatchState().componentKey,\n        )\n        const OutComponent = Solid.createMemo(\n          () =>\n            route().options.component ??\n            router.options.defaultComponent ??\n            Outlet,\n        )\n        const keyedOut = () => (\n          <Solid.Show when={componentKey()} keyed>\n            {(_key) => <Dynamic component={OutComponent()} />}\n          </Solid.Show>\n        )\n\n        return (\n          <Solid.Switch>\n            <Solid.Match when={currentMatch().status === 'notFound'}>\n              {(_) =>\n                Solid.untrack(() =>\n                  renderRouteNotFound(router, route(), currentMatch().error),\n                )\n              }\n            </Solid.Match>\n            <Solid.Match when={currentMatch().status === 'error'}>\n              {(_) => {\n                const matchError = Solid.untrack(\n                  () => currentMatch().error,\n                ) as Error\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={matchError}\n                          reset={undefined as any}\n                          info={{ componentStack: '' }}\n                        />\n                      ),\n                      'errorComponent',\n                    )\n                  ) : (\n                    <RouteErrorComponent\n                      error={matchError}\n                      reset={undefined as any}\n                      info={{ componentStack: '' }}\n                    />\n                  )\n                }\n\n                throw matchError\n              }}\n            </Solid.Match>\n            <Solid.Match when={currentMatch().status === 'success'}>\n              {keyedOut()}\n            </Solid.Match>\n          </Solid.Switch>\n        )\n      }}\n    </Solid.Show>","<Solid.Show when={componentKey()} keyed>\n            {(_key) => <Dynamic component={OutComponent()} />}\n          </Solid.Show>","<Dynamic component={OutComponent()} />","<Solid.Switch>\n            <Solid.Match when={currentMatch().status === 'notFound'}>\n              {(_) =>\n                Solid.untrack(() =>\n                  renderRouteNotFound(router, route(), currentMatch().error),\n                )\n              }\n            </Solid.Match>\n            <Solid.Match when={currentMatch().status === 'error'}>\n              {(_) => {\n                const matchError = Solid.untrack(\n                  () => currentMatch().error,\n                ) as Error\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={matchError}\n                          reset={undefined as any}\n                          info={{ componentStack: '' }}\n                        />\n                      ),\n                      'errorComponent',\n                    )\n                  ) : (\n                    <RouteErrorComponent\n                      error={matchError}\n                      reset={undefined as any}\n                      info={{ componentStack: '' }}\n                    />\n                  )\n                }\n\n                throw matchError\n              }}\n            </Solid.Match>\n            <Solid.Match when={currentMatch().status === 'success'}>\n              {keyedOut()}\n            </Solid.Match>\n          </Solid.Switch>","<Solid.Match when={currentMatch().status === 'notFound'}>\n              {(_) =>\n                Solid.untrack(() =>\n                  renderRouteNotFound(router, route(), currentMatch().error),\n                )\n              }\n            </Solid.Match>","<Solid.Match when={currentMatch().status === 'error'}>\n              {(_) => {\n                const matchError = Solid.untrack(\n                  () => currentMatch().error,\n                ) as Error\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={matchError}\n                          reset={undefined as any}\n                          info={{ componentStack: '' }}\n                        />\n                      ),\n                      'errorComponent',\n                    )\n                  ) : (\n                    <RouteErrorComponent\n                      error={matchError}\n                      reset={undefined as any}\n                      info={{ componentStack: '' }}\n                    />\n                  )\n                }\n\n                throw matchError\n              }}\n            </Solid.Match>","<RouteErrorComponent\n                          error={matchError}\n                          reset={undefined as any}\n                          info={{ componentStack: '' }}\n                        />","error={matchError}","reset={undefined as any}","info={{ componentStack: '' }}","<RouteErrorComponent\n                      error={matchError}\n                      reset={undefined as any}\n                      info={{ componentStack: '' }}\n                    />","<Solid.Match when={currentMatch().status === 'success'}>\n              {keyedOut()}\n            </Solid.Match>","<Solid.Show\n      when={childRouteId()}\n      keyed\n      fallback={\n        <Solid.Show when={parentNotFound() && route()}>\n          {(resolvedRoute) =>\n            Solid.untrack(() =>\n              renderRouteNotFound(\n                router,\n                resolvedRoute(),\n                parentNotFoundError(),\n              ),\n            )\n          }\n        </Solid.Show>\n      }\n    >\n      {(currentChildRouteId) => {\n        const nextMatch = () => <Match routeId={currentChildRouteId} />\n        return (\n          <Solid.Show when={routeId() === rootRouteId} fallback={nextMatch()}>\n            <Solid.Loading\n              fallback={(() => {\n                if (!childPendingComponent()) {\n                  return null\n                }\n                if (process.env.NODE_ENV !== 'production') {\n                  return renderInNonRouteComponentContext(\n                    () => <Dynamic component={childPendingComponent()} />,\n                    'pendingComponent',\n                  )\n                }\n                return <Dynamic component={childPendingComponent()} />\n              })()}\n            >\n              {nextMatch()}\n            </Solid.Loading>\n          </Solid.Show>\n        )\n      }}\n    </Solid.Show>","<Solid.Show when={parentNotFound() && route()}>\n          {(resolvedRoute) =>\n            Solid.untrack(() =>\n              renderRouteNotFound(\n                router,\n                resolvedRoute(),\n                parentNotFoundError(),\n              ),\n            )\n          }\n        </Solid.Show>","parentNotFound() && route()","<Match routeId={currentChildRouteId} />","routeId={currentChildRouteId}","<Solid.Show when={routeId() === rootRouteId} fallback={nextMatch()}>\n            <Solid.Loading\n              fallback={(() => {\n                if (!childPendingComponent()) {\n                  return null\n                }\n                if (process.env.NODE_ENV !== 'production') {\n                  return renderInNonRouteComponentContext(\n                    () => <Dynamic component={childPendingComponent()} />,\n                    'pendingComponent',\n                  )\n                }\n                return <Dynamic component={childPendingComponent()} />\n              })()}\n            >\n              {nextMatch()}\n            </Solid.Loading>\n          </Solid.Show>","<Solid.Loading\n              fallback={(() => {\n                if (!childPendingComponent()) {\n                  return null\n                }\n                if (process.env.NODE_ENV !== 'production') {\n                  return renderInNonRouteComponentContext(\n                    () => <Dynamic component={childPendingComponent()} />,\n                    'pendingComponent',\n                  )\n                }\n                return <Dynamic component={childPendingComponent()} />\n              })()}\n            >\n              {nextMatch()}\n            </Solid.Loading>","Solid.Loading","<Dynamic component={childPendingComponent()} />"],"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 '@solidjs/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\nconst NearestMatchContext = nearestMatchContext as unknown as Solid.Component<{\n  value: any\n  children?: any\n}>\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  const currentMatch = Solid.createMemo(() =>\n    router.stores.getMatchStore(props.routeId).get(),\n  )\n  const matchState = Solid.createMemo(() => {\n    const match = currentMatch()\n    if (!match) {\n      return null\n    }\n\n    return {\n      routeId: match.routeId,\n      ssr: match.ssr,\n      status: match.status,\n    }\n  })\n  const nearestMatch = [() => props.routeId, currentMatch] as const\n\n  return (\n    <Solid.Show when={matchState()}>\n      {(currentMatchState) => {\n        const route = router.routesById[props.routeId] as AnyRoute\n        const routeOptions = () => {\n          // Lazy route options become observable with the next publication.\n          currentMatchState()\n          return route.options\n        }\n        const resolvePendingComponent = Solid.createMemo(\n          () =>\n            routeOptions().pendingComponent ??\n            router.options.defaultPendingComponent,\n        )\n        const routeErrorComponent = Solid.createMemo(\n          () =>\n            routeOptions().errorComponent ??\n            router.options.defaultErrorComponent,\n        )\n        const routeNotFoundComponent = Solid.createMemo(() =>\n          route.isRoot\n            ? (routeOptions().notFoundComponent ??\n              router.options.notFoundRoute?.options.component ??\n              router.options.defaultNotFoundComponent)\n            : (routeOptions().notFoundComponent ??\n              router.options.defaultNotFoundComponent),\n        )\n        const resolvedNoSsr = Solid.createMemo(\n          () =>\n            currentMatchState().ssr === false ||\n            currentMatchState().ssr === 'data-only',\n        )\n        const ResolvedLoadingBoundary = Solid.createMemo(() =>\n          resolvedNoSsr() ? SafeFragment : Solid.Loading,\n        )\n        const shouldSkipLoadingFallback = Solid.createMemo(() =>\n          (isServer ?? router.isServer)\n            ? resolvedNoSsr()\n            : currentMatchState().ssr === 'data-only',\n        )\n        const ResolvedNotFoundBoundary = Solid.createMemo(() =>\n          routeNotFoundComponent() ? CatchNotFound : SafeFragment,\n        )\n        const ShellComponent = Solid.createMemo(() =>\n          route.isRoot\n            ? ((route.options as RootRouteOptions).shellComponent ??\n              SafeFragment)\n            : SafeFragment,\n        )\n\n        const MatchContent = () => (\n          <Solid.Show\n            when={currentMatchState().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        const RouteContent = () => (\n          <Dynamic\n            component={ResolvedNotFoundBoundary()}\n            fallback={(error: any) => {\n              const notFoundError = getNotFound(error) ?? error\n              notFoundError.routeId ??= currentMatchState().routeId\n\n              if (notFoundError.routeId !== currentMatchState().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                        () => <Dynamic component={resolvePendingComponent()} />,\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        )\n\n        return (\n          <Dynamic component={ShellComponent()}>\n            <NearestMatchContext value={nearestMatch}>\n              <Dynamic\n                component={ResolvedLoadingBoundary()}\n                fallback={(() => {\n                  // Data-only SSR renders the inner fallback on the server, so\n                  // avoid adding an extra loading fallback on the client.\n                  if (shouldSkipLoadingFallback()) {\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                <Solid.Show\n                  when={routeErrorComponent()}\n                  fallback={<RouteContent />}\n                >\n                  {(errorComponent) => (\n                    <CatchBoundary\n                      // Scope the reset key to this match and its\n                      // descendants (whose errors bubble here when they\n                      // have no errorComponent of their own): resetting on\n                      // unrelated matches' transitions just re-throws the\n                      // still-stale error and recreates the retried\n                      // subtree mid-settle.\n                      getResetKey={() => {\n                        const matches = router.stores.matches.get()\n                        const index = matches.findIndex(\n                          (match) => match.routeId === props.routeId,\n                        )\n                        if (index === -1) {\n                          return ''\n                        }\n                        let key = ''\n                        for (let i = index; i < matches.length; i++) {\n                          const match = matches[i]!\n                          key += `${match.status}|${match.updatedAt},`\n                        }\n                        return key\n                      }}\n                      errorComponent={errorComponent() as any}\n                      onCatch={(error: Error) => {\n                        const notFoundError = getNotFound(error)\n                        if (notFoundError) {\n                          notFoundError.routeId ??= currentMatchState().routeId\n                          throw notFoundError\n                        }\n                        if (process.env.NODE_ENV !== 'production') {\n                          console.warn(\n                            `Warning: Error in route match: ${currentMatchState().routeId}`,\n                          )\n                        }\n                        ;(\n                          routeOptions().onCatch ??\n                          router.options.defaultOnCatch\n                        )?.(error)\n                      }}\n                      render={RouteContent}\n                    />\n                  )}\n                </Solid.Show>\n              </Dynamic>\n            </NearestMatchContext>\n\n            {renderScrollRestoration?.(router, route)}\n          </Dynamic>\n        )\n      }}\n    </Solid.Show>\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\n  const matchState = Solid.createMemo(() => {\n    const currentMatch = match()\n    const currentRouteId = routeId()\n    if (!currentMatch || !currentRouteId) {\n      return null\n    }\n\n    const route = router.routesById[currentRouteId] as AnyRoute\n    const remount =\n      route.options.remountDeps ?? router.options.defaultRemountDeps\n    let componentKey: string\n    if (!remount) {\n      componentKey = currentRouteId\n    } else {\n      const deps = remount({\n        routeId: currentRouteId,\n        loaderDeps: currentMatch.loaderDeps,\n        params: currentMatch._strictParams,\n        search: currentMatch._strictSearch,\n      })\n      componentKey = JSON.stringify(deps) ?? currentRouteId\n    }\n\n    return {\n      route,\n      routeId: currentRouteId,\n      match: {\n        id: currentMatch.id,\n        status: currentMatch.status,\n        error: currentMatch.error,\n      },\n      componentKey,\n    }\n  })\n\n  return (\n    <Solid.Show when={matchState()}>\n      {(currentMatchState) => {\n        const route = Solid.createMemo(() => currentMatchState().route)\n        const currentMatch = Solid.createMemo(() => currentMatchState().match)\n        const componentKey = Solid.createMemo(\n          () => currentMatchState().componentKey,\n        )\n        const OutComponent = Solid.createMemo(\n          () =>\n            route().options.component ??\n            router.options.defaultComponent ??\n            Outlet,\n        )\n        const keyedOut = () => (\n          <Solid.Show when={componentKey()} keyed>\n            {(_key) => <Dynamic component={OutComponent()} />}\n          </Solid.Show>\n        )\n\n        return (\n          <Solid.Switch>\n            <Solid.Match when={currentMatch().status === 'notFound'}>\n              {(_) =>\n                Solid.untrack(() =>\n                  renderRouteNotFound(router, route(), currentMatch().error),\n                )\n              }\n            </Solid.Match>\n            <Solid.Match when={currentMatch().status === 'error'}>\n              {(_) => {\n                const matchError = Solid.untrack(\n                  () => currentMatch().error,\n                ) as Error\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={matchError}\n                          reset={undefined as any}\n                          info={{ componentStack: '' }}\n                        />\n                      ),\n                      'errorComponent',\n                    )\n                  ) : (\n                    <RouteErrorComponent\n                      error={matchError}\n                      reset={undefined as any}\n                      info={{ componentStack: '' }}\n                    />\n                  )\n                }\n\n                throw matchError\n              }}\n            </Solid.Match>\n            <Solid.Match when={currentMatch().status === 'success'}>\n              {keyedOut()}\n            </Solid.Match>\n          </Solid.Switch>\n        )\n      }}\n    </Solid.Show>\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 = Solid.createMemo(() => {\n    const currentRouteId = routeId()\n    return currentRouteId\n      ? (router.routesById[currentRouteId] as AnyRoute)\n      : undefined\n  })\n  const parentNotFound = Solid.createMemo(() => parentMatch()?._notFound)\n  const parentNotFoundError = Solid.createMemo(() => parentMatch()?.error)\n  const childRouteId = Solid.createMemo(() => {\n    if (parentNotFound()) {\n      return undefined\n    }\n    const currentRouteId = routeId()\n    if (!currentRouteId) {\n      return undefined\n    }\n    const ids = router.stores.ids.get()\n    return ids[ids.indexOf(currentRouteId) + 1]\n  })\n  const childPendingComponent = Solid.createMemo(() => {\n    const childId = childRouteId()\n    return childId\n      ? ((router.routesById[childId] as AnyRoute).options.pendingComponent ??\n          router.options.defaultPendingComponent)\n      : router.options.defaultPendingComponent\n  })\n\n  return (\n    <Solid.Show\n      when={childRouteId()}\n      keyed\n      fallback={\n        <Solid.Show when={parentNotFound() && route()}>\n          {(resolvedRoute) =>\n            Solid.untrack(() =>\n              renderRouteNotFound(\n                router,\n                resolvedRoute(),\n                parentNotFoundError(),\n              ),\n            )\n          }\n        </Solid.Show>\n      }\n    >\n      {(currentChildRouteId) => {\n        const nextMatch = () => <Match routeId={currentChildRouteId} />\n        return (\n          <Solid.Show when={routeId() === rootRouteId} fallback={nextMatch()}>\n            <Solid.Loading\n              fallback={(() => {\n                if (!childPendingComponent()) {\n                  return null\n                }\n                if (process.env.NODE_ENV !== 'production') {\n                  return renderInNonRouteComponentContext(\n                    () => <Dynamic component={childPendingComponent()} />,\n                    'pendingComponent',\n                  )\n                }\n                return <Dynamic component={childPendingComponent()} />\n              })()}\n            >\n              {nextMatch()}\n            </Solid.Loading>\n          </Solid.Show>\n        )\n      }}\n    </Solid.Show>\n  )\n}\n"],"mappings":"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"}