@tanstack/react-router 0.0.1-beta.34 → 0.0.1-beta.36
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.
- package/build/cjs/index.js +8 -8
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.js +8 -8
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +50 -50
- package/build/umd/index.development.js +105 -96
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +2 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +10 -8
package/build/cjs/index.js
CHANGED
|
@@ -202,7 +202,7 @@ function createReactRouter(opts) {
|
|
|
202
202
|
useRouterSubscription(router);
|
|
203
203
|
routerCore.invariant(routeId !== routerCore.rootRouteId, "\"" + routerCore.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + routerCore.rootRouteId + "\")?");
|
|
204
204
|
const nearestMatch = useNearestMatch();
|
|
205
|
-
const match = router.state.
|
|
205
|
+
const match = router.state.currentMatches.find(d => d.routeId === routeId);
|
|
206
206
|
if ((_opts$strict = opts == null ? void 0 : opts.strict) != null ? _opts$strict : true) {
|
|
207
207
|
routerCore.invariant(match, "Could not find an active match for \"" + routeId + "\"!");
|
|
208
208
|
routerCore.invariant(nearestMatch.routeId == (match == null ? void 0 : match.routeId), "useMatch(\"" + (match == null ? void 0 : match.routeId) + "\") is being called in a component that is meant to render the '" + nearestMatch.routeId + "' route. Did you mean to 'useMatch(\"" + (match == null ? void 0 : match.routeId) + "\", { strict: false })' or 'useRoute(\"" + (match == null ? void 0 : match.routeId) + "\")' instead?");
|
|
@@ -247,7 +247,7 @@ function RouterProvider(_ref2) {
|
|
|
247
247
|
router: router
|
|
248
248
|
}
|
|
249
249
|
}, /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
|
|
250
|
-
value: [undefined, ...router.state.
|
|
250
|
+
value: [undefined, ...router.state.currentMatches]
|
|
251
251
|
}, /*#__PURE__*/React__namespace.createElement(Outlet, null))));
|
|
252
252
|
}
|
|
253
253
|
function useRouter() {
|
|
@@ -273,7 +273,7 @@ function useRoute(routeId) {
|
|
|
273
273
|
return router.useRoute(routeId);
|
|
274
274
|
}
|
|
275
275
|
function useSearch(_routeId) {
|
|
276
|
-
return useRouter().state.
|
|
276
|
+
return useRouter().state.currentLocation.search;
|
|
277
277
|
}
|
|
278
278
|
function linkProps(props) {
|
|
279
279
|
const router = useRouter();
|
|
@@ -347,10 +347,10 @@ function CatchBoundaryInner(props) {
|
|
|
347
347
|
const errorComponent = (_props$errorComponent = props.errorComponent) != null ? _props$errorComponent : DefaultErrorBoundary;
|
|
348
348
|
React__namespace.useEffect(() => {
|
|
349
349
|
if (activeErrorState) {
|
|
350
|
-
let prevKey = router.state.
|
|
350
|
+
let prevKey = router.state.currentLocation.key;
|
|
351
351
|
return router.subscribe(() => {
|
|
352
|
-
if (router.state.
|
|
353
|
-
prevKey = router.state.
|
|
352
|
+
if (router.state.currentLocation.key !== prevKey) {
|
|
353
|
+
prevKey = router.state.currentLocation.key;
|
|
354
354
|
setActiveErrorState({});
|
|
355
355
|
}
|
|
356
356
|
});
|
|
@@ -404,11 +404,11 @@ function usePrompt(message, when) {
|
|
|
404
404
|
unblock();
|
|
405
405
|
transition.retry();
|
|
406
406
|
} else {
|
|
407
|
-
router.state.
|
|
407
|
+
router.state.currentLocation.pathname = window.location.pathname;
|
|
408
408
|
}
|
|
409
409
|
});
|
|
410
410
|
return unblock;
|
|
411
|
-
}, [when,
|
|
411
|
+
}, [when, message]);
|
|
412
412
|
}
|
|
413
413
|
function Prompt(_ref7) {
|
|
414
414
|
let {
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Route,\n RegisteredAllRouteInfo,\n RegisteredRouter,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport type SyncRouteComponent<TProps = {}> = (\n props: TProps,\n) => JSX.Element | React.ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<SyncRouteComponent<TProps>>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let promise: Promise<SyncRouteComponent>\n let resolvedComp: SyncRouteComponent\n\n const forwardedComp = React.forwardRef((props, ref) => {\n const resolvedCompRef = React.useRef(resolvedComp || lazyComp)\n return React.createElement(\n resolvedCompRef.current as any,\n { ...(ref ? { ref } : {}), ...props } as any,\n )\n })\n\n const finalComp = forwardedComp as unknown as RouteComponent\n\n finalComp.preload = () => {\n if (!promise) {\n promise = importer().then((module) => {\n resolvedComp = module.default\n return resolvedComp\n })\n }\n\n return promise\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkOptions<TAllRouteInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type MakeMatchRouteOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = ToOptions<TAllRouteInfo, TFrom, TTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteConfig, TRouterContext> {\n // ssrFooter?: () => JSX.Element | React.ReactNode\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, '/', TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nexport function Link<TTo extends string = '.'>(\n props: MakeLinkOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return <router.Link {...(props as any)} />\n}\n\ntype MatchesContextValue = RouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n TRouterContext = unknown,\n>(\n opts: RouterOptions<TRouteConfig, TRouterContext>,\n): Router<TRouteConfig, TAllRouteInfo, TRouterContext> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to,\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition)\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n else handleClick(e)\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.forEach((handler) => {\n if (e.defaultPrevented) return\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([reactHandleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n },\n Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n }) as any,\n MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const nearestMatch = useNearestMatch()\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n nearestMatch.routeId == match?.routeId,\n `useMatch(\"${\n match?.routeId as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.routeId\n }' route. Did you mean to 'useMatch(\"${\n match?.routeId as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.routeId as string\n }\")' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute(rootRouteId), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n loadComponent: async (component) => {\n if (component.preload && typeof document !== 'undefined') {\n component.preload()\n // return await component.preload()\n }\n\n return component as any\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TAllRouteInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n>({\n router,\n ...rest\n}: RouterProps<TRouteConfig, TAllRouteInfo, TRouterContext>) {\n router.update(rest)\n\n useRouterSubscription(router)\n React.useEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <MatchesProvider value={[undefined!, ...router.state.matches]}>\n <Outlet />\n </MatchesProvider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n>(\n routeId: TId,\n opts?: { strict?: TStrict },\n): TStrict extends true\n ? RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n :\n | RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n | undefined {\n const router = useRouter()\n return router.useMatch(routeId as any, opts) as any\n}\n\nexport function useNearestMatch(): RouteMatch<\n RegisteredAllRouteInfo,\n RouteInfo\n> {\n const runtimeMatch = useMatches()[0]\n\n invariant(runtimeMatch, `Could not find a nearest match!`)\n\n return runtimeMatch as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n>(\n routeId: TId,\n): Route<RegisteredAllRouteInfo, RegisteredAllRouteInfo['routeInfoById'][TId]> {\n const router = useRouter()\n return router.useRoute(routeId as any) as any\n}\n\nexport function useSearch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'] = keyof RegisteredAllRouteInfo['routeInfoById'],\n>(_routeId?: TId): RegisteredAllRouteInfo['fullSearchSchema'] {\n return useRouter().state.location.search\n}\n\nexport function linkProps<TTo extends string = '.'>(\n props: MakeLinkPropsOptions<RegisteredAllRouteInfo, '/', TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n return router.linkProps(props as any)\n}\n\nexport function MatchRoute<TTo extends string = '.'>(\n props: MakeMatchRouteOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return React.createElement(router.MatchRoute, props as any)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n if (!match) {\n return null\n }\n\n const PendingComponent = (match.__.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.__.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <MatchesProvider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.routeId}\n errorComponent={errorComponent}\n match={match as any}\n >\n {\n ((): React.ReactNode => {\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'success') {\n return React.createElement(\n (match.__.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n throw match.__.loadPromise\n })() as JSX.Element\n }\n </CatchBoundary>\n </React.Suspense>\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.matchId === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.state.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.matchId}`)\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouter()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n\n React.useEffect(() => {\n if (activeErrorState) {\n let prevKey = router.state.location.key\n return router.subscribe(() => {\n if (router.state.location.key !== prevKey) {\n prevKey = router.state.location.key\n setActiveErrorState({} as any)\n }\n })\n }\n\n return\n }, [activeErrorState])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n props.reset()\n }, [props.errorState.error])\n\n if (activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.state.location.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, location, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["lazy","importer","lazyComp","React","promise","resolvedComp","forwardedComp","forwardRef","props","ref","resolvedCompRef","useRef","createElement","current","finalComp","preload","then","module","default","Link","router","useRouter","matchesContext","createContext","routerContext","MatchesProvider","useRouterSubscription","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","Boolean","join","role","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","nearestMatch","useNearestMatch","match","matches","find","d","strict","routeExt","Object","assign","createRoute","loadComponent","component","document","RouterProvider","_objectWithoutPropertiesLoose","update","useEffect","mount","value","useContext","warning","useMatches","runtimeMatch","useSearch","_routeId","location","search","Outlet","slice","defaultPending","useCallback","PendingComponent","__","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","status","error","defaultComponent","loadPromise","CatchBoundary","Component","info","componentDidCatch","console","matchId","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","errorState","DefaultErrorBoundary","prevKey","key","reset","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","pathname","Prompt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Route,\n RegisteredAllRouteInfo,\n RegisteredRouter,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport type SyncRouteComponent<TProps = {}> = (\n props: TProps,\n) => JSX.Element | React.ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<SyncRouteComponent<TProps>>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let promise: Promise<SyncRouteComponent>\n let resolvedComp: SyncRouteComponent\n\n const forwardedComp = React.forwardRef((props, ref) => {\n const resolvedCompRef = React.useRef(resolvedComp || lazyComp)\n return React.createElement(\n resolvedCompRef.current as any,\n { ...(ref ? { ref } : {}), ...props } as any,\n )\n })\n\n const finalComp = forwardedComp as unknown as RouteComponent\n\n finalComp.preload = () => {\n if (!promise) {\n promise = importer().then((module) => {\n resolvedComp = module.default\n return resolvedComp\n })\n }\n\n return promise\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkOptions<TAllRouteInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type MakeMatchRouteOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = ToOptions<TAllRouteInfo, TFrom, TTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteConfig, TRouterContext> {\n // ssrFooter?: () => JSX.Element | React.ReactNode\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, '/', TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nexport function Link<TTo extends string = '.'>(\n props: MakeLinkOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return <router.Link {...(props as any)} />\n}\n\ntype MatchesContextValue = RouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n TRouterContext = unknown,\n>(\n opts: RouterOptions<TRouteConfig, TRouterContext>,\n): Router<TRouteConfig, TAllRouteInfo, TRouterContext> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to,\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition)\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n else handleClick(e)\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.forEach((handler) => {\n if (e.defaultPrevented) return\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([reactHandleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n },\n Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n }) as any,\n MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const nearestMatch = useNearestMatch()\n const match = router.state.currentMatches.find(\n (d) => d.routeId === routeId,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n nearestMatch.routeId == match?.routeId,\n `useMatch(\"${\n match?.routeId as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.routeId\n }' route. Did you mean to 'useMatch(\"${\n match?.routeId as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.routeId as string\n }\")' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute(rootRouteId), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n loadComponent: async (component) => {\n if (component.preload && typeof document !== 'undefined') {\n component.preload()\n // return await component.preload()\n }\n\n return component as any\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TAllRouteInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n>({\n router,\n ...rest\n}: RouterProps<TRouteConfig, TAllRouteInfo, TRouterContext>) {\n router.update(rest)\n\n useRouterSubscription(router)\n React.useEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <MatchesProvider value={[undefined!, ...router.state.currentMatches]}>\n <Outlet />\n </MatchesProvider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n>(\n routeId: TId,\n opts?: { strict?: TStrict },\n): TStrict extends true\n ? RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n :\n | RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n | undefined {\n const router = useRouter()\n return router.useMatch(routeId as any, opts) as any\n}\n\nexport function useNearestMatch(): RouteMatch<\n RegisteredAllRouteInfo,\n RouteInfo\n> {\n const runtimeMatch = useMatches()[0]\n\n invariant(runtimeMatch, `Could not find a nearest match!`)\n\n return runtimeMatch as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n>(\n routeId: TId,\n): Route<RegisteredAllRouteInfo, RegisteredAllRouteInfo['routeInfoById'][TId]> {\n const router = useRouter()\n return router.useRoute(routeId as any) as any\n}\n\nexport function useSearch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'] = keyof RegisteredAllRouteInfo['routeInfoById'],\n>(_routeId?: TId): RegisteredAllRouteInfo['fullSearchSchema'] {\n return useRouter().state.currentLocation.search\n}\n\nexport function linkProps<TTo extends string = '.'>(\n props: MakeLinkPropsOptions<RegisteredAllRouteInfo, '/', TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n return router.linkProps(props as any)\n}\n\nexport function MatchRoute<TTo extends string = '.'>(\n props: MakeMatchRouteOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return React.createElement(router.MatchRoute, props as any)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n if (!match) {\n return null\n }\n\n const PendingComponent = (match.__.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.__.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <MatchesProvider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.routeId}\n errorComponent={errorComponent}\n match={match as any}\n >\n {\n ((): React.ReactNode => {\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'success') {\n return React.createElement(\n (match.__.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n throw match.__.loadPromise\n })() as JSX.Element\n }\n </CatchBoundary>\n </React.Suspense>\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.matchId === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.state.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.matchId}`)\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouter()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n\n React.useEffect(() => {\n if (activeErrorState) {\n let prevKey = router.state.currentLocation.key\n return router.subscribe(() => {\n if (router.state.currentLocation.key !== prevKey) {\n prevKey = router.state.currentLocation.key\n setActiveErrorState({} as any)\n }\n })\n }\n\n return\n }, [activeErrorState])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n props.reset()\n }, [props.errorState.error])\n\n if (activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.state.currentLocation.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["lazy","importer","lazyComp","React","promise","resolvedComp","forwardedComp","forwardRef","props","ref","resolvedCompRef","useRef","createElement","current","finalComp","preload","then","module","default","Link","router","useRouter","matchesContext","createContext","routerContext","MatchesProvider","useRouterSubscription","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","Boolean","join","role","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","nearestMatch","useNearestMatch","match","currentMatches","find","d","strict","routeExt","Object","assign","createRoute","loadComponent","component","document","RouterProvider","_objectWithoutPropertiesLoose","update","useEffect","mount","value","useContext","warning","useMatches","runtimeMatch","useSearch","_routeId","currentLocation","search","Outlet","matches","slice","defaultPending","useCallback","PendingComponent","__","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","status","error","defaultComponent","loadPromise","CatchBoundary","Component","info","componentDidCatch","console","matchId","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","errorState","DefaultErrorBoundary","prevKey","key","reset","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","pathname","location","Prompt"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -205,7 +205,7 @@ function createReactRouter(opts) {
|
|
|
205
205
|
useRouterSubscription(router);
|
|
206
206
|
invariant(routeId !== rootRouteId, "\"" + rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + rootRouteId + "\")?");
|
|
207
207
|
const nearestMatch = useNearestMatch();
|
|
208
|
-
const match = router.state.
|
|
208
|
+
const match = router.state.currentMatches.find(d => d.routeId === routeId);
|
|
209
209
|
if ((_opts$strict = opts == null ? void 0 : opts.strict) != null ? _opts$strict : true) {
|
|
210
210
|
invariant(match, "Could not find an active match for \"" + routeId + "\"!");
|
|
211
211
|
invariant(nearestMatch.routeId == (match == null ? void 0 : match.routeId), "useMatch(\"" + (match == null ? void 0 : match.routeId) + "\") is being called in a component that is meant to render the '" + nearestMatch.routeId + "' route. Did you mean to 'useMatch(\"" + (match == null ? void 0 : match.routeId) + "\", { strict: false })' or 'useRoute(\"" + (match == null ? void 0 : match.routeId) + "\")' instead?");
|
|
@@ -250,7 +250,7 @@ function RouterProvider(_ref2) {
|
|
|
250
250
|
router: router
|
|
251
251
|
}
|
|
252
252
|
}, /*#__PURE__*/React.createElement(MatchesProvider, {
|
|
253
|
-
value: [undefined, ...router.state.
|
|
253
|
+
value: [undefined, ...router.state.currentMatches]
|
|
254
254
|
}, /*#__PURE__*/React.createElement(Outlet, null))));
|
|
255
255
|
}
|
|
256
256
|
function useRouter() {
|
|
@@ -276,7 +276,7 @@ function useRoute(routeId) {
|
|
|
276
276
|
return router.useRoute(routeId);
|
|
277
277
|
}
|
|
278
278
|
function useSearch(_routeId) {
|
|
279
|
-
return useRouter().state.
|
|
279
|
+
return useRouter().state.currentLocation.search;
|
|
280
280
|
}
|
|
281
281
|
function linkProps(props) {
|
|
282
282
|
const router = useRouter();
|
|
@@ -350,10 +350,10 @@ function CatchBoundaryInner(props) {
|
|
|
350
350
|
const errorComponent = (_props$errorComponent = props.errorComponent) != null ? _props$errorComponent : DefaultErrorBoundary;
|
|
351
351
|
React.useEffect(() => {
|
|
352
352
|
if (activeErrorState) {
|
|
353
|
-
let prevKey = router.state.
|
|
353
|
+
let prevKey = router.state.currentLocation.key;
|
|
354
354
|
return router.subscribe(() => {
|
|
355
|
-
if (router.state.
|
|
356
|
-
prevKey = router.state.
|
|
355
|
+
if (router.state.currentLocation.key !== prevKey) {
|
|
356
|
+
prevKey = router.state.currentLocation.key;
|
|
357
357
|
setActiveErrorState({});
|
|
358
358
|
}
|
|
359
359
|
});
|
|
@@ -407,11 +407,11 @@ function usePrompt(message, when) {
|
|
|
407
407
|
unblock();
|
|
408
408
|
transition.retry();
|
|
409
409
|
} else {
|
|
410
|
-
router.state.
|
|
410
|
+
router.state.currentLocation.pathname = window.location.pathname;
|
|
411
411
|
}
|
|
412
412
|
});
|
|
413
413
|
return unblock;
|
|
414
|
-
}, [when,
|
|
414
|
+
}, [when, message]);
|
|
415
415
|
}
|
|
416
416
|
function Prompt(_ref7) {
|
|
417
417
|
let {
|
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Route,\n RegisteredAllRouteInfo,\n RegisteredRouter,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport type SyncRouteComponent<TProps = {}> = (\n props: TProps,\n) => JSX.Element | React.ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<SyncRouteComponent<TProps>>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let promise: Promise<SyncRouteComponent>\n let resolvedComp: SyncRouteComponent\n\n const forwardedComp = React.forwardRef((props, ref) => {\n const resolvedCompRef = React.useRef(resolvedComp || lazyComp)\n return React.createElement(\n resolvedCompRef.current as any,\n { ...(ref ? { ref } : {}), ...props } as any,\n )\n })\n\n const finalComp = forwardedComp as unknown as RouteComponent\n\n finalComp.preload = () => {\n if (!promise) {\n promise = importer().then((module) => {\n resolvedComp = module.default\n return resolvedComp\n })\n }\n\n return promise\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkOptions<TAllRouteInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type MakeMatchRouteOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = ToOptions<TAllRouteInfo, TFrom, TTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteConfig, TRouterContext> {\n // ssrFooter?: () => JSX.Element | React.ReactNode\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, '/', TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nexport function Link<TTo extends string = '.'>(\n props: MakeLinkOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return <router.Link {...(props as any)} />\n}\n\ntype MatchesContextValue = RouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n TRouterContext = unknown,\n>(\n opts: RouterOptions<TRouteConfig, TRouterContext>,\n): Router<TRouteConfig, TAllRouteInfo, TRouterContext> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to,\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition)\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n else handleClick(e)\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.forEach((handler) => {\n if (e.defaultPrevented) return\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([reactHandleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n },\n Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n }) as any,\n MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const nearestMatch = useNearestMatch()\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n nearestMatch.routeId == match?.routeId,\n `useMatch(\"${\n match?.routeId as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.routeId\n }' route. Did you mean to 'useMatch(\"${\n match?.routeId as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.routeId as string\n }\")' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute(rootRouteId), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n loadComponent: async (component) => {\n if (component.preload && typeof document !== 'undefined') {\n component.preload()\n // return await component.preload()\n }\n\n return component as any\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TAllRouteInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n>({\n router,\n ...rest\n}: RouterProps<TRouteConfig, TAllRouteInfo, TRouterContext>) {\n router.update(rest)\n\n useRouterSubscription(router)\n React.useEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <MatchesProvider value={[undefined!, ...router.state.matches]}>\n <Outlet />\n </MatchesProvider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n>(\n routeId: TId,\n opts?: { strict?: TStrict },\n): TStrict extends true\n ? RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n :\n | RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n | undefined {\n const router = useRouter()\n return router.useMatch(routeId as any, opts) as any\n}\n\nexport function useNearestMatch(): RouteMatch<\n RegisteredAllRouteInfo,\n RouteInfo\n> {\n const runtimeMatch = useMatches()[0]\n\n invariant(runtimeMatch, `Could not find a nearest match!`)\n\n return runtimeMatch as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n>(\n routeId: TId,\n): Route<RegisteredAllRouteInfo, RegisteredAllRouteInfo['routeInfoById'][TId]> {\n const router = useRouter()\n return router.useRoute(routeId as any) as any\n}\n\nexport function useSearch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'] = keyof RegisteredAllRouteInfo['routeInfoById'],\n>(_routeId?: TId): RegisteredAllRouteInfo['fullSearchSchema'] {\n return useRouter().state.location.search\n}\n\nexport function linkProps<TTo extends string = '.'>(\n props: MakeLinkPropsOptions<RegisteredAllRouteInfo, '/', TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n return router.linkProps(props as any)\n}\n\nexport function MatchRoute<TTo extends string = '.'>(\n props: MakeMatchRouteOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return React.createElement(router.MatchRoute, props as any)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n if (!match) {\n return null\n }\n\n const PendingComponent = (match.__.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.__.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <MatchesProvider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.routeId}\n errorComponent={errorComponent}\n match={match as any}\n >\n {\n ((): React.ReactNode => {\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'success') {\n return React.createElement(\n (match.__.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n throw match.__.loadPromise\n })() as JSX.Element\n }\n </CatchBoundary>\n </React.Suspense>\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.matchId === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.state.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.matchId}`)\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouter()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n\n React.useEffect(() => {\n if (activeErrorState) {\n let prevKey = router.state.location.key\n return router.subscribe(() => {\n if (router.state.location.key !== prevKey) {\n prevKey = router.state.location.key\n setActiveErrorState({} as any)\n }\n })\n }\n\n return\n }, [activeErrorState])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n props.reset()\n }, [props.errorState.error])\n\n if (activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.state.location.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, location, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["lazy","importer","lazyComp","React","promise","resolvedComp","forwardedComp","forwardRef","props","ref","resolvedCompRef","useRef","createElement","current","finalComp","preload","then","module","default","Link","router","useRouter","matchesContext","createContext","routerContext","MatchesProvider","useRouterSubscription","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","filter","Boolean","join","role","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","nearestMatch","useNearestMatch","match","matches","find","d","strict","routeExt","Object","assign","createRoute","loadComponent","component","document","RouterProvider","update","useEffect","mount","value","useContext","warning","useMatches","runtimeMatch","useSearch","_routeId","location","search","Outlet","slice","defaultPending","useCallback","PendingComponent","__","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","status","error","defaultComponent","loadPromise","CatchBoundary","Component","info","componentDidCatch","console","matchId","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","errorState","DefaultErrorBoundary","prevKey","key","reset","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","pathname","Prompt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Route,\n RegisteredAllRouteInfo,\n RegisteredRouter,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport type SyncRouteComponent<TProps = {}> = (\n props: TProps,\n) => JSX.Element | React.ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<SyncRouteComponent<TProps>>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let promise: Promise<SyncRouteComponent>\n let resolvedComp: SyncRouteComponent\n\n const forwardedComp = React.forwardRef((props, ref) => {\n const resolvedCompRef = React.useRef(resolvedComp || lazyComp)\n return React.createElement(\n resolvedCompRef.current as any,\n { ...(ref ? { ref } : {}), ...props } as any,\n )\n })\n\n const finalComp = forwardedComp as unknown as RouteComponent\n\n finalComp.preload = () => {\n if (!promise) {\n promise = importer().then((module) => {\n resolvedComp = module.default\n return resolvedComp\n })\n }\n\n return promise\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkOptions<TAllRouteInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type MakeMatchRouteOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = ToOptions<TAllRouteInfo, TFrom, TTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteConfig, TRouterContext> {\n // ssrFooter?: () => JSX.Element | React.ReactNode\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, '/', TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: MakeLinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nexport function Link<TTo extends string = '.'>(\n props: MakeLinkOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return <router.Link {...(props as any)} />\n}\n\ntype MatchesContextValue = RouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n TRouterContext = unknown,\n>(\n opts: RouterOptions<TRouteConfig, TRouterContext>,\n): Router<TRouteConfig, TAllRouteInfo, TRouterContext> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to,\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition)\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n else handleClick(e)\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.forEach((handler) => {\n if (e.defaultPrevented) return\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([reactHandleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n },\n Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n }) as any,\n MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const nearestMatch = useNearestMatch()\n const match = router.state.currentMatches.find(\n (d) => d.routeId === routeId,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n nearestMatch.routeId == match?.routeId,\n `useMatch(\"${\n match?.routeId as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.routeId\n }' route. Did you mean to 'useMatch(\"${\n match?.routeId as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.routeId as string\n }\")' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute(rootRouteId), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n loadComponent: async (component) => {\n if (component.preload && typeof document !== 'undefined') {\n component.preload()\n // return await component.preload()\n }\n\n return component as any\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TAllRouteInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n>({\n router,\n ...rest\n}: RouterProps<TRouteConfig, TAllRouteInfo, TRouterContext>) {\n router.update(rest)\n\n useRouterSubscription(router)\n React.useEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <MatchesProvider value={[undefined!, ...router.state.currentMatches]}>\n <Outlet />\n </MatchesProvider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n>(\n routeId: TId,\n opts?: { strict?: TStrict },\n): TStrict extends true\n ? RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n :\n | RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n | undefined {\n const router = useRouter()\n return router.useMatch(routeId as any, opts) as any\n}\n\nexport function useNearestMatch(): RouteMatch<\n RegisteredAllRouteInfo,\n RouteInfo\n> {\n const runtimeMatch = useMatches()[0]\n\n invariant(runtimeMatch, `Could not find a nearest match!`)\n\n return runtimeMatch as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n>(\n routeId: TId,\n): Route<RegisteredAllRouteInfo, RegisteredAllRouteInfo['routeInfoById'][TId]> {\n const router = useRouter()\n return router.useRoute(routeId as any) as any\n}\n\nexport function useSearch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'] = keyof RegisteredAllRouteInfo['routeInfoById'],\n>(_routeId?: TId): RegisteredAllRouteInfo['fullSearchSchema'] {\n return useRouter().state.currentLocation.search\n}\n\nexport function linkProps<TTo extends string = '.'>(\n props: MakeLinkPropsOptions<RegisteredAllRouteInfo, '/', TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n return router.linkProps(props as any)\n}\n\nexport function MatchRoute<TTo extends string = '.'>(\n props: MakeMatchRouteOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return React.createElement(router.MatchRoute, props as any)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n if (!match) {\n return null\n }\n\n const PendingComponent = (match.__.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.__.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <MatchesProvider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.routeId}\n errorComponent={errorComponent}\n match={match as any}\n >\n {\n ((): React.ReactNode => {\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'success') {\n return React.createElement(\n (match.__.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n throw match.__.loadPromise\n })() as JSX.Element\n }\n </CatchBoundary>\n </React.Suspense>\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.matchId === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.state.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.matchId}`)\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouter()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n\n React.useEffect(() => {\n if (activeErrorState) {\n let prevKey = router.state.currentLocation.key\n return router.subscribe(() => {\n if (router.state.currentLocation.key !== prevKey) {\n prevKey = router.state.currentLocation.key\n setActiveErrorState({} as any)\n }\n })\n }\n\n return\n }, [activeErrorState])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n props.reset()\n }, [props.errorState.error])\n\n if (activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.state.currentLocation.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["lazy","importer","lazyComp","React","promise","resolvedComp","forwardedComp","forwardRef","props","ref","resolvedCompRef","useRef","createElement","current","finalComp","preload","then","module","default","Link","router","useRouter","matchesContext","createContext","routerContext","MatchesProvider","useRouterSubscription","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","filter","Boolean","join","role","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","nearestMatch","useNearestMatch","match","currentMatches","find","d","strict","routeExt","Object","assign","createRoute","loadComponent","component","document","RouterProvider","update","useEffect","mount","value","useContext","warning","useMatches","runtimeMatch","useSearch","_routeId","currentLocation","search","Outlet","matches","slice","defaultPending","useCallback","PendingComponent","__","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","status","error","defaultComponent","loadPromise","CatchBoundary","Component","info","componentDidCatch","console","matchId","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","errorState","DefaultErrorBoundary","prevKey","key","reset","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","pathname","location","Prompt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDO,SAASA,IAAI,CAClBC,QAAwD,EACxC;AAChB,EAAA,MAAMC,QAAQ,gBAAGC,KAAK,CAACH,IAAI,CAACC,QAAQ,CAAQ,CAAA;AAC5C,EAAA,IAAIG,OAAoC,CAAA;AACxC,EAAA,IAAIC,YAAgC,CAAA;EAEpC,MAAMC,aAAa,gBAAGH,KAAK,CAACI,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;IACrD,MAAMC,eAAe,GAAGP,KAAK,CAACQ,MAAM,CAACN,YAAY,IAAIH,QAAQ,CAAC,CAAA;IAC9D,oBAAOC,KAAK,CAACS,aAAa,CACxBF,eAAe,CAACG,OAAO,EACjBJ,QAAAA,CAAAA,EAAAA,EAAAA,GAAG,GAAG;AAAEA,MAAAA,GAAAA;AAAI,KAAC,GAAG,EAAE,EAAMD,KAAK,CACpC,CAAA,CAAA;AACH,GAAC,CAAC,CAAA;EAEF,MAAMM,SAAS,GAAGR,aAA0C,CAAA;EAE5DQ,SAAS,CAACC,OAAO,GAAG,MAAM;IACxB,IAAI,CAACX,OAAO,EAAE;AACZA,MAAAA,OAAO,GAAGH,QAAQ,EAAE,CAACe,IAAI,CAAEC,MAAM,IAAK;QACpCZ,YAAY,GAAGY,MAAM,CAACC,OAAO,CAAA;AAC7B,QAAA,OAAOb,YAAY,CAAA;AACrB,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,OAAOD,OAAO,CAAA;GACf,CAAA;AAED,EAAA,OAAOU,SAAS,CAAA;AAClB,CAAA;AAqIA;;AAEO,SAASK,IAAI,CAClBX,KAAwD,EAC3C;EACb,MAAMY,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,oBAAO,oBAAC,MAAM,CAAC,IAAI,EAAMb,KAAK,CAAY,CAAA;AAC5C,CAAA;AAIO,MAAMc,cAAc,gBAAGnB,KAAK,CAACoB,aAAa,CAAsB,IAAI,EAAE;AACtE,MAAMC,aAAa,gBAAGrB,KAAK,CAACoB,aAAa,CAC9C,IAAI,EACL;AAOM,SAASE,eAAe,CAACjB,KAA2B,EAAE;AAC3D,EAAA,oBAAO,oBAAC,cAAc,CAAC,QAAQ,EAAKA,KAAK,CAAI,CAAA;AAC/C,CAAA;AAEA,MAAMkB,qBAAqB,GAAIN,MAA6B,IAAK;EAC/DO,oBAAoB,CACjBC,EAAE,IAAKR,MAAM,CAACS,SAAS,CAAC,MAAMD,EAAE,EAAE,CAAC,EACpC,MAAMR,MAAM,CAACU,KAAK,EAClB,MAAMV,MAAM,CAACU,KAAK,CACnB,CAAA;AACH,CAAC,CAAA;AAEM,SAASC,iBAAiB,CAK/BC,IAAiD,EACI;AACrD,EAAA,MAAMC,YAAY,GAAG,CACnBC,KAAe,EACfd,MAA6B,KACwC;IACrE,OAAO;MACLe,QAAQ,EAAE,SAACC,QAAAA,CAAAA,UAAU,EAAkB;AAAA,QAAA,IAA5BA,UAAU,KAAA,KAAA,CAAA,EAAA;AAAVA,UAAAA,UAAU,GAAG,GAAG,CAAA;AAAA,SAAA;QACzB,MAAMC,eAAe,GAAGjB,MAAM,CAACkB,WAAW,CACxCJ,KAAK,CAACK,OAAO,EACbH,UAAU,CACX,CAAA;AACD,QAAA,MAAMI,aAAa,GAAGpB,MAAM,CAACqB,QAAQ,CAACJ,eAAe,CAAC,CAAA;QACtDX,qBAAqB,CAACN,MAAM,CAAC,CAAA;AAC7BsB,QAAAA,SAAS,CACPF,aAAa,EAEXH,qCAAAA,GAAAA,eAAe,GAElB,oDAAA,CAAA,CAAA;AACD,QAAA,OAAOG,aAAa,CAAA;OACrB;MACDG,SAAS,EAAGC,OAAO,IAAK;AAAA,QAAA,IAAA,iBAAA,EAAA,kBAAA,CAAA;QACtB,MAAM;AACJ;;YAGAC,MAAM;AACNC,YAAAA,WAAW,GAAG,OAAO;AAAEC,cAAAA,SAAS,EAAE,QAAA;AAAS,aAAC,CAAC;AAC7CC,YAAAA,aAAa,GAAG,OAAO,EAAE,CAAC;YAE1BC,QAAQ;AAUR;YACAC,KAAK;YACLH,SAAS;YACTI,OAAO;YACPC,OAAO;YACPC,YAAY;AACZC,YAAAA,YAAAA;AAIF,WAAC,GAAGV,OAAO;AADNW,UAAAA,IAAI,iCACLX,OAAO,EAAA,SAAA,CAAA,CAAA;AAEX,QAAA,MAAMY,QAAQ,GAAGtB,KAAK,CAACuB,SAAS,CAACb,OAAO,CAAQ,CAAA;AAEhD,QAAA,IAAIY,QAAQ,CAACE,IAAI,KAAK,UAAU,EAAE;UAChC,MAAM;AAAEC,YAAAA,IAAAA;AAAK,WAAC,GAAGH,QAAQ,CAAA;UACzB,OAAO;AAAEG,YAAAA,IAAAA;WAAM,CAAA;AACjB,SAAA;QAEA,MAAM;UACJC,WAAW;UACXC,WAAW;UACXC,WAAW;UACXC,WAAW;UACXC,QAAQ;AACRC,UAAAA,IAAAA;AACF,SAAC,GAAGT,QAAQ,CAAA;QAEZ,MAAMU,gBAAgB,GAAIC,CAAQ,IAAK;UACrC,IAAIhE,KAAK,CAACiE,eAAe;AACvB;YACAjE,KAAK,CAACiE,eAAe,CAAC,MAAM;cAC1BR,WAAW,CAACO,CAAC,CAAC,CAAA;AAChB,aAAC,CAAC,CAAA,KACCP,WAAW,CAACO,CAAC,CAAC,CAAA;SACpB,CAAA;AAED,QAAA,MAAME,eAAe,GAClBC,QAA4C,IAC5CH,CAAuB,IAAK;AAC3B,UAAA,IAAIA,CAAC,CAACI,OAAO,EAAEJ,CAAC,CAACI,OAAO,EAAE,CAAA;AAC1BD,UAAAA,QAAQ,CAACE,OAAO,CAAEC,OAAO,IAAK;YAC5B,IAAIN,CAAC,CAACO,gBAAgB,EAAE,OAAA;AACxB,YAAA,IAAID,OAAO,EAAEA,OAAO,CAACN,CAAC,CAAC,CAAA;AACzB,WAAC,CAAC,CAAA;SACH,CAAA;;AAEH;AACA,QAAA,MAAMQ,mBAA4D,GAChEX,QAAQ,GAAGY,CAAAA,iBAAAA,GAAAA,gBAAgB,CAAC9B,WAAW,EAAE,EAAE,CAAC,KAAI,IAAA,GAAA,iBAAA,GAAA,EAAE,GAAG,EAAE,CAAA;;AAEzD;AACA,QAAA,MAAM+B,qBAA8D,GAClEb,QAAQ,GAAG,EAAE,GAAGY,CAAAA,kBAAAA,GAAAA,gBAAgB,CAAC5B,aAAa,EAAE,EAAE,CAAC,KAAA,IAAA,GAAA,kBAAA,GAAI,EAAE,CAAA;AAE3D,QAAA,OAAA,QAAA,CAAA,EAAA,EACK2B,mBAAmB,EACnBE,qBAAqB,EACrBtB,IAAI,EAAA;AACPI,UAAAA,IAAI,EAAEV,QAAQ,GAAG6B,SAAS,GAAGb,IAAI,CAACN,IAAI;UACtCR,OAAO,EAAEkB,eAAe,CAAC,CAACH,gBAAgB,EAAEf,OAAO,CAAC,CAAC;UACrDC,OAAO,EAAEiB,eAAe,CAAC,CAACR,WAAW,EAAET,OAAO,CAAC,CAAC;UAChDC,YAAY,EAAEgB,eAAe,CAAC,CAACP,WAAW,EAAET,YAAY,CAAC,CAAC;UAC1DC,YAAY,EAAEe,eAAe,CAAC,CAACN,WAAW,EAAET,YAAY,CAAC,CAAC;UAC1DT,MAAM;UACNK,KAAK,EAAA,QAAA,CAAA,EAAA,EACAA,KAAK,EACLyB,mBAAmB,CAACzB,KAAK,EACzB2B,qBAAqB,CAAC3B,KAAK,CAC/B;UACDH,SAAS,EACP,CACEA,SAAS,EACT4B,mBAAmB,CAAC5B,SAAS,EAC7B8B,qBAAqB,CAAC9B,SAAS,CAChC,CACEgC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC,IAAIH,SAAAA;AAAS,SAAA,EACvB7B,QAAQ,GACR;AACEiC,UAAAA,IAAI,EAAE,MAAM;AACZ,UAAA,eAAe,EAAE,IAAA;AACnB,SAAC,GACDJ,SAAS,EAAA;AACb,UAAA,CAAC,aAAa,GAAGd,QAAQ,GAAG,QAAQ,GAAGc,SAAAA;AAAS,SAAA,CAAA,CAAA;OAEnD;MACD3D,IAAI,eAAEhB,KAAK,CAACI,UAAU,CAAC,CAACC,KAAU,EAAEC,GAAG,KAAK;AAC1C,QAAA,MAAMkC,SAAS,GAAGT,KAAK,CAACS,SAAS,CAACnC,KAAK,CAAC,CAAA;QAExCkB,qBAAqB,CAACN,MAAM,CAAC,CAAA;QAE7B,oBACE,KAAA,CAAA,aAAA,CAAA,GAAA,EAAA,QAAA,CAAA;AAEIX,UAAAA,GAAG,EAAEA,GAAAA;AAAU,SAAA,EACZkC,SAAS,EAAA;UACZwC,QAAQ,EACN,OAAO3E,KAAK,CAAC2E,QAAQ,KAAK,UAAU,GAChC3E,KAAK,CAAC2E,QAAQ,CAAC;AACbnB,YAAAA,QAAQ,EAAGrB,SAAS,CAAS,aAAa,CAAC,KAAK,QAAA;WACjD,CAAC,GACFnC,KAAK,CAAC2E,QAAAA;SAEd,CAAA,CAAA,CAAA;AAEN,OAAC,CAAQ;MACTC,UAAU,EAAGpD,IAAI,IAAK;QACpB,MAAM;YAAEqD,OAAO;AAAEC,YAAAA,aAAAA;AAAiC,WAAC,GAAGtD,IAAI;AAAbuB,UAAAA,IAAI,iCAAKvB,IAAI,EAAA,UAAA,CAAA,CAAA;AAE1D,QAAA,MAAMuD,MAAM,GAAGrD,KAAK,CAACsD,UAAU,CAACjC,IAAI,EAAS;UAC3C8B,OAAO;AACPC,UAAAA,aAAAA;AACF,SAAC,CAAC,CAAA;QAEF,IAAI,CAACC,MAAM,EAAE;AACX,UAAA,OAAO,IAAI,CAAA;AACb,SAAA;AAEA,QAAA,OAAO,OAAOvD,IAAI,CAACmD,QAAQ,KAAK,UAAU,GACtCnD,IAAI,CAACmD,QAAQ,CAACI,MAAM,CAAQ,GAC3BvD,IAAI,CAACmD,QAAgB,CAAA;AAC5B,OAAA;KACD,CAAA;GACF,CAAA;AAED,EAAA,MAAMM,UAAU,GAAGC,YAAY,CAAA,QAAA,CAAA,EAAA,EAC1B1D,IAAI,EAAA;IACP0D,YAAY,EAAGtE,MAAM,IAAK;AACxB,MAAA,MAAMuE,SAA+D,GAAG;AACtEC,QAAAA,QAAQ,EAAE,MAAM;UACdlE,qBAAqB,CAACN,MAAM,CAAC,CAAA;UAC7B,OAAOA,MAAM,CAACU,KAAK,CAAA;SACpB;AACD+D,QAAAA,QAAQ,EAAE,CAACtD,OAAO,EAAEP,IAAI,KAAK;AAAA,UAAA,IAAA,YAAA,CAAA;UAC3BN,qBAAqB,CAACN,MAAM,CAAC,CAAA;UAE7BsB,SAAS,CACPH,OAAO,KAAKuD,WAAW,SACnBA,WAAW,GAAA,8DAAA,GAA6DA,WAAW,GACxF,MAAA,CAAA,CAAA;UAED,MAAMC,YAAY,GAAGC,eAAe,EAAE,CAAA;AACtC,UAAA,MAAMC,KAAK,GAAG7E,MAAM,CAACU,KAAK,CAACoE,cAAc,CAACC,IAAI,CAC3CC,CAAC,IAAKA,CAAC,CAAC7D,OAAO,KAAKA,OAAO,CAC7B,CAAA;AAED,UAAA,IAAA,CAAA,YAAA,GAAIP,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEqE,MAAM,KAAA,IAAA,GAAA,YAAA,GAAI,IAAI,EAAE;AACxB3D,YAAAA,SAAS,CACPuD,KAAK,EACkC1D,uCAAAA,GAAAA,OAAO,GAC/C,KAAA,CAAA,CAAA;AAEDG,YAAAA,SAAS,CACPqD,YAAY,CAACxD,OAAO,KAAI0D,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE1D,OAAO,CAAA,EAAA,aAAA,IAEpC0D,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE1D,OAAO,CAEdwD,GAAAA,kEAAAA,GAAAA,YAAY,CAACxD,OAAO,GAEpB0D,uCAAAA,IAAAA,KAAK,oBAALA,KAAK,CAAE1D,OAAO,CAAA,GAAA,yCAAA,IAEd0D,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE1D,OAAO,CAEjB,GAAA,eAAA,CAAA,CAAA;AACH,WAAA;AAEA,UAAA,OAAO0D,KAAK,CAAA;AACd,SAAA;OACD,CAAA;AAED,MAAA,MAAMK,QAAQ,GAAGrE,YAAY,CAACb,MAAM,CAACqB,QAAQ,CAACqD,WAAW,CAAC,EAAE1E,MAAM,CAAC,CAAA;MAEnEmF,MAAM,CAACC,MAAM,CAACpF,MAAM,EAAEuE,SAAS,EAAEW,QAAQ,CAAC,CAAA;KAC3C;AACDG,IAAAA,WAAW,EAAE,IAAuB,IAAA;MAAA,IAAtB;QAAErF,MAAM;AAAEc,QAAAA,KAAAA;OAAO,GAAA,IAAA,CAAA;AAC7B,MAAA,MAAMoE,QAAQ,GAAGrE,YAAY,CAACC,KAAK,EAAEd,MAAM,CAAC,CAAA;AAE5CmF,MAAAA,MAAM,CAACC,MAAM,CAACtE,KAAK,EAAEoE,QAAQ,CAAC,CAAA;KAC/B;IACDI,aAAa,EAAE,MAAOC,SAAS,IAAK;MAClC,IAAIA,SAAS,CAAC5F,OAAO,IAAI,OAAO6F,QAAQ,KAAK,WAAW,EAAE;QACxDD,SAAS,CAAC5F,OAAO,EAAE,CAAA;AACnB;AACF,OAAA;;AAEA,MAAA,OAAO4F,SAAS,CAAA;AAClB,KAAA;GACA,CAAA,CAAA,CAAA;AAEF,EAAA,OAAOlB,UAAU,CAAA;AACnB,CAAA;AAUO,SAASoB,cAAc,CAO+B,KAAA,EAAA;EAAA,IAH3D;AACAzF,MAAAA,MAAAA;KAEyD,GAAA,KAAA;IADtDmC,IAAI,GAAA,6BAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA;AAEPnC,EAAAA,MAAM,CAAC0F,MAAM,CAACvD,IAAI,CAAC,CAAA;EAEnB7B,qBAAqB,CAACN,MAAM,CAAC,CAAA;EAC7BjB,KAAK,CAAC4G,SAAS,CAAC,MAAM;IACpB,OAAO3F,MAAM,CAAC4F,KAAK,EAAE,CAAA;AACvB,GAAC,EAAE,CAAC5F,MAAM,CAAC,CAAC,CAAA;AAEZ,EAAA,oBACE,KACE,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,eAAA,KAAA,CAAA,aAAA,CAAC,aAAa,CAAC,QAAQ,EAAA;AAAC,IAAA,KAAK,EAAE;AAAEA,MAAAA,MAAM,EAAEA,MAAAA;AAAc,KAAA;AAAE,GAAA,eACvD,oBAAC,eAAe,EAAA;IAAC,KAAK,EAAE,CAAC0D,SAAS,EAAG,GAAG1D,MAAM,CAACU,KAAK,CAACoE,cAAc,CAAA;AAAE,GAAA,eACnE,KAAC,CAAA,aAAA,CAAA,MAAM,EAAG,IAAA,CAAA,CACM,CACK,CACxB,CAAA;AAEP,CAAA;AAEO,SAAS7E,SAAS,GAAqB;AAC5C,EAAA,MAAM4F,KAAK,GAAG9G,KAAK,CAAC+G,UAAU,CAAC1F,aAAa,CAAC,CAAA;AAC7C2F,EAAAA,OAAO,CAAC,CAACF,KAAK,EAAE,qDAAqD,CAAC,CAAA;AAEtEvF,EAAAA,qBAAqB,CAACuF,KAAK,CAAC7F,MAAM,CAAC,CAAA;EAEnC,OAAO6F,KAAK,CAAC7F,MAAM,CAAA;AACrB,CAAA;AAEO,SAASgG,UAAU,GAAiB;AACzC,EAAA,OAAOjH,KAAK,CAAC+G,UAAU,CAAC5F,cAAc,CAAC,CAAA;AACzC,CAAA;AAEO,SAASuE,QAAQ,CAItBtD,OAAY,EACZP,IAA2B,EAWX;EAChB,MAAMZ,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,OAAOD,MAAM,CAACyE,QAAQ,CAACtD,OAAO,EAASP,IAAI,CAAC,CAAA;AAC9C,CAAA;AAEO,SAASgE,eAAe,GAG7B;AACA,EAAA,MAAMqB,YAAY,GAAGD,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;EAEpC1E,SAAS,CAAC2E,YAAY,EAAoC,iCAAA,CAAA,CAAA;AAE1D,EAAA,OAAOA,YAAY,CAAA;AACrB,CAAA;AAEO,SAASlF,QAAQ,CAGtBI,OAAY,EACiE;EAC7E,MAAMnB,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,OAAOD,MAAM,CAACe,QAAQ,CAACI,OAAO,CAAQ,CAAA;AACxC,CAAA;AAEO,SAAS+E,SAAS,CAEvBC,QAAc,EAA8C;AAC5D,EAAA,OAAOlG,SAAS,EAAE,CAACS,KAAK,CAAC0F,eAAe,CAACC,MAAM,CAAA;AACjD,CAAA;AAEO,SAAS9E,SAAS,CACvBnC,KAA6D,EACd;EAC/C,MAAMY,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,OAAOD,MAAM,CAACuB,SAAS,CAACnC,KAAK,CAAQ,CAAA;AACvC,CAAA;AAEO,SAAS4E,UAAU,CACxB5E,KAA8D,EACjD;EACb,MAAMY,MAAM,GAAGC,SAAS,EAAE,CAAA;EAC1B,oBAAOlB,KAAK,CAACS,aAAa,CAACQ,MAAM,CAACgE,UAAU,EAAE5E,KAAK,CAAQ,CAAA;AAC7D,CAAA;AAEO,SAASkH,MAAM,GAAG;AAAA,EAAA,IAAA,KAAA,EAAA,qBAAA,EAAA,qBAAA,CAAA;EACvB,MAAMtG,MAAM,GAAGC,SAAS,EAAE,CAAA;EAC1B,MAAMsG,OAAO,GAAGP,UAAU,EAAE,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAA;AACrC,EAAA,MAAM3B,KAAK,GAAG0B,OAAO,CAAC,CAAC,CAAC,CAAA;EAExB,MAAME,cAAc,GAAG1H,KAAK,CAAC2H,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAA;EAExD,IAAI,CAAC7B,KAAK,EAAE;AACV,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,MAAM8B,gBAAgB,GAAA,CAAA,KAAA,GAAA,CAAA,qBAAA,GAAI9B,KAAK,CAAC+B,EAAE,CAACC,gBAAgB,KACjD7G,IAAAA,GAAAA,qBAAAA,GAAAA,MAAM,CAACwB,OAAO,CAACsF,uBAAuB,oBACtCL,cAAsB,CAAA;AAExB,EAAA,MAAMM,cAAc,GAAA,CAAA,qBAAA,GAClBlC,KAAK,CAAC+B,EAAE,CAACG,cAAc,KAAA,IAAA,GAAA,qBAAA,GAAI/G,MAAM,CAACwB,OAAO,CAACwF,qBAAqB,CAAA;AAEjE,EAAA,oBACE,oBAAC,eAAe,EAAA;AAAC,IAAA,KAAK,EAAET,OAAAA;GACtB,eAAA,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAQ,EAAA;IAAC,QAAQ,eAAE,oBAAC,gBAAgB,EAAA,IAAA,CAAA;AAAI,GAAA,eAC7C,oBAAC,aAAa,EAAA;IACZ,GAAG,EAAE1B,KAAK,CAAC1D,OAAQ;AACnB,IAAA,cAAc,EAAE4F,cAAe;AAC/B,IAAA,KAAK,EAAElC,KAAAA;AAAa,GAAA,EAGlB,CAAC,MAAuB;AACtB,IAAA,IAAIA,KAAK,CAACoC,MAAM,KAAK,OAAO,EAAE;MAC5B,MAAMpC,KAAK,CAACqC,KAAK,CAAA;AACnB,KAAA;AAEA,IAAA,IAAIrC,KAAK,CAACoC,MAAM,KAAK,SAAS,EAAE;AAAA,MAAA,IAAA,KAAA,EAAA,KAAA,CAAA;AAC9B,MAAA,oBAAOlI,KAAK,CAACS,aAAa,CACvBqF,CAAAA,KAAAA,GAAAA,CAAAA,KAAAA,GAAAA,KAAK,CAAC+B,EAAE,CAACrB,SAAS,KAAA,IAAA,GAAA,KAAA,GACjBvF,MAAM,CAACwB,OAAO,CAAC2F,gBAAgB,KAAA,IAAA,GAAA,KAAA,GAC/Bb,MAAM,CACT,CAAA;AACH,KAAA;AACA,IAAA,MAAMzB,KAAK,CAAC+B,EAAE,CAACQ,WAAW,CAAA;GAC3B,GAAG,CAEQ,CACD,CAcD,CAAA;AAEtB,CAAA;AAEA,MAAMC,aAAa,SAAStI,KAAK,CAACuI,SAAS,CAIxC;AAAA,EAAA,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACD5G,KAAK,GAAG;AACNwG,MAAAA,KAAK,EAAE,KAAK;AACZK,MAAAA,IAAI,EAAE7D,SAAAA;KACP,CAAA;AAAA,GAAA;AAED8D,EAAAA,iBAAiB,CAACN,KAAU,EAAEK,IAAS,EAAE;IACvCE,OAAO,CAACP,KAAK,CAAA,wBAAA,GAA0B,IAAI,CAAC9H,KAAK,CAACyF,KAAK,CAAC6C,OAAO,CAAG,CAAA;AAClED,IAAAA,OAAO,CAACP,KAAK,CAACA,KAAK,CAAC,CAAA;IAEpB,IAAI,CAACS,QAAQ,CAAC;MACZT,KAAK;AACLK,MAAAA,IAAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AAEAK,EAAAA,MAAM,GAAG;AACP,IAAA,oBACE,KAAC,CAAA,aAAA,CAAA,kBAAkB,EACb,QAAA,CAAA,EAAA,EAAA,IAAI,CAACxI,KAAK,EAAA;MACd,UAAU,EAAE,IAAI,CAACsB,KAAM;AACvB,MAAA,KAAK,EAAE,MAAM,IAAI,CAACiH,QAAQ,CAAC,EAAE,CAAA;KAC7B,CAAA,CAAA,CAAA;AAEN,GAAA;AACF,CAAA;;AAEA;AACA;AACA;AACA,SAASE,kBAAkB,CAACzI,KAK3B,EAAE;AAAA,EAAA,IAAA,qBAAA,CAAA;AACD,EAAA,MAAM,CAAC0I,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhJ,KAAK,CAACyF,QAAQ,CAC5DpF,KAAK,CAAC4I,UAAU,CACjB,CAAA;EACD,MAAMhI,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,EAAA,MAAM8G,cAAc,GAAG3H,CAAAA,qBAAAA,GAAAA,KAAK,CAAC2H,cAAc,oCAAIkB,oBAAoB,CAAA;EAEnElJ,KAAK,CAAC4G,SAAS,CAAC,MAAM;AACpB,IAAA,IAAImC,gBAAgB,EAAE;MACpB,IAAII,OAAO,GAAGlI,MAAM,CAACU,KAAK,CAAC0F,eAAe,CAAC+B,GAAG,CAAA;AAC9C,MAAA,OAAOnI,MAAM,CAACS,SAAS,CAAC,MAAM;QAC5B,IAAIT,MAAM,CAACU,KAAK,CAAC0F,eAAe,CAAC+B,GAAG,KAAKD,OAAO,EAAE;AAChDA,UAAAA,OAAO,GAAGlI,MAAM,CAACU,KAAK,CAAC0F,eAAe,CAAC+B,GAAG,CAAA;UAC1CJ,mBAAmB,CAAC,EAAE,CAAQ,CAAA;AAChC,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,OAAA;AACF,GAAC,EAAE,CAACD,gBAAgB,CAAC,CAAC,CAAA;EAEtB/I,KAAK,CAAC4G,SAAS,CAAC,MAAM;AACpB,IAAA,IAAIvG,KAAK,CAAC4I,UAAU,CAACd,KAAK,EAAE;AAC1Ba,MAAAA,mBAAmB,CAAC3I,KAAK,CAAC4I,UAAU,CAAC,CAAA;AACvC,KAAA;IACA5I,KAAK,CAACgJ,KAAK,EAAE,CAAA;GACd,EAAE,CAAChJ,KAAK,CAAC4I,UAAU,CAACd,KAAK,CAAC,CAAC,CAAA;EAE5B,IAAIY,gBAAgB,CAACZ,KAAK,EAAE;AAC1B,IAAA,oBAAOnI,KAAK,CAACS,aAAa,CAACuH,cAAc,EAAEe,gBAAgB,CAAC,CAAA;AAC9D,GAAA;EAEA,OAAO1I,KAAK,CAAC2E,QAAQ,CAAA;AACvB,CAAA;AAEO,SAASkE,oBAAoB,CAA4B,KAAA,EAAA;EAAA,IAA3B;AAAEf,IAAAA,KAAAA;GAAuB,GAAA,KAAA,CAAA;EAC5D,oBACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAEmB,MAAAA,OAAO,EAAE,OAAO;AAAEC,MAAAA,QAAQ,EAAE,MAAA;AAAO,KAAA;GAC/C,eAAA,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,KAAK,EAAE;AAAEC,MAAAA,QAAQ,EAAE,QAAA;AAAS,KAAA;AAAE,GAAA,EAAA,uBAAA,CAA+B,eACrE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAE,OAAA;AAAQ,KAAA;AAAE,GAAA,CAAG,eACnC,KACE,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,eAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACGtB,KAAK,CAACuB,OAAO,gBACZ,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,KAAK,EAAE;AACLF,MAAAA,QAAQ,EAAE,MAAM;AAChBG,MAAAA,MAAM,EAAE,eAAe;AACvBC,MAAAA,YAAY,EAAE,QAAQ;AACtBN,MAAAA,OAAO,EAAE,OAAO;AAChBO,MAAAA,KAAK,EAAE,KAAA;AACT,KAAA;GAEC1B,EAAAA,KAAK,CAACuB,OAAO,CACT,GACL,IAAI,CACJ,CACF,CACF,CAAA;AAEV,CAAA;AAEO,SAASI,SAAS,CAACJ,OAAe,EAAEK,IAAmB,EAAQ;EACpE,MAAM9I,MAAM,GAAGC,SAAS,EAAE,CAAA;EAE1BlB,KAAK,CAAC4G,SAAS,CAAC,MAAM;IACpB,IAAI,CAACmD,IAAI,EAAE,OAAA;IAEX,IAAIC,OAAO,GAAG/I,MAAM,CAACgJ,OAAO,CAACC,KAAK,CAAEC,UAAU,IAAK;AACjD,MAAA,IAAIC,MAAM,CAACC,OAAO,CAACX,OAAO,CAAC,EAAE;AAC3BM,QAAAA,OAAO,EAAE,CAAA;QACTG,UAAU,CAACG,KAAK,EAAE,CAAA;AACpB,OAAC,MAAM;QACLrJ,MAAM,CAACU,KAAK,CAAC0F,eAAe,CAACkD,QAAQ,GAAGH,MAAM,CAACI,QAAQ,CAACD,QAAQ,CAAA;AAClE,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOP,OAAO,CAAA;AAChB,GAAC,EAAE,CAACD,IAAI,EAAEL,OAAO,CAAC,CAAC,CAAA;AACrB,CAAA;AAEO,SAASe,MAAM,CAA2C,KAAA,EAAA;EAAA,IAA1C;IAAEf,OAAO;IAAEK,IAAI;AAAE/E,IAAAA,QAAAA;GAAuB,GAAA,KAAA,CAAA;EAC7D8E,SAAS,CAACJ,OAAO,EAAEK,IAAI,WAAJA,IAAI,GAAI,IAAI,CAAC,CAAA;AAChC,EAAA,OAAQ/E,QAAQ,IAAA,IAAA,GAARA,QAAQ,GAAI,IAAI,CAAA;AAC1B;;;;"}
|
package/build/stats-html.html
CHANGED
|
@@ -4024,7 +4024,7 @@ var drawChart = (function (exports) {
|
|
|
4024
4024
|
</script>
|
|
4025
4025
|
<script>
|
|
4026
4026
|
/*<!--*/
|
|
4027
|
-
const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"
|
|
4027
|
+
const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"3603-59","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"node_modules/.pnpm","children":[{"name":"@babel+runtime@7.20.6/node_modules/@babel/runtime/helpers/esm/extends.js","uid":"3603-61"},{"name":"history@5.3.0/node_modules/history/index.js","uid":"3603-63"},{"name":"tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","uid":"3603-65"}]},{"name":"packages","children":[{"name":"router-core/build/esm/index.js","uid":"3603-67"},{"name":"react-router/src/index.tsx","uid":"3603-69"}]}]}],"isRoot":true},"nodeParts":{"3603-59":{"renderedLength":793,"gzipLength":363,"brotliLength":0,"mainUid":"3603-58"},"3603-61":{"renderedLength":435,"gzipLength":241,"brotliLength":0,"mainUid":"3603-60"},"3603-63":{"renderedLength":20630,"gzipLength":3800,"brotliLength":0,"mainUid":"3603-62"},"3603-65":{"renderedLength":181,"gzipLength":129,"brotliLength":0,"mainUid":"3603-64"},"3603-67":{"renderedLength":55587,"gzipLength":12436,"brotliLength":0,"mainUid":"3603-66"},"3603-69":{"renderedLength":14205,"gzipLength":3538,"brotliLength":0,"mainUid":"3603-68"}},"nodeMetas":{"3603-58":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"3603-59"},"imported":[],"importedBy":[{"uid":"3603-68"}]},"3603-60":{"id":"/node_modules/.pnpm/@babel+runtime@7.20.6/node_modules/@babel/runtime/helpers/esm/extends.js","moduleParts":{"index.production.js":"3603-61"},"imported":[],"importedBy":[{"uid":"3603-62"}]},"3603-62":{"id":"/node_modules/.pnpm/history@5.3.0/node_modules/history/index.js","moduleParts":{"index.production.js":"3603-63"},"imported":[{"uid":"3603-60"}],"importedBy":[{"uid":"3603-66"}]},"3603-64":{"id":"/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","moduleParts":{"index.production.js":"3603-65"},"imported":[],"importedBy":[{"uid":"3603-66"}]},"3603-66":{"id":"/packages/router-core/build/esm/index.js","moduleParts":{"index.production.js":"3603-67"},"imported":[{"uid":"3603-62"},{"uid":"3603-64"}],"importedBy":[{"uid":"3603-68"}]},"3603-68":{"id":"/packages/react-router/src/index.tsx","moduleParts":{"index.production.js":"3603-69"},"imported":[{"uid":"3603-58"},{"uid":"3603-70"},{"uid":"3603-71"},{"uid":"3603-66"}],"importedBy":[],"isEntry":true},"3603-70":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"3603-68"}],"isExternal":true},"3603-71":{"id":"use-sync-external-store/shim","moduleParts":{},"imported":[],"importedBy":[{"uid":"3603-68"}],"isExternal":true}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
|
|
4028
4028
|
|
|
4029
4029
|
const run = () => {
|
|
4030
4030
|
const width = window.innerWidth;
|