@tanstack/vue-router 0.0.1 → 1.140.0
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/LICENSE +21 -0
- package/README.md +66 -45
- package/dist/esm/Asset.d.ts +2 -0
- package/dist/esm/Asset.js +33 -0
- package/dist/esm/Asset.js.map +1 -0
- package/dist/esm/CatchBoundary.d.ts +19 -0
- package/dist/esm/CatchBoundary.js +135 -0
- package/dist/esm/CatchBoundary.js.map +1 -0
- package/dist/esm/ClientOnly.d.ts +67 -0
- package/dist/esm/HeadContent.d.ts +10 -0
- package/dist/esm/HeadContent.js +116 -0
- package/dist/esm/HeadContent.js.map +1 -0
- package/dist/esm/Match.d.ts +25 -0
- package/dist/esm/Match.js +262 -0
- package/dist/esm/Match.js.map +1 -0
- package/dist/esm/Matches.d.ts +39 -0
- package/dist/esm/Matches.js +186 -0
- package/dist/esm/Matches.js.map +1 -0
- package/dist/esm/RouterProvider.d.ts +33 -0
- package/dist/esm/RouterProvider.js +65 -0
- package/dist/esm/RouterProvider.js.map +1 -0
- package/dist/esm/SafeFragment.d.ts +4 -0
- package/dist/esm/ScriptOnce.d.ts +5 -0
- package/dist/esm/ScriptOnce.js +21 -0
- package/dist/esm/ScriptOnce.js.map +1 -0
- package/dist/esm/Scripts.d.ts +1 -0
- package/dist/esm/Scripts.js +46 -0
- package/dist/esm/Scripts.js.map +1 -0
- package/dist/esm/ScrollRestoration.d.ts +14 -0
- package/dist/esm/ScrollRestoration.js +36 -0
- package/dist/esm/ScrollRestoration.js.map +1 -0
- package/dist/esm/Transitioner.d.ts +2 -0
- package/dist/esm/Transitioner.js +154 -0
- package/dist/esm/Transitioner.js.map +1 -0
- package/dist/esm/awaited.d.ts +12 -0
- package/dist/esm/awaited.js +40 -0
- package/dist/esm/awaited.js.map +1 -0
- package/dist/esm/fileRoute.d.ts +54 -0
- package/dist/esm/fileRoute.js +103 -0
- package/dist/esm/fileRoute.js.map +1 -0
- package/dist/esm/history.d.ts +8 -0
- package/dist/esm/index.d.ts +51 -0
- package/dist/esm/index.js +138 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lazyRouteComponent.d.ts +8 -0
- package/dist/esm/lazyRouteComponent.js +106 -0
- package/dist/esm/lazyRouteComponent.js.map +1 -0
- package/dist/esm/link.d.ts +61 -0
- package/dist/esm/link.js +376 -0
- package/dist/esm/link.js.map +1 -0
- package/dist/esm/matchContext.d.ts +20 -0
- package/dist/esm/matchContext.js +16 -0
- package/dist/esm/matchContext.js.map +1 -0
- package/dist/esm/not-found.d.ts +12 -0
- package/dist/esm/not-found.js +45 -0
- package/dist/esm/not-found.js.map +1 -0
- package/dist/esm/renderRouteNotFound.d.ts +11 -0
- package/dist/esm/renderRouteNotFound.js +19 -0
- package/dist/esm/renderRouteNotFound.js.map +1 -0
- package/dist/esm/route.d.ts +96 -0
- package/dist/esm/route.js +176 -0
- package/dist/esm/route.js.map +1 -0
- package/dist/esm/router.d.ts +69 -0
- package/dist/esm/router.js +14 -0
- package/dist/esm/router.js.map +1 -0
- package/dist/esm/routerContext.d.ts +21 -0
- package/dist/esm/routerContext.js +21 -0
- package/dist/esm/routerContext.js.map +1 -0
- package/dist/esm/scroll-restoration.d.ts +1 -0
- package/dist/esm/scroll-restoration.js +21 -0
- package/dist/esm/scroll-restoration.js.map +1 -0
- package/dist/esm/typePrimitives.d.ts +10 -0
- package/dist/esm/useBlocker.d.ts +66 -0
- package/dist/esm/useBlocker.js +295 -0
- package/dist/esm/useBlocker.js.map +1 -0
- package/dist/esm/useCanGoBack.d.ts +1 -0
- package/dist/esm/useCanGoBack.js +8 -0
- package/dist/esm/useCanGoBack.js.map +1 -0
- package/dist/esm/useLoaderData.d.ts +8 -0
- package/dist/esm/useLoaderData.js +14 -0
- package/dist/esm/useLoaderData.js.map +1 -0
- package/dist/esm/useLoaderDeps.d.ts +7 -0
- package/dist/esm/useLoaderDeps.js +17 -0
- package/dist/esm/useLoaderDeps.js.map +1 -0
- package/dist/esm/useLocation.d.ts +7 -0
- package/dist/esm/useLocation.js +10 -0
- package/dist/esm/useLocation.js.map +1 -0
- package/dist/esm/useMatch.d.ts +10 -0
- package/dist/esm/useMatch.js +39 -0
- package/dist/esm/useMatch.js.map +1 -0
- package/dist/esm/useNavigate.d.ts +5 -0
- package/dist/esm/useNavigate.js +29 -0
- package/dist/esm/useNavigate.js.map +1 -0
- package/dist/esm/useParams.d.ts +9 -0
- package/dist/esm/useParams.js +15 -0
- package/dist/esm/useParams.js.map +1 -0
- package/dist/esm/useRouteContext.d.ts +4 -0
- package/dist/esm/useRouteContext.js +11 -0
- package/dist/esm/useRouteContext.js.map +1 -0
- package/dist/esm/useRouter.d.ts +4 -0
- package/dist/esm/useRouter.js +12 -0
- package/dist/esm/useRouter.js.map +1 -0
- package/dist/esm/useRouterState.d.ts +8 -0
- package/dist/esm/useRouterState.js +20 -0
- package/dist/esm/useRouterState.js.map +1 -0
- package/dist/esm/useSearch.d.ts +9 -0
- package/dist/esm/useSearch.js +15 -0
- package/dist/esm/useSearch.js.map +1 -0
- package/dist/esm/utils.d.ts +40 -0
- package/dist/esm/utils.js +44 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/source/Asset.d.ts +2 -0
- package/dist/source/Asset.jsx +22 -0
- package/dist/source/Asset.jsx.map +1 -0
- package/dist/source/CatchBoundary.d.ts +19 -0
- package/dist/source/CatchBoundary.jsx +134 -0
- package/dist/source/CatchBoundary.jsx.map +1 -0
- package/dist/source/ClientOnly.d.ts +67 -0
- package/dist/source/ClientOnly.jsx +63 -0
- package/dist/source/ClientOnly.jsx.map +1 -0
- package/dist/source/HeadContent.d.ts +10 -0
- package/dist/source/HeadContent.jsx +133 -0
- package/dist/source/HeadContent.jsx.map +1 -0
- package/dist/source/Match.d.ts +25 -0
- package/dist/source/Match.jsx +316 -0
- package/dist/source/Match.jsx.map +1 -0
- package/dist/source/Matches.d.ts +39 -0
- package/dist/source/Matches.jsx +191 -0
- package/dist/source/Matches.jsx.map +1 -0
- package/dist/source/RouterProvider.d.ts +33 -0
- package/dist/source/RouterProvider.jsx +63 -0
- package/dist/source/RouterProvider.jsx.map +1 -0
- package/dist/source/SafeFragment.d.ts +4 -0
- package/dist/source/SafeFragment.jsx +10 -0
- package/dist/source/SafeFragment.jsx.map +1 -0
- package/dist/source/ScriptOnce.d.ts +5 -0
- package/dist/source/ScriptOnce.jsx +17 -0
- package/dist/source/ScriptOnce.jsx.map +1 -0
- package/dist/source/Scripts.d.ts +1 -0
- package/dist/source/Scripts.jsx +49 -0
- package/dist/source/Scripts.jsx.map +1 -0
- package/dist/source/ScrollRestoration.d.ts +14 -0
- package/dist/source/ScrollRestoration.jsx +37 -0
- package/dist/source/ScrollRestoration.jsx.map +1 -0
- package/dist/source/Transitioner.d.ts +2 -0
- package/dist/source/Transitioner.jsx +181 -0
- package/dist/source/Transitioner.jsx.map +1 -0
- package/dist/source/awaited.d.ts +12 -0
- package/dist/source/awaited.jsx +38 -0
- package/dist/source/awaited.jsx.map +1 -0
- package/dist/source/fileRoute.d.ts +54 -0
- package/dist/source/fileRoute.js +98 -0
- package/dist/source/fileRoute.js.map +1 -0
- package/dist/source/history.d.ts +8 -0
- package/dist/source/history.js +2 -0
- package/dist/source/history.js.map +1 -0
- package/dist/source/index.d.ts +51 -0
- package/dist/source/index.jsx +40 -0
- package/dist/source/index.jsx.map +1 -0
- package/dist/source/lazyRouteComponent.d.ts +8 -0
- package/dist/source/lazyRouteComponent.jsx +135 -0
- package/dist/source/lazyRouteComponent.jsx.map +1 -0
- package/dist/source/link.d.ts +61 -0
- package/dist/source/link.jsx +495 -0
- package/dist/source/link.jsx.map +1 -0
- package/dist/source/matchContext.d.ts +20 -0
- package/dist/source/matchContext.jsx +32 -0
- package/dist/source/matchContext.jsx.map +1 -0
- package/dist/source/not-found.d.ts +12 -0
- package/dist/source/not-found.jsx +48 -0
- package/dist/source/not-found.jsx.map +1 -0
- package/dist/source/renderRouteNotFound.d.ts +11 -0
- package/dist/source/renderRouteNotFound.jsx +24 -0
- package/dist/source/renderRouteNotFound.jsx.map +1 -0
- package/dist/source/route.d.ts +97 -0
- package/dist/source/route.js +167 -0
- package/dist/source/route.js.map +1 -0
- package/dist/source/router.d.ts +70 -0
- package/dist/source/router.js +10 -0
- package/dist/source/router.js.map +1 -0
- package/dist/source/routerContext.d.ts +21 -0
- package/dist/source/routerContext.jsx +37 -0
- package/dist/source/routerContext.jsx.map +1 -0
- package/dist/source/scroll-restoration.d.ts +1 -0
- package/dist/source/scroll-restoration.jsx +16 -0
- package/dist/source/scroll-restoration.jsx.map +1 -0
- package/dist/source/typePrimitives.d.ts +10 -0
- package/dist/source/typePrimitives.js +2 -0
- package/dist/source/typePrimitives.js.map +1 -0
- package/dist/source/useBlocker.d.ts +66 -0
- package/dist/source/useBlocker.jsx +308 -0
- package/dist/source/useBlocker.jsx.map +1 -0
- package/dist/source/useCanGoBack.d.ts +1 -0
- package/dist/source/useCanGoBack.js +5 -0
- package/dist/source/useCanGoBack.js.map +1 -0
- package/dist/source/useLoaderData.d.ts +8 -0
- package/dist/source/useLoaderData.jsx +11 -0
- package/dist/source/useLoaderData.jsx.map +1 -0
- package/dist/source/useLoaderDeps.d.ts +7 -0
- package/dist/source/useLoaderDeps.jsx +11 -0
- package/dist/source/useLoaderDeps.jsx.map +1 -0
- package/dist/source/useLocation.d.ts +7 -0
- package/dist/source/useLocation.jsx +7 -0
- package/dist/source/useLocation.jsx.map +1 -0
- package/dist/source/useMatch.d.ts +10 -0
- package/dist/source/useMatch.jsx +46 -0
- package/dist/source/useMatch.jsx.map +1 -0
- package/dist/source/useNavigate.d.ts +5 -0
- package/dist/source/useNavigate.jsx +18 -0
- package/dist/source/useNavigate.jsx.map +1 -0
- package/dist/source/useParams.d.ts +9 -0
- package/dist/source/useParams.jsx +12 -0
- package/dist/source/useParams.jsx.map +1 -0
- package/dist/source/useRouteContext.d.ts +4 -0
- package/dist/source/useRouteContext.js +8 -0
- package/dist/source/useRouteContext.js.map +1 -0
- package/dist/source/useRouter.d.ts +4 -0
- package/dist/source/useRouter.jsx +9 -0
- package/dist/source/useRouter.jsx.map +1 -0
- package/dist/source/useRouterState.d.ts +8 -0
- package/dist/source/useRouterState.jsx +19 -0
- package/dist/source/useRouterState.jsx.map +1 -0
- package/dist/source/useSearch.d.ts +9 -0
- package/dist/source/useSearch.jsx +12 -0
- package/dist/source/useSearch.jsx.map +1 -0
- package/dist/source/utils.d.ts +40 -0
- package/dist/source/utils.js +78 -0
- package/dist/source/utils.js.map +1 -0
- package/package.json +77 -7
- package/src/Asset.tsx +23 -0
- package/src/CatchBoundary.tsx +186 -0
- package/src/ClientOnly.tsx +75 -0
- package/src/HeadContent.tsx +159 -0
- package/src/Match.tsx +415 -0
- package/src/Matches.tsx +349 -0
- package/src/RouterProvider.tsx +117 -0
- package/src/SafeFragment.tsx +10 -0
- package/src/ScriptOnce.tsx +30 -0
- package/src/Scripts.tsx +65 -0
- package/src/ScrollRestoration.tsx +69 -0
- package/src/Transitioner.tsx +213 -0
- package/src/awaited.tsx +54 -0
- package/src/fileRoute.ts +271 -0
- package/src/history.ts +9 -0
- package/src/index.tsx +346 -0
- package/src/lazyRouteComponent.tsx +173 -0
- package/src/link.tsx +765 -0
- package/src/matchContext.tsx +41 -0
- package/src/not-found.tsx +55 -0
- package/src/renderRouteNotFound.tsx +35 -0
- package/src/route.ts +658 -0
- package/src/router.ts +103 -0
- package/src/routerContext.tsx +53 -0
- package/src/scroll-restoration.tsx +29 -0
- package/src/typePrimitives.ts +74 -0
- package/src/useBlocker.tsx +501 -0
- package/src/useCanGoBack.ts +5 -0
- package/src/useLoaderData.tsx +50 -0
- package/src/useLoaderDeps.tsx +46 -0
- package/src/useLocation.tsx +30 -0
- package/src/useMatch.tsx +127 -0
- package/src/useNavigate.tsx +40 -0
- package/src/useParams.tsx +71 -0
- package/src/useRouteContext.ts +31 -0
- package/src/useRouter.tsx +15 -0
- package/src/useRouterState.tsx +43 -0
- package/src/useSearch.tsx +71 -0
- package/src/utils.ts +111 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { BaseRootRoute, BaseRoute, BaseRouteApi, AnyContext, AnyRoute, AnyRouter, ConstrainLiteral, ErrorComponentProps, NotFoundError, NotFoundRouteProps, Register, RegisteredRouter, ResolveFullPath, ResolveId, ResolveParams, RootRoute as RootRouteCore, RootRouteId, RootRouteOptions, RouteConstraints, Route as RouteCore, RouteIds, RouteMask, RouteOptions, RouteTypesById, RouterCore, ToMaskOptions, UseNavigateResult } from '@tanstack/router-core';
|
|
2
|
+
import { UseLoaderDataRoute } from './useLoaderData.js';
|
|
3
|
+
import { UseMatchRoute } from './useMatch.js';
|
|
4
|
+
import { UseLoaderDepsRoute } from './useLoaderDeps.js';
|
|
5
|
+
import { UseParamsRoute } from './useParams.js';
|
|
6
|
+
import { UseSearchRoute } from './useSearch.js';
|
|
7
|
+
import { UseRouteContextRoute } from './useRouteContext.js';
|
|
8
|
+
import type * as Vue from 'vue';
|
|
9
|
+
type VueSFC = {
|
|
10
|
+
readonly __name?: string;
|
|
11
|
+
setup?: (...args: Array<any>) => any;
|
|
12
|
+
render?: Function;
|
|
13
|
+
};
|
|
14
|
+
declare module '@tanstack/router-core' {
|
|
15
|
+
interface UpdatableRouteOptionsExtensions {
|
|
16
|
+
component?: RouteComponent | VueSFC;
|
|
17
|
+
errorComponent?: false | null | undefined | ErrorRouteComponent | VueSFC;
|
|
18
|
+
notFoundComponent?: NotFoundRouteComponent | VueSFC;
|
|
19
|
+
pendingComponent?: RouteComponent | VueSFC;
|
|
20
|
+
}
|
|
21
|
+
interface RouteExtensions<in out TId extends string, in out TFullPath extends string> {
|
|
22
|
+
useMatch: UseMatchRoute<TId>;
|
|
23
|
+
useRouteContext: UseRouteContextRoute<TId>;
|
|
24
|
+
useSearch: UseSearchRoute<TId>;
|
|
25
|
+
useParams: UseParamsRoute<TId>;
|
|
26
|
+
useLoaderDeps: UseLoaderDepsRoute<TId>;
|
|
27
|
+
useLoaderData: UseLoaderDataRoute<TId>;
|
|
28
|
+
useNavigate: () => UseNavigateResult<TFullPath>;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export declare function getRouteApi<const TId, TRouter extends AnyRouter = RegisteredRouter>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>): RouteApi<TId, TRouter>;
|
|
32
|
+
export declare class RouteApi<TId, TRouter extends AnyRouter = RegisteredRouter> extends BaseRouteApi<TId, TRouter> {
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated Use the `getRouteApi` function instead.
|
|
35
|
+
*/
|
|
36
|
+
constructor({ id }: {
|
|
37
|
+
id: TId;
|
|
38
|
+
});
|
|
39
|
+
useMatch: UseMatchRoute<TId>;
|
|
40
|
+
useRouteContext: UseRouteContextRoute<TId>;
|
|
41
|
+
useSearch: UseSearchRoute<TId>;
|
|
42
|
+
useParams: UseParamsRoute<TId>;
|
|
43
|
+
useLoaderDeps: UseLoaderDepsRoute<TId>;
|
|
44
|
+
useLoaderData: UseLoaderDataRoute<TId>;
|
|
45
|
+
useNavigate: () => UseNavigateResult<RouteTypesById<TRouter, TId>["fullPath"]>;
|
|
46
|
+
notFound: (opts?: NotFoundError) => NotFoundError;
|
|
47
|
+
}
|
|
48
|
+
export declare class Route<in out TRegister = unknown, in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, in out TPath extends RouteConstraints['TPath'] = '/', in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, in out TCustomId extends RouteConstraints['TCustomId'] = string, in out TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, in out TSearchValidator = undefined, in out TParams = ResolveParams<TPath>, in out TRouterContext = AnyContext, in out TRouteContextFn = AnyContext, in out TBeforeLoadFn = AnyContext, in out TLoaderDeps extends Record<string, any> = {}, in out TLoaderFn = undefined, in out TChildren = unknown, in out TFileRouteTypes = unknown, in out TSSR = unknown, in out TMiddlewares = unknown, in out THandlers = undefined> extends BaseRoute<TRegister, TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes, TSSR, TMiddlewares, THandlers> implements RouteCore<TRegister, TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes, TSSR, TMiddlewares, THandlers> {
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Use the `createRoute` function instead.
|
|
51
|
+
*/
|
|
52
|
+
constructor(options?: RouteOptions<TRegister, TParentRoute, TId, TCustomId, TFullPath, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, TRouterContext, TRouteContextFn, TBeforeLoadFn, TSSR, TMiddlewares, THandlers>);
|
|
53
|
+
useMatch: UseMatchRoute<TId>;
|
|
54
|
+
useRouteContext: UseRouteContextRoute<TId>;
|
|
55
|
+
useSearch: UseSearchRoute<TId>;
|
|
56
|
+
useParams: UseParamsRoute<TId>;
|
|
57
|
+
useLoaderDeps: UseLoaderDepsRoute<TId>;
|
|
58
|
+
useLoaderData: UseLoaderDataRoute<TId>;
|
|
59
|
+
useNavigate: () => UseNavigateResult<TFullPath>;
|
|
60
|
+
}
|
|
61
|
+
export declare function createRoute<TRegister = unknown, TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, TPath extends RouteConstraints['TPath'] = '/', TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, TCustomId extends RouteConstraints['TCustomId'] = string, TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, TSearchValidator = undefined, TParams = ResolveParams<TPath>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown, TSSR = unknown, THandlers = undefined>(options: RouteOptions<TRegister, TParentRoute, TId, TCustomId, TFullPath, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, AnyContext, TRouteContextFn, TBeforeLoadFn, TSSR, THandlers>): Route<TRegister, TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, unknown, TSSR, THandlers>;
|
|
62
|
+
export type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any, any, any>;
|
|
63
|
+
export declare function createRootRouteWithContext<TRouterContext extends {}>(): <TRegister = Register, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TSearchValidator = undefined, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TSSR = unknown, THandlers = undefined>(options?: RootRouteOptions<TRegister, TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TSSR, THandlers>) => RootRoute<TRegister, TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, unknown, unknown, TSSR, THandlers>;
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated Use the `createRootRouteWithContext` function instead.
|
|
66
|
+
*/
|
|
67
|
+
export declare const rootRouteWithContext: typeof createRootRouteWithContext;
|
|
68
|
+
export declare class RootRoute<in out TRegister = Register, in out TSearchValidator = undefined, in out TRouterContext = {}, in out TRouteContextFn = AnyContext, in out TBeforeLoadFn = AnyContext, in out TLoaderDeps extends Record<string, any> = {}, in out TLoaderFn = undefined, in out TChildren = unknown, in out TFileRouteTypes = unknown, in out TSSR = unknown, in out THandlers = undefined> extends BaseRootRoute<TRegister, TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes, TSSR, THandlers> implements RootRouteCore<TRegister, TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes, TSSR, THandlers> {
|
|
69
|
+
/**
|
|
70
|
+
* @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.
|
|
71
|
+
*/
|
|
72
|
+
constructor(options?: RootRouteOptions<TRegister, TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TSSR, THandlers>);
|
|
73
|
+
useMatch: UseMatchRoute<RootRouteId>;
|
|
74
|
+
useRouteContext: UseRouteContextRoute<RootRouteId>;
|
|
75
|
+
useSearch: UseSearchRoute<RootRouteId>;
|
|
76
|
+
useParams: UseParamsRoute<RootRouteId>;
|
|
77
|
+
useLoaderDeps: UseLoaderDepsRoute<RootRouteId>;
|
|
78
|
+
useLoaderData: UseLoaderDataRoute<RootRouteId>;
|
|
79
|
+
useNavigate: () => UseNavigateResult<"/">;
|
|
80
|
+
}
|
|
81
|
+
export declare function createRouteMask<TRouteTree extends AnyRoute, TFrom extends string, TTo extends string>(opts: {
|
|
82
|
+
routeTree: TRouteTree;
|
|
83
|
+
} & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>): RouteMask<TRouteTree>;
|
|
84
|
+
export type VueNode = Vue.VNode;
|
|
85
|
+
export type SyncRouteComponent<TProps> = (props: TProps) => Vue.VNode;
|
|
86
|
+
export type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {
|
|
87
|
+
preload?: () => Promise<void>;
|
|
88
|
+
};
|
|
89
|
+
export type RouteComponent<TProps = any> = AsyncRouteComponent<TProps>;
|
|
90
|
+
export type ErrorRouteComponent = RouteComponent<ErrorComponentProps>;
|
|
91
|
+
export type NotFoundRouteComponent = SyncRouteComponent<NotFoundRouteProps>;
|
|
92
|
+
export declare class NotFoundRoute<TRegister, TParentRoute extends AnyRootRoute, TRouterContext = AnyContext, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TSearchValidator = undefined, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown, TSSR = unknown, THandlers = undefined> extends Route<TRegister, TParentRoute, '/404', '/404', '404', '404', TSearchValidator, {}, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TSSR, THandlers> {
|
|
93
|
+
constructor(options: Omit<RouteOptions<TRegister, TParentRoute, string, string, string, string, TSearchValidator, {}, TLoaderDeps, TLoaderFn, TRouterContext, TRouteContextFn, TBeforeLoadFn, TSSR, THandlers>, 'caseSensitive' | 'parseParams' | 'stringifyParams' | 'path' | 'id' | 'params'>);
|
|
94
|
+
}
|
|
95
|
+
export declare function createRootRoute<TRegister = Register, TSearchValidator = undefined, TRouterContext = {}, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TSSR = unknown, THandlers = undefined>(options?: RootRouteOptions<TRegister, TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TSSR, THandlers>): RootRoute<TRegister, TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, unknown, unknown, TSSR, THandlers>;
|
|
96
|
+
export {};
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { BaseRouteApi, notFound, BaseRoute, BaseRootRoute } from "@tanstack/router-core";
|
|
2
|
+
import { useLoaderData } from "./useLoaderData.js";
|
|
3
|
+
import { useLoaderDeps } from "./useLoaderDeps.js";
|
|
4
|
+
import { useParams } from "./useParams.js";
|
|
5
|
+
import { useSearch } from "./useSearch.js";
|
|
6
|
+
import { useNavigate } from "./useNavigate.js";
|
|
7
|
+
import { useMatch } from "./useMatch.js";
|
|
8
|
+
import { useRouter } from "./useRouter.js";
|
|
9
|
+
function getRouteApi(id) {
|
|
10
|
+
return new RouteApi({ id });
|
|
11
|
+
}
|
|
12
|
+
class RouteApi extends BaseRouteApi {
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated Use the `getRouteApi` function instead.
|
|
15
|
+
*/
|
|
16
|
+
constructor({ id }) {
|
|
17
|
+
super({ id });
|
|
18
|
+
this.useMatch = (opts) => {
|
|
19
|
+
return useMatch({
|
|
20
|
+
select: opts?.select,
|
|
21
|
+
from: this.id
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
this.useRouteContext = (opts) => {
|
|
25
|
+
return useMatch({
|
|
26
|
+
from: this.id,
|
|
27
|
+
select: (d) => opts?.select ? opts.select(d.context) : d.context
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
this.useSearch = (opts) => {
|
|
31
|
+
return useSearch({
|
|
32
|
+
select: opts?.select,
|
|
33
|
+
from: this.id
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
this.useParams = (opts) => {
|
|
37
|
+
return useParams({
|
|
38
|
+
select: opts?.select,
|
|
39
|
+
from: this.id
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
this.useLoaderDeps = (opts) => {
|
|
43
|
+
return useLoaderDeps({ ...opts, from: this.id, strict: false });
|
|
44
|
+
};
|
|
45
|
+
this.useLoaderData = (opts) => {
|
|
46
|
+
return useLoaderData({ ...opts, from: this.id, strict: false });
|
|
47
|
+
};
|
|
48
|
+
this.useNavigate = () => {
|
|
49
|
+
const router = useRouter();
|
|
50
|
+
return useNavigate({ from: router.routesById[this.id].fullPath });
|
|
51
|
+
};
|
|
52
|
+
this.notFound = (opts) => {
|
|
53
|
+
return notFound({ routeId: this.id, ...opts });
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
class Route extends BaseRoute {
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated Use the `createRoute` function instead.
|
|
60
|
+
*/
|
|
61
|
+
constructor(options) {
|
|
62
|
+
super(options);
|
|
63
|
+
this.useMatch = (opts) => {
|
|
64
|
+
return useMatch({
|
|
65
|
+
select: opts?.select,
|
|
66
|
+
from: this.id
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
this.useRouteContext = (opts) => {
|
|
70
|
+
return useMatch({
|
|
71
|
+
...opts,
|
|
72
|
+
from: this.id,
|
|
73
|
+
select: (d) => opts?.select ? opts.select(d.context) : d.context
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
this.useSearch = (opts) => {
|
|
77
|
+
return useSearch({
|
|
78
|
+
select: opts?.select,
|
|
79
|
+
from: this.id
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
this.useParams = (opts) => {
|
|
83
|
+
return useParams({
|
|
84
|
+
select: opts?.select,
|
|
85
|
+
from: this.id
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
this.useLoaderDeps = (opts) => {
|
|
89
|
+
return useLoaderDeps({ ...opts, from: this.id });
|
|
90
|
+
};
|
|
91
|
+
this.useLoaderData = (opts) => {
|
|
92
|
+
return useLoaderData({ ...opts, from: this.id });
|
|
93
|
+
};
|
|
94
|
+
this.useNavigate = () => {
|
|
95
|
+
return useNavigate({ from: this.fullPath });
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function createRoute(options) {
|
|
100
|
+
return new Route(options);
|
|
101
|
+
}
|
|
102
|
+
function createRootRouteWithContext() {
|
|
103
|
+
return (options) => {
|
|
104
|
+
return createRootRoute(options);
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const rootRouteWithContext = createRootRouteWithContext;
|
|
108
|
+
class RootRoute extends BaseRootRoute {
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.
|
|
111
|
+
*/
|
|
112
|
+
constructor(options) {
|
|
113
|
+
super(options);
|
|
114
|
+
this.useMatch = (opts) => {
|
|
115
|
+
return useMatch({
|
|
116
|
+
select: opts?.select,
|
|
117
|
+
from: this.id
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
this.useRouteContext = (opts) => {
|
|
121
|
+
return useMatch({
|
|
122
|
+
...opts,
|
|
123
|
+
from: this.id,
|
|
124
|
+
select: (d) => opts?.select ? opts.select(d.context) : d.context
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
this.useSearch = (opts) => {
|
|
128
|
+
return useSearch({
|
|
129
|
+
select: opts?.select,
|
|
130
|
+
from: this.id
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
this.useParams = (opts) => {
|
|
134
|
+
return useParams({
|
|
135
|
+
select: opts?.select,
|
|
136
|
+
from: this.id
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
this.useLoaderDeps = (opts) => {
|
|
140
|
+
return useLoaderDeps({ ...opts, from: this.id });
|
|
141
|
+
};
|
|
142
|
+
this.useLoaderData = (opts) => {
|
|
143
|
+
return useLoaderData({ ...opts, from: this.id });
|
|
144
|
+
};
|
|
145
|
+
this.useNavigate = () => {
|
|
146
|
+
return useNavigate({ from: this.fullPath });
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function createRouteMask(opts) {
|
|
151
|
+
return opts;
|
|
152
|
+
}
|
|
153
|
+
class NotFoundRoute extends Route {
|
|
154
|
+
constructor(options) {
|
|
155
|
+
super({
|
|
156
|
+
...options,
|
|
157
|
+
id: "404"
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function createRootRoute(options) {
|
|
162
|
+
return new RootRoute(options);
|
|
163
|
+
}
|
|
164
|
+
export {
|
|
165
|
+
NotFoundRoute,
|
|
166
|
+
RootRoute,
|
|
167
|
+
Route,
|
|
168
|
+
RouteApi,
|
|
169
|
+
createRootRoute,
|
|
170
|
+
createRootRouteWithContext,
|
|
171
|
+
createRoute,
|
|
172
|
+
createRouteMask,
|
|
173
|
+
getRouteApi,
|
|
174
|
+
rootRouteWithContext
|
|
175
|
+
};
|
|
176
|
+
//# sourceMappingURL=route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route.js","sources":["../../src/route.ts"],"sourcesContent":["import {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi,\n notFound,\n} from '@tanstack/router-core'\nimport { useLoaderData } from './useLoaderData'\nimport { useLoaderDeps } from './useLoaderDeps'\nimport { useParams } from './useParams'\nimport { useSearch } from './useSearch'\nimport { useNavigate } from './useNavigate'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n ConstrainLiteral,\n ErrorComponentProps,\n NotFoundError,\n NotFoundRouteProps,\n Register,\n RegisteredRouter,\n ResolveFullPath,\n ResolveId,\n ResolveParams,\n RootRoute as RootRouteCore,\n RootRouteId,\n RootRouteOptions,\n RouteConstraints,\n Route as RouteCore,\n RouteIds,\n RouteMask,\n RouteOptions,\n RouteTypesById,\n RouterCore,\n ToMaskOptions,\n UseNavigateResult,\n} from '@tanstack/router-core'\nimport type { UseLoaderDataRoute } from './useLoaderData'\nimport type { UseMatchRoute } from './useMatch'\nimport type { UseLoaderDepsRoute } from './useLoaderDeps'\nimport type { UseParamsRoute } from './useParams'\nimport type { UseSearchRoute } from './useSearch'\nimport type * as Vue from 'vue'\nimport type { UseRouteContextRoute } from './useRouteContext'\n\n// Structural type for Vue SFC components (.vue files)\n// Uses structural matching to accept Vue components without breaking\n// TypeScript inference for inline function components\ntype VueSFC = {\n readonly __name?: string\n setup?: (...args: Array<any>) => any\n render?: Function\n}\n\ndeclare module '@tanstack/router-core' {\n export interface UpdatableRouteOptionsExtensions {\n component?: RouteComponent | VueSFC\n errorComponent?: false | null | undefined | ErrorRouteComponent | VueSFC\n notFoundComponent?: NotFoundRouteComponent | VueSFC\n pendingComponent?: RouteComponent | VueSFC\n }\n\n export interface RouteExtensions<\n in out TId extends string,\n in out TFullPath extends string,\n > {\n useMatch: UseMatchRoute<TId>\n useRouteContext: UseRouteContextRoute<TId>\n useSearch: UseSearchRoute<TId>\n useParams: UseParamsRoute<TId>\n useLoaderDeps: UseLoaderDepsRoute<TId>\n useLoaderData: UseLoaderDataRoute<TId>\n useNavigate: () => UseNavigateResult<TFullPath>\n }\n}\n\nexport function getRouteApi<\n const TId,\n TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n return new RouteApi<TId, TRouter>({ id })\n}\n\nexport class RouteApi<\n TId,\n TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }: { id: TId }) {\n super({ id })\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts) => {\n return useMatch({\n from: this.id as any,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false } as any)\n }\n\n useNavigate = (): UseNavigateResult<\n RouteTypesById<TRouter, TId>['fullPath']\n > => {\n const router = useRouter()\n return useNavigate({ from: router.routesById[this.id as string].fullPath })\n }\n\n notFound = (opts?: NotFoundError) => {\n return notFound({ routeId: this.id as string, ...opts })\n }\n}\n\nexport class Route<\n in out TRegister = unknown,\n in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n in out TPath extends RouteConstraints['TPath'] = '/',\n in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n in out TCustomId extends RouteConstraints['TCustomId'] = string,\n in out TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n in out TSearchValidator = undefined,\n in out TParams = ResolveParams<TPath>,\n in out TRouterContext = AnyContext,\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n in out TSSR = unknown,\n in out TMiddlewares = unknown,\n in out THandlers = undefined,\n >\n extends BaseRoute<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR,\n TMiddlewares,\n THandlers\n >\n implements\n RouteCore<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR,\n TMiddlewares,\n THandlers\n >\n{\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(\n options?: RouteOptions<\n TRegister,\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TSSR,\n TMiddlewares,\n THandlers\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts?) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<TFullPath> => {\n return useNavigate({ from: this.fullPath })\n }\n}\n\nexport function createRoute<\n TRegister = unknown,\n TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n TPath extends RouteConstraints['TPath'] = '/',\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n TCustomId extends RouteConstraints['TCustomId'] = string,\n TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n TSearchValidator = undefined,\n TParams = ResolveParams<TPath>,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n TSSR = unknown,\n THandlers = undefined,\n>(\n options: RouteOptions<\n TRegister,\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TSSR,\n THandlers\n >,\n): Route<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown,\n TSSR,\n THandlers\n> {\n return new Route<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown,\n TSSR,\n THandlers\n >(options)\n}\n\nexport type AnyRootRoute = RootRoute<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n>\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n return <\n TRegister = Register,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TSSR = unknown,\n THandlers = undefined,\n >(\n options?: RootRouteOptions<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR,\n THandlers\n >,\n ) => {\n return createRootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR,\n THandlers\n >(options as any)\n }\n}\n\n/**\n * @deprecated Use the `createRootRouteWithContext` function instead.\n */\nexport const rootRouteWithContext = createRootRouteWithContext\n\nexport class RootRoute<\n in out TRegister = Register,\n in out TSearchValidator = undefined,\n in out TRouterContext = {},\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n in out TSSR = unknown,\n in out THandlers = undefined,\n >\n extends BaseRootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR,\n THandlers\n >\n implements\n RootRouteCore<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR,\n THandlers\n >\n{\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(\n options?: RootRouteOptions<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR,\n THandlers\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<RootRouteId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<RootRouteId> = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<RootRouteId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<RootRouteId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<RootRouteId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<RootRouteId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<'/'> => {\n return useNavigate({ from: this.fullPath })\n }\n}\n\nexport function createRouteMask<\n TRouteTree extends AnyRoute,\n TFrom extends string,\n TTo extends string,\n>(\n opts: {\n routeTree: TRouteTree\n } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>,\n): RouteMask<TRouteTree> {\n return opts as any\n}\n\nexport type VueNode = Vue.VNode\n\nexport type SyncRouteComponent<TProps> = (props: TProps) => Vue.VNode\n\nexport type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport type RouteComponent<TProps = any> = AsyncRouteComponent<TProps>\n\nexport type ErrorRouteComponent = RouteComponent<ErrorComponentProps>\n\nexport type NotFoundRouteComponent = SyncRouteComponent<NotFoundRouteProps>\n\nexport class NotFoundRoute<\n TRegister,\n TParentRoute extends AnyRootRoute,\n TRouterContext = AnyContext,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n TSSR = unknown,\n THandlers = undefined,\n> extends Route<\n TRegister,\n TParentRoute,\n '/404',\n '/404',\n '404',\n '404',\n TSearchValidator,\n {},\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TSSR,\n THandlers\n> {\n constructor(\n options: Omit<\n RouteOptions<\n TRegister,\n TParentRoute,\n string,\n string,\n string,\n string,\n TSearchValidator,\n {},\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TSSR,\n THandlers\n >,\n | 'caseSensitive'\n | 'parseParams'\n | 'stringifyParams'\n | 'path'\n | 'id'\n | 'params'\n >,\n ) {\n super({\n ...(options as any),\n id: '404',\n })\n }\n}\n\nexport function createRootRoute<\n TRegister = Register,\n TSearchValidator = undefined,\n TRouterContext = {},\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TSSR = unknown,\n THandlers = undefined,\n>(\n options?: RootRouteOptions<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR,\n THandlers\n >,\n): RootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown,\n TSSR,\n THandlers\n> {\n return new RootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown,\n TSSR,\n THandlers\n >(options)\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { RouterCore, AnyRoute, CreateRouterFn, RouterConstructorOptions, TrailingSlashOption } from '@tanstack/router-core';
|
|
2
|
+
import { RouterHistory } from '@tanstack/history';
|
|
3
|
+
import { ErrorRouteComponent, NotFoundRouteComponent, RouteComponent } from './route.js';
|
|
4
|
+
import { VNode } from 'vue';
|
|
5
|
+
declare module '@tanstack/router-core' {
|
|
6
|
+
interface RouterOptionsExtensions {
|
|
7
|
+
/**
|
|
8
|
+
* The default `component` a route should use if no component is provided.
|
|
9
|
+
*
|
|
10
|
+
* @default Outlet
|
|
11
|
+
* @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultcomponent-property)
|
|
12
|
+
*/
|
|
13
|
+
defaultComponent?: RouteComponent;
|
|
14
|
+
/**
|
|
15
|
+
* The default `errorComponent` a route should use if no error component is provided.
|
|
16
|
+
*
|
|
17
|
+
* @default ErrorComponent
|
|
18
|
+
* @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaulterrorcomponent-property)
|
|
19
|
+
* @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#handling-errors-with-routeoptionserrorcomponent)
|
|
20
|
+
*/
|
|
21
|
+
defaultErrorComponent?: ErrorRouteComponent;
|
|
22
|
+
/**
|
|
23
|
+
* The default `pendingComponent` a route should use if no pending component is provided.
|
|
24
|
+
*
|
|
25
|
+
* @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultpendingcomponent-property)
|
|
26
|
+
* @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#showing-a-pending-component)
|
|
27
|
+
*/
|
|
28
|
+
defaultPendingComponent?: RouteComponent;
|
|
29
|
+
/**
|
|
30
|
+
* The default `notFoundComponent` a route should use if no notFound component is provided.
|
|
31
|
+
*
|
|
32
|
+
* @default NotFound
|
|
33
|
+
* @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultnotfoundcomponent-property)
|
|
34
|
+
* @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/not-found-errors#default-router-wide-not-found-handling)
|
|
35
|
+
*/
|
|
36
|
+
defaultNotFoundComponent?: NotFoundRouteComponent;
|
|
37
|
+
/**
|
|
38
|
+
* A component that will be used to wrap the entire router.
|
|
39
|
+
*
|
|
40
|
+
* This is useful for providing a context to the entire router.
|
|
41
|
+
*
|
|
42
|
+
* @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#wrap-property)
|
|
43
|
+
*/
|
|
44
|
+
Wrap?: (props: {
|
|
45
|
+
children: any;
|
|
46
|
+
}) => VNode;
|
|
47
|
+
/**
|
|
48
|
+
* A component that will be used to wrap the inner contents of the router.
|
|
49
|
+
*
|
|
50
|
+
* This is useful for providing a context to the inner contents of the router where you also need access to the router context and hooks.
|
|
51
|
+
*
|
|
52
|
+
* @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#innerwrap-property)
|
|
53
|
+
*/
|
|
54
|
+
InnerWrap?: (props: {
|
|
55
|
+
children: any;
|
|
56
|
+
}) => VNode;
|
|
57
|
+
/**
|
|
58
|
+
* The default `onCatch` handler for errors caught by the Router ErrorBoundary
|
|
59
|
+
*
|
|
60
|
+
* @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultoncatch-property)
|
|
61
|
+
* @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#handling-errors-with-routeoptionsoncatch)
|
|
62
|
+
*/
|
|
63
|
+
defaultOnCatch?: (error: Error) => void;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export declare const createRouter: CreateRouterFn;
|
|
67
|
+
export declare class Router<in out TRouteTree extends AnyRoute, in out TTrailingSlashOption extends TrailingSlashOption = 'never', in out TDefaultStructuralSharingOption extends boolean = false, in out TRouterHistory extends RouterHistory = RouterHistory, in out TDehydrated extends Record<string, any> = Record<string, any>> extends RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated> {
|
|
68
|
+
constructor(options: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>);
|
|
69
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RouterCore } from "@tanstack/router-core";
|
|
2
|
+
const createRouter = (options) => {
|
|
3
|
+
return new Router(options);
|
|
4
|
+
};
|
|
5
|
+
class Router extends RouterCore {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
super(options);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
Router,
|
|
12
|
+
createRouter
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sources":["../../src/router.ts"],"sourcesContent":["import { RouterCore } from '@tanstack/router-core'\nimport type { RouterHistory } from '@tanstack/history'\nimport type {\n AnyRoute,\n CreateRouterFn,\n RouterConstructorOptions,\n TrailingSlashOption,\n} from '@tanstack/router-core'\nimport type {\n ErrorRouteComponent,\n NotFoundRouteComponent,\n RouteComponent,\n} from './route'\nimport type { VNode } from 'vue'\n\ndeclare module '@tanstack/router-core' {\n export interface RouterOptionsExtensions {\n /**\n * The default `component` a route should use if no component is provided.\n *\n * @default Outlet\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultcomponent-property)\n */\n defaultComponent?: RouteComponent\n /**\n * The default `errorComponent` a route should use if no error component is provided.\n *\n * @default ErrorComponent\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaulterrorcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#handling-errors-with-routeoptionserrorcomponent)\n */\n defaultErrorComponent?: ErrorRouteComponent\n /**\n * The default `pendingComponent` a route should use if no pending component is provided.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultpendingcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#showing-a-pending-component)\n */\n defaultPendingComponent?: RouteComponent\n /**\n * The default `notFoundComponent` a route should use if no notFound component is provided.\n *\n * @default NotFound\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultnotfoundcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/not-found-errors#default-router-wide-not-found-handling)\n */\n defaultNotFoundComponent?: NotFoundRouteComponent\n /**\n * A component that will be used to wrap the entire router.\n *\n * This is useful for providing a context to the entire router.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#wrap-property)\n */\n Wrap?: (props: { children: any }) => VNode\n /**\n * A component that will be used to wrap the inner contents of the router.\n *\n * This is useful for providing a context to the inner contents of the router where you also need access to the router context and hooks.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#innerwrap-property)\n */\n InnerWrap?: (props: { children: any }) => VNode\n\n /**\n * The default `onCatch` handler for errors caught by the Router ErrorBoundary\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultoncatch-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#handling-errors-with-routeoptionsoncatch)\n */\n defaultOnCatch?: (error: Error) => void\n }\n}\n\nexport const createRouter: CreateRouterFn = (options) => {\n return new Router(options)\n}\n\nexport class Router<\n in out TRouteTree extends AnyRoute,\n in out TTrailingSlashOption extends TrailingSlashOption = 'never',\n in out TDefaultStructuralSharingOption extends boolean = false,\n in out TRouterHistory extends RouterHistory = RouterHistory,\n in out TDehydrated extends Record<string, any> = Record<string, any>,\n> extends RouterCore<\n TRouteTree,\n TTrailingSlashOption,\n TDefaultStructuralSharingOption,\n TRouterHistory,\n TDehydrated\n> {\n constructor(\n options: RouterConstructorOptions<\n TRouteTree,\n TTrailingSlashOption,\n TDefaultStructuralSharingOption,\n TRouterHistory,\n TDehydrated\n >,\n ) {\n super(options)\n }\n}\n"],"names":[],"mappings":";AA0EO,MAAM,eAA+B,CAAC,YAAY;AACvD,SAAO,IAAI,OAAO,OAAO;AAC3B;AAEO,MAAM,eAMH,WAMR;AAAA,EACA,YACE,SAOA;AACA,UAAM,OAAO;AAAA,EACf;AACF;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AnyRouter } from '@tanstack/router-core';
|
|
2
|
+
import * as Vue from 'vue';
|
|
3
|
+
export declare const RouterSymbol: Vue.InjectionKey<AnyRouter>;
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
__TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Gets the router context, handling server-side rendering
|
|
11
|
+
* and ensuring a single instance across the application
|
|
12
|
+
*/
|
|
13
|
+
export declare function getRouterContext(): Vue.InjectionKey<AnyRouter>;
|
|
14
|
+
/**
|
|
15
|
+
* Provides the router to all child components
|
|
16
|
+
*/
|
|
17
|
+
export declare function provideRouter(router: AnyRouter): void;
|
|
18
|
+
/**
|
|
19
|
+
* Injects the router from the component tree
|
|
20
|
+
*/
|
|
21
|
+
export declare function injectRouter(): AnyRouter;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as Vue from "vue";
|
|
2
|
+
const RouterSymbol = Symbol("TanStackRouter");
|
|
3
|
+
function getRouterContext() {
|
|
4
|
+
if (typeof document === "undefined") {
|
|
5
|
+
return RouterSymbol;
|
|
6
|
+
}
|
|
7
|
+
if (window.__TSR_ROUTER_CONTEXT__) {
|
|
8
|
+
return window.__TSR_ROUTER_CONTEXT__;
|
|
9
|
+
}
|
|
10
|
+
window.__TSR_ROUTER_CONTEXT__ = RouterSymbol;
|
|
11
|
+
return RouterSymbol;
|
|
12
|
+
}
|
|
13
|
+
function provideRouter(router) {
|
|
14
|
+
Vue.provide(getRouterContext(), router);
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
RouterSymbol,
|
|
18
|
+
getRouterContext,
|
|
19
|
+
provideRouter
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=routerContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routerContext.js","sources":["../../src/routerContext.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport type { AnyRouter } from '@tanstack/router-core'\n\n// Create a router context symbol\nexport const RouterSymbol = Symbol(\n 'TanStackRouter',\n) as Vue.InjectionKey<AnyRouter>\n\ndeclare global {\n interface Window {\n __TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>\n }\n}\n\n/**\n * Gets the router context, handling server-side rendering\n * and ensuring a single instance across the application\n */\nexport function getRouterContext(): Vue.InjectionKey<AnyRouter> {\n if (typeof document === 'undefined') {\n // For SSR, return the symbol directly\n return RouterSymbol\n }\n\n // In the browser, check if we have a cached context\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__\n }\n\n // Create and cache the context\n window.__TSR_ROUTER_CONTEXT__ = RouterSymbol\n return RouterSymbol\n}\n\n/**\n * Provides the router to all child components\n */\nexport function provideRouter(router: AnyRouter): void {\n Vue.provide(getRouterContext(), router)\n}\n\n/**\n * Injects the router from the component tree\n */\nexport function injectRouter(): AnyRouter {\n const router = Vue.inject<AnyRouter | null>(getRouterContext(), null)\n if (!router) {\n throw new Error(\n 'No TanStack Router found in component tree. Did you forget to add a RouterProvider component?',\n )\n }\n return router\n}\n"],"names":["RouterSymbol","Symbol","getRouterContext","document","window","__TSR_ROUTER_CONTEXT__","provideRouter","router","Vue","provide"],"mappings":";MAIaA,eAAeC,OAC1B,gBACF;AAYO,SAASC,mBAAgD;AAC9D,MAAI,OAAOC,aAAa,aAAa;AAEnC,WAAOH;AAAAA,EACT;AAGA,MAAII,OAAOC,wBAAwB;AACjC,WAAOD,OAAOC;AAAAA,EAChB;AAGAD,SAAOC,yBAAyBL;AAChC,SAAOA;AACT;AAKO,SAASM,cAAcC,QAAyB;AACrDC,MAAIC,QAAQP,iBAAgB,GAAIK,MAAM;AACxC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function ScrollRestoration(): import("vue/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createVNode } from "vue";
|
|
2
|
+
import { defaultGetScrollRestorationKey, restoreScroll, storageKey } from "@tanstack/router-core";
|
|
3
|
+
import { useRouter } from "./useRouter.js";
|
|
4
|
+
import { ScriptOnce } from "./ScriptOnce.js";
|
|
5
|
+
function ScrollRestoration() {
|
|
6
|
+
const router = useRouter();
|
|
7
|
+
const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;
|
|
8
|
+
const userKey = getKey(router.latestLocation);
|
|
9
|
+
const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : null;
|
|
10
|
+
if (!router.isScrollRestoring || !router.isServer) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return createVNode(ScriptOnce, {
|
|
14
|
+
"children": `(${restoreScroll.toString()})(${JSON.stringify(storageKey)},${JSON.stringify(resolvedKey)}, undefined, true)`,
|
|
15
|
+
"log": false
|
|
16
|
+
}, null);
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
ScrollRestoration
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=scroll-restoration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-restoration.js","sources":["../../src/scroll-restoration.tsx"],"sourcesContent":["import {\n defaultGetScrollRestorationKey,\n restoreScroll,\n storageKey,\n} from '@tanstack/router-core'\nimport { useRouter } from './useRouter'\nimport { ScriptOnce } from './ScriptOnce'\n\nexport function ScrollRestoration() {\n const router = useRouter()\n const getKey =\n router.options.getScrollRestorationKey || defaultGetScrollRestorationKey\n const userKey = getKey(router.latestLocation)\n const resolvedKey =\n userKey !== defaultGetScrollRestorationKey(router.latestLocation)\n ? userKey\n : null\n\n if (!router.isScrollRestoring || !router.isServer) {\n return null\n }\n\n return (\n <ScriptOnce\n children={`(${restoreScroll.toString()})(${JSON.stringify(storageKey)},${JSON.stringify(resolvedKey)}, undefined, true)`}\n log={false}\n />\n )\n}\n"],"names":["ScrollRestoration","router","useRouter","getKey","options","getScrollRestorationKey","defaultGetScrollRestorationKey","userKey","latestLocation","resolvedKey","isScrollRestoring","isServer","_createVNode","ScriptOnce","restoreScroll","toString","JSON","stringify","storageKey"],"mappings":";;;;AAQO,SAASA,oBAAoB;AAClC,QAAMC,SAASC,UAAS;AACxB,QAAMC,SACJF,OAAOG,QAAQC,2BAA2BC;AAC5C,QAAMC,UAAUJ,OAAOF,OAAOO,cAAc;AAC5C,QAAMC,cACJF,YAAYD,+BAA+BL,OAAOO,cAAc,IAC5DD,UACA;AAEN,MAAI,CAACN,OAAOS,qBAAqB,CAACT,OAAOU,UAAU;AACjD,WAAO;AAAA,EACT;AAEA,SAAAC,YAAAC,YAAA;AAAA,IAAA,YAEc,IAAIC,cAAcC,SAAQ,CAAE,KAAKC,KAAKC,UAAUC,UAAU,CAAC,IAAIF,KAAKC,UAAUR,WAAW,CAAC;AAAA,IAAoB,OACnH;AAAA,EAAK,GAAA,IAAA;AAGhB;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LinkComponentProps } from './link.js';
|
|
2
|
+
import { UseParamsOptions } from './useParams.js';
|
|
3
|
+
import { UseSearchOptions } from './useSearch.js';
|
|
4
|
+
import { AnyRouter, Constrain, InferFrom, InferMaskFrom, InferMaskTo, InferSelected, InferShouldThrow, InferStrict, InferTo, RegisteredRouter } from '@tanstack/router-core';
|
|
5
|
+
export type ValidateLinkOptions<TRouter extends AnyRouter = RegisteredRouter, TOptions = unknown, TDefaultFrom extends string = string, TComp = 'a'> = Constrain<TOptions, LinkComponentProps<TComp, TRouter, InferFrom<TOptions, TDefaultFrom>, InferTo<TOptions>, InferMaskFrom<TOptions>, InferMaskTo<TOptions>>>;
|
|
6
|
+
export type ValidateLinkOptionsArray<TRouter extends AnyRouter = RegisteredRouter, TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>, TDefaultFrom extends string = string, TComp = 'a'> = {
|
|
7
|
+
[K in keyof TOptions]: ValidateLinkOptions<TRouter, TOptions[K], TDefaultFrom, TComp>;
|
|
8
|
+
};
|
|
9
|
+
export type ValidateUseSearchOptions<TOptions, TRouter extends AnyRouter = RegisteredRouter> = Constrain<TOptions, UseSearchOptions<TRouter, InferFrom<TOptions>, InferStrict<TOptions>, InferShouldThrow<TOptions>, InferSelected<TOptions>>>;
|
|
10
|
+
export type ValidateUseParamsOptions<TOptions, TRouter extends AnyRouter = RegisteredRouter> = Constrain<TOptions, UseParamsOptions<TRouter, InferFrom<TOptions>, InferStrict<TOptions>, InferShouldThrow<TOptions>, InferSelected<TOptions>>>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { HistoryAction } from '@tanstack/history';
|
|
2
|
+
import { AnyRoute, AnyRouter, ParseRoute, RegisteredRouter } from '@tanstack/router-core';
|
|
3
|
+
import * as Vue from 'vue';
|
|
4
|
+
interface ShouldBlockFnLocation<out TRouteId, out TFullPath, out TAllParams, out TFullSearchSchema> {
|
|
5
|
+
routeId: TRouteId;
|
|
6
|
+
fullPath: TFullPath;
|
|
7
|
+
pathname: string;
|
|
8
|
+
params: TAllParams;
|
|
9
|
+
search: TFullSearchSchema;
|
|
10
|
+
}
|
|
11
|
+
type MakeShouldBlockFnLocationUnion<TRouter extends AnyRouter = RegisteredRouter, TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>> = TRoute extends any ? ShouldBlockFnLocation<TRoute['id'], TRoute['fullPath'], TRoute['types']['allParams'], TRoute['types']['fullSearchSchema']> : never;
|
|
12
|
+
type BlockerResolver<TRouter extends AnyRouter = RegisteredRouter> = {
|
|
13
|
+
status: 'blocked';
|
|
14
|
+
current: MakeShouldBlockFnLocationUnion<TRouter>;
|
|
15
|
+
next: MakeShouldBlockFnLocationUnion<TRouter>;
|
|
16
|
+
action: HistoryAction;
|
|
17
|
+
proceed: () => void;
|
|
18
|
+
reset: () => void;
|
|
19
|
+
} | {
|
|
20
|
+
status: 'idle';
|
|
21
|
+
current: undefined;
|
|
22
|
+
next: undefined;
|
|
23
|
+
action: undefined;
|
|
24
|
+
proceed: undefined;
|
|
25
|
+
reset: undefined;
|
|
26
|
+
};
|
|
27
|
+
type ShouldBlockFnArgs<TRouter extends AnyRouter = RegisteredRouter> = {
|
|
28
|
+
current: MakeShouldBlockFnLocationUnion<TRouter>;
|
|
29
|
+
next: MakeShouldBlockFnLocationUnion<TRouter>;
|
|
30
|
+
action: HistoryAction;
|
|
31
|
+
};
|
|
32
|
+
export type ShouldBlockFn<TRouter extends AnyRouter = RegisteredRouter> = (args: ShouldBlockFnArgs<TRouter>) => boolean | Promise<boolean>;
|
|
33
|
+
export type UseBlockerOpts<TRouter extends AnyRouter = RegisteredRouter, TWithResolver extends boolean = boolean> = {
|
|
34
|
+
shouldBlockFn: ShouldBlockFn<TRouter>;
|
|
35
|
+
enableBeforeUnload?: boolean | (() => boolean);
|
|
36
|
+
disabled?: boolean;
|
|
37
|
+
withResolver?: TWithResolver;
|
|
38
|
+
};
|
|
39
|
+
type LegacyBlockerFn = () => Promise<any> | any;
|
|
40
|
+
type LegacyBlockerOpts = {
|
|
41
|
+
blockerFn?: LegacyBlockerFn;
|
|
42
|
+
condition?: boolean | any;
|
|
43
|
+
};
|
|
44
|
+
export declare function useBlocker<TRouter extends AnyRouter = RegisteredRouter, TWithResolver extends boolean = false>(opts: UseBlockerOpts<TRouter, TWithResolver>): TWithResolver extends true ? Vue.Ref<BlockerResolver<TRouter>> : void;
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated Use the shouldBlockFn property instead
|
|
47
|
+
*/
|
|
48
|
+
export declare function useBlocker(blockerFnOrOpts?: LegacyBlockerOpts): Vue.Ref<BlockerResolver>;
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated Use the UseBlockerOpts object syntax instead
|
|
51
|
+
*/
|
|
52
|
+
export declare function useBlocker(blockerFn?: LegacyBlockerFn, condition?: boolean | any): Vue.Ref<BlockerResolver>;
|
|
53
|
+
export declare function Block<TRouter extends AnyRouter = RegisteredRouter, TWithResolver extends boolean = boolean>(opts: PromptProps<TRouter, TWithResolver>): Vue.VNode;
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use the UseBlockerOpts property instead
|
|
56
|
+
*/
|
|
57
|
+
export declare function Block(opts: LegacyPromptProps): Vue.VNode;
|
|
58
|
+
type LegacyPromptProps = {
|
|
59
|
+
blockerFn?: LegacyBlockerFn;
|
|
60
|
+
condition?: boolean | any;
|
|
61
|
+
children?: Vue.VNode | ((params: BlockerResolver) => Vue.VNode);
|
|
62
|
+
};
|
|
63
|
+
type PromptProps<TRouter extends AnyRouter = RegisteredRouter, TWithResolver extends boolean = boolean, TParams = TWithResolver extends true ? BlockerResolver<TRouter> : void> = UseBlockerOpts<TRouter, TWithResolver> & {
|
|
64
|
+
children?: Vue.VNode | ((params: TParams) => Vue.VNode);
|
|
65
|
+
};
|
|
66
|
+
export {};
|