@tanstack/solid-router 1.121.20 → 1.121.21
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/dist/cjs/Asset.cjs +49 -0
- package/dist/cjs/Asset.cjs.map +1 -0
- package/dist/cjs/Asset.d.cts +2 -0
- package/dist/cjs/CatchBoundary.cjs +92 -0
- package/dist/cjs/CatchBoundary.cjs.map +1 -0
- package/dist/cjs/CatchBoundary.d.cts +11 -0
- package/dist/cjs/ClientOnly.cjs +36 -0
- package/dist/cjs/ClientOnly.cjs.map +1 -0
- package/dist/cjs/ClientOnly.d.cts +49 -0
- package/dist/cjs/HeadContent.cjs +146 -0
- package/dist/cjs/HeadContent.cjs.map +1 -0
- package/dist/cjs/HeadContent.d.cts +8 -0
- package/dist/cjs/Match.cjs +359 -0
- package/dist/cjs/Match.cjs.map +1 -0
- package/dist/cjs/Match.d.cts +8 -0
- package/dist/cjs/Matches.cjs +152 -0
- package/dist/cjs/Matches.cjs.map +1 -0
- package/dist/cjs/Matches.d.cts +24 -0
- package/dist/cjs/RouterProvider.cjs +45 -0
- package/dist/cjs/RouterProvider.cjs.map +1 -0
- package/dist/cjs/RouterProvider.d.cts +10 -0
- package/dist/cjs/SafeFragment.cjs +8 -0
- package/dist/cjs/SafeFragment.cjs.map +1 -0
- package/dist/cjs/SafeFragment.d.cts +1 -0
- package/dist/cjs/ScriptOnce.cjs +23 -0
- package/dist/cjs/ScriptOnce.cjs.map +1 -0
- package/dist/cjs/ScriptOnce.d.cts +5 -0
- package/dist/cjs/Scripts.cjs +48 -0
- package/dist/cjs/Scripts.cjs.map +1 -0
- package/dist/cjs/Scripts.d.cts +1 -0
- package/dist/cjs/ScrollRestoration.cjs +37 -0
- package/dist/cjs/ScrollRestoration.cjs.map +1 -0
- package/dist/cjs/ScrollRestoration.d.cts +14 -0
- package/dist/cjs/Transitioner.cjs +124 -0
- package/dist/cjs/Transitioner.cjs.map +1 -0
- package/dist/cjs/Transitioner.d.cts +1 -0
- package/dist/cjs/awaited.cjs +49 -0
- package/dist/cjs/awaited.cjs.map +1 -0
- package/dist/cjs/awaited.d.cts +11 -0
- package/dist/cjs/fileRoute.cjs +103 -0
- package/dist/cjs/fileRoute.cjs.map +1 -0
- package/dist/cjs/fileRoute.d.cts +54 -0
- package/dist/cjs/history.d.cts +8 -0
- package/dist/cjs/index.cjs +289 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +52 -0
- package/dist/cjs/lazyRouteComponent.cjs +73 -0
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -0
- package/dist/cjs/lazyRouteComponent.d.cts +2 -0
- package/dist/cjs/link.cjs +287 -0
- package/dist/cjs/link.cjs.map +1 -0
- package/dist/cjs/link.d.cts +44 -0
- package/dist/cjs/matchContext.cjs +25 -0
- package/dist/cjs/matchContext.cjs.map +1 -0
- package/dist/cjs/matchContext.d.cts +3 -0
- package/dist/cjs/not-found.cjs +42 -0
- package/dist/cjs/not-found.cjs.map +1 -0
- package/dist/cjs/not-found.d.cts +8 -0
- package/dist/cjs/renderRouteNotFound.cjs +23 -0
- package/dist/cjs/renderRouteNotFound.cjs.map +1 -0
- package/dist/cjs/renderRouteNotFound.d.cts +2 -0
- package/dist/cjs/route.cjs +236 -0
- package/dist/cjs/route.cjs.map +1 -0
- package/dist/cjs/route.d.cts +95 -0
- package/dist/cjs/router.cjs +22 -0
- package/dist/cjs/router.cjs.map +1 -0
- package/dist/cjs/router.d.cts +69 -0
- package/dist/cjs/routerContext.cjs +33 -0
- package/dist/cjs/routerContext.cjs.map +1 -0
- package/dist/cjs/routerContext.d.cts +8 -0
- package/dist/cjs/scroll-restoration.cjs +23 -0
- package/dist/cjs/scroll-restoration.cjs.map +1 -0
- package/dist/cjs/scroll-restoration.d.cts +1 -0
- package/dist/cjs/typePrimitives.d.cts +10 -0
- package/dist/cjs/useBlocker.cjs +171 -0
- package/dist/cjs/useBlocker.cjs.map +1 -0
- package/dist/cjs/useBlocker.d.cts +67 -0
- package/dist/cjs/useCanGoBack.cjs +8 -0
- package/dist/cjs/useCanGoBack.cjs.map +1 -0
- package/dist/cjs/useCanGoBack.d.cts +1 -0
- package/dist/cjs/useLoaderData.cjs +14 -0
- package/dist/cjs/useLoaderData.cjs.map +1 -0
- package/dist/cjs/useLoaderData.d.cts +8 -0
- package/dist/cjs/useLoaderDeps.cjs +17 -0
- package/dist/cjs/useLoaderDeps.cjs.map +1 -0
- package/dist/cjs/useLoaderDeps.d.cts +7 -0
- package/dist/cjs/useLocation.cjs +10 -0
- package/dist/cjs/useLocation.cjs.map +1 -0
- package/dist/cjs/useLocation.d.cts +7 -0
- package/dist/cjs/useMatch.cjs +39 -0
- package/dist/cjs/useMatch.cjs.map +1 -0
- package/dist/cjs/useMatch.d.cts +10 -0
- package/dist/cjs/useNavigate.cjs +46 -0
- package/dist/cjs/useNavigate.cjs.map +1 -0
- package/dist/cjs/useNavigate.d.cts +5 -0
- package/dist/cjs/useParams.cjs +15 -0
- package/dist/cjs/useParams.cjs.map +1 -0
- package/dist/cjs/useParams.d.cts +9 -0
- package/dist/cjs/useRouteContext.cjs +11 -0
- package/dist/cjs/useRouteContext.cjs.map +1 -0
- package/dist/cjs/useRouteContext.d.cts +4 -0
- package/dist/cjs/useRouter.cjs +29 -0
- package/dist/cjs/useRouter.cjs.map +1 -0
- package/dist/cjs/useRouter.d.cts +4 -0
- package/dist/cjs/useRouterState.cjs +16 -0
- package/dist/cjs/useRouterState.cjs.map +1 -0
- package/dist/cjs/useRouterState.d.cts +8 -0
- package/dist/cjs/useSearch.cjs +15 -0
- package/dist/cjs/useSearch.cjs.map +1 -0
- package/dist/cjs/useSearch.d.cts +9 -0
- package/dist/cjs/utils.cjs +58 -0
- package/dist/cjs/utils.cjs.map +1 -0
- package/dist/cjs/utils.d.cts +34 -0
- package/dist/esm/Asset.d.ts +2 -0
- package/dist/esm/Asset.js +49 -0
- package/dist/esm/Asset.js.map +1 -0
- package/dist/esm/CatchBoundary.d.ts +11 -0
- package/dist/esm/CatchBoundary.js +75 -0
- package/dist/esm/CatchBoundary.js.map +1 -0
- package/dist/esm/ClientOnly.d.ts +49 -0
- package/dist/esm/ClientOnly.js +19 -0
- package/dist/esm/ClientOnly.js.map +1 -0
- package/dist/esm/HeadContent.d.ts +8 -0
- package/dist/esm/HeadContent.js +129 -0
- package/dist/esm/HeadContent.js.map +1 -0
- package/dist/esm/Match.d.ts +8 -0
- package/dist/esm/Match.js +342 -0
- package/dist/esm/Match.js.map +1 -0
- package/dist/esm/Matches.d.ts +24 -0
- package/dist/esm/Matches.js +135 -0
- package/dist/esm/Matches.js.map +1 -0
- package/dist/esm/RouterProvider.d.ts +10 -0
- package/dist/esm/RouterProvider.js +45 -0
- package/dist/esm/RouterProvider.js.map +1 -0
- package/dist/esm/SafeFragment.d.ts +1 -0
- package/dist/esm/SafeFragment.js +8 -0
- package/dist/esm/SafeFragment.js.map +1 -0
- package/dist/esm/ScriptOnce.d.ts +5 -0
- package/dist/esm/ScriptOnce.js +23 -0
- package/dist/esm/ScriptOnce.js.map +1 -0
- package/dist/esm/Scripts.d.ts +1 -0
- package/dist/esm/Scripts.js +48 -0
- package/dist/esm/Scripts.js.map +1 -0
- package/dist/esm/ScrollRestoration.d.ts +14 -0
- package/dist/esm/ScrollRestoration.js +37 -0
- package/dist/esm/ScrollRestoration.js.map +1 -0
- package/dist/esm/Transitioner.d.ts +1 -0
- package/dist/esm/Transitioner.js +107 -0
- package/dist/esm/Transitioner.js.map +1 -0
- package/dist/esm/awaited.d.ts +11 -0
- package/dist/esm/awaited.js +32 -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 +52 -0
- package/dist/esm/index.js +151 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lazyRouteComponent.d.ts +2 -0
- package/dist/esm/lazyRouteComponent.js +73 -0
- package/dist/esm/lazyRouteComponent.js.map +1 -0
- package/dist/esm/link.d.ts +44 -0
- package/dist/esm/link.js +270 -0
- package/dist/esm/link.js.map +1 -0
- package/dist/esm/matchContext.d.ts +3 -0
- package/dist/esm/matchContext.js +8 -0
- package/dist/esm/matchContext.js.map +1 -0
- package/dist/esm/not-found.d.ts +8 -0
- package/dist/esm/not-found.js +42 -0
- package/dist/esm/not-found.js.map +1 -0
- package/dist/esm/renderRouteNotFound.d.ts +2 -0
- package/dist/esm/renderRouteNotFound.js +23 -0
- package/dist/esm/renderRouteNotFound.js.map +1 -0
- package/dist/esm/route.d.ts +95 -0
- package/dist/esm/route.js +236 -0
- package/dist/esm/route.js.map +1 -0
- package/dist/esm/router.d.ts +69 -0
- package/dist/esm/router.js +22 -0
- package/dist/esm/router.js.map +1 -0
- package/dist/esm/routerContext.d.ts +8 -0
- package/dist/esm/routerContext.js +16 -0
- package/dist/esm/routerContext.js.map +1 -0
- package/dist/esm/scroll-restoration.d.ts +1 -0
- package/dist/esm/scroll-restoration.js +23 -0
- package/dist/esm/scroll-restoration.js.map +1 -0
- package/dist/esm/typePrimitives.d.ts +10 -0
- package/dist/esm/useBlocker.d.ts +67 -0
- package/dist/esm/useBlocker.js +154 -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 +22 -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 +16 -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 +34 -0
- package/dist/esm/utils.js +41 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/source/Asset.d.ts +2 -0
- package/dist/source/Asset.jsx +23 -0
- package/dist/source/Asset.jsx.map +1 -0
- package/dist/source/CatchBoundary.d.ts +11 -0
- package/dist/source/CatchBoundary.jsx +43 -0
- package/dist/source/CatchBoundary.jsx.map +1 -0
- package/dist/source/ClientOnly.d.ts +49 -0
- package/dist/source/ClientOnly.jsx +51 -0
- package/dist/source/ClientOnly.jsx.map +1 -0
- package/dist/source/HeadContent.d.ts +8 -0
- package/dist/source/HeadContent.jsx +143 -0
- package/dist/source/HeadContent.jsx.map +1 -0
- package/dist/source/Match.d.ts +8 -0
- package/dist/source/Match.jsx +261 -0
- package/dist/source/Match.jsx.map +1 -0
- package/dist/source/Matches.d.ts +24 -0
- package/dist/source/Matches.jsx +104 -0
- package/dist/source/Matches.jsx.map +1 -0
- package/dist/source/RouterProvider.d.ts +10 -0
- package/dist/source/RouterProvider.jsx +27 -0
- package/dist/source/RouterProvider.jsx.map +1 -0
- package/dist/source/SafeFragment.d.ts +1 -0
- package/dist/source/SafeFragment.jsx +4 -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 +1 -0
- package/dist/source/Transitioner.jsx +102 -0
- package/dist/source/Transitioner.jsx.map +1 -0
- package/dist/source/awaited.d.ts +11 -0
- package/dist/source/awaited.jsx +19 -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 +52 -0
- package/dist/source/index.jsx +43 -0
- package/dist/source/index.jsx.map +1 -0
- package/dist/source/lazyRouteComponent.d.ts +2 -0
- package/dist/source/lazyRouteComponent.jsx +83 -0
- package/dist/source/lazyRouteComponent.jsx.map +1 -0
- package/dist/source/link.d.ts +44 -0
- package/dist/source/link.jsx +338 -0
- package/dist/source/link.jsx.map +1 -0
- package/dist/source/matchContext.d.ts +3 -0
- package/dist/source/matchContext.jsx +5 -0
- package/dist/source/matchContext.jsx.map +1 -0
- package/dist/source/not-found.d.ts +8 -0
- package/dist/source/not-found.jsx +30 -0
- package/dist/source/not-found.jsx.map +1 -0
- package/dist/source/renderRouteNotFound.d.ts +2 -0
- package/dist/source/renderRouteNotFound.jsx +15 -0
- package/dist/source/renderRouteNotFound.jsx.map +1 -0
- package/dist/source/route.d.ts +96 -0
- package/dist/source/route.jsx +179 -0
- package/dist/source/route.jsx.map +1 -0
- package/dist/source/router.d.ts +70 -0
- package/dist/source/router.js +21 -0
- package/dist/source/router.js.map +1 -0
- package/dist/source/routerContext.d.ts +8 -0
- package/dist/source/routerContext.jsx +13 -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 +67 -0
- package/dist/source/useBlocker.jsx +153 -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 +19 -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 +14 -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 +34 -0
- package/dist/source/utils.js +59 -0
- package/dist/source/utils.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import * as Solid from 'solid-js';
|
|
2
|
+
import { mergeRefs } from '@solid-primitives/refs';
|
|
3
|
+
import { deepEqual, exactPathTest, functionalUpdate, preloadWarning, removeTrailingSlash, } from '@tanstack/router-core';
|
|
4
|
+
import { Dynamic } from 'solid-js/web';
|
|
5
|
+
import { useRouterState } from './useRouterState';
|
|
6
|
+
import { useRouter } from './useRouter';
|
|
7
|
+
import { useIntersectionObserver } from './utils';
|
|
8
|
+
import { useMatches } from './Matches';
|
|
9
|
+
export function useLinkProps(options) {
|
|
10
|
+
const router = useRouter();
|
|
11
|
+
const [isTransitioning, setIsTransitioning] = Solid.createSignal(false);
|
|
12
|
+
let hasRenderFetched = false;
|
|
13
|
+
const [local, rest] = Solid.splitProps(Solid.mergeProps({
|
|
14
|
+
activeProps: () => ({ class: 'active' }),
|
|
15
|
+
inactiveProps: () => ({}),
|
|
16
|
+
}, options), [
|
|
17
|
+
'activeProps',
|
|
18
|
+
'inactiveProps',
|
|
19
|
+
'activeOptions',
|
|
20
|
+
'to',
|
|
21
|
+
'preload',
|
|
22
|
+
'preloadDelay',
|
|
23
|
+
'hashScrollIntoView',
|
|
24
|
+
'replace',
|
|
25
|
+
'startTransition',
|
|
26
|
+
'resetScroll',
|
|
27
|
+
'viewTransition',
|
|
28
|
+
'target',
|
|
29
|
+
'disabled',
|
|
30
|
+
'style',
|
|
31
|
+
'class',
|
|
32
|
+
'onClick',
|
|
33
|
+
'onFocus',
|
|
34
|
+
'onMouseEnter',
|
|
35
|
+
'onMouseLeave',
|
|
36
|
+
'onMouseOver',
|
|
37
|
+
'onMouseOut',
|
|
38
|
+
'onTouchStart',
|
|
39
|
+
'ignoreBlocker',
|
|
40
|
+
]);
|
|
41
|
+
// const {
|
|
42
|
+
// // custom props
|
|
43
|
+
// activeProps = () => ({ class: 'active' }),
|
|
44
|
+
// inactiveProps = () => ({}),
|
|
45
|
+
// activeOptions,
|
|
46
|
+
// to,
|
|
47
|
+
// preload: userPreload,
|
|
48
|
+
// preloadDelay: userPreloadDelay,
|
|
49
|
+
// hashScrollIntoView,
|
|
50
|
+
// replace,
|
|
51
|
+
// startTransition,
|
|
52
|
+
// resetScroll,
|
|
53
|
+
// viewTransition,
|
|
54
|
+
// // element props
|
|
55
|
+
// children,
|
|
56
|
+
// target,
|
|
57
|
+
// disabled,
|
|
58
|
+
// style,
|
|
59
|
+
// class,
|
|
60
|
+
// onClick,
|
|
61
|
+
// onFocus,
|
|
62
|
+
// onMouseEnter,
|
|
63
|
+
// onMouseLeave,
|
|
64
|
+
// onTouchStart,
|
|
65
|
+
// ignoreBlocker,
|
|
66
|
+
// ...rest
|
|
67
|
+
// } = options
|
|
68
|
+
const [_, propsSafeToSpread] = Solid.splitProps(rest, [
|
|
69
|
+
'params',
|
|
70
|
+
'search',
|
|
71
|
+
'hash',
|
|
72
|
+
'state',
|
|
73
|
+
'mask',
|
|
74
|
+
'reloadDocument',
|
|
75
|
+
]);
|
|
76
|
+
// If this link simply reloads the current route,
|
|
77
|
+
// make sure it has a new key so it will trigger a data refresh
|
|
78
|
+
// If this `to` is a valid external URL, return
|
|
79
|
+
// null for LinkUtils
|
|
80
|
+
const type = () => {
|
|
81
|
+
try {
|
|
82
|
+
new URL(`${local.to}`);
|
|
83
|
+
return 'external';
|
|
84
|
+
}
|
|
85
|
+
catch { }
|
|
86
|
+
return 'internal';
|
|
87
|
+
};
|
|
88
|
+
const currentSearch = useRouterState({
|
|
89
|
+
select: (s) => s.location.searchStr,
|
|
90
|
+
});
|
|
91
|
+
// when `from` is not supplied, use the leaf route of the current matches as the `from` location
|
|
92
|
+
// so relative routing works as expected
|
|
93
|
+
const from = useMatches({
|
|
94
|
+
select: (matches) => options.from ?? matches[matches.length - 1]?.fullPath,
|
|
95
|
+
});
|
|
96
|
+
const _options = () => ({
|
|
97
|
+
...options,
|
|
98
|
+
from: from(),
|
|
99
|
+
});
|
|
100
|
+
const next = Solid.createMemo(() => {
|
|
101
|
+
currentSearch();
|
|
102
|
+
return router.buildLocation(_options());
|
|
103
|
+
});
|
|
104
|
+
const preload = Solid.createMemo(() => {
|
|
105
|
+
if (_options().reloadDocument) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return local.preload ?? router.options.defaultPreload;
|
|
109
|
+
});
|
|
110
|
+
const preloadDelay = () => local.preloadDelay ?? router.options.defaultPreloadDelay ?? 0;
|
|
111
|
+
const isActive = useRouterState({
|
|
112
|
+
select: (s) => {
|
|
113
|
+
if (local.activeOptions?.exact) {
|
|
114
|
+
const testExact = exactPathTest(s.location.pathname, next().pathname, router.basepath);
|
|
115
|
+
if (!testExact) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const currentPathSplit = removeTrailingSlash(s.location.pathname, router.basepath).split('/');
|
|
121
|
+
const nextPathSplit = removeTrailingSlash(next()?.pathname, router.basepath)?.split('/');
|
|
122
|
+
const pathIsFuzzyEqual = nextPathSplit?.every((d, i) => d === currentPathSplit[i]);
|
|
123
|
+
if (!pathIsFuzzyEqual) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (local.activeOptions?.includeSearch ?? true) {
|
|
128
|
+
const searchTest = deepEqual(s.location.search, next().search, {
|
|
129
|
+
partial: !local.activeOptions?.exact,
|
|
130
|
+
ignoreUndefined: !local.activeOptions?.explicitUndefined,
|
|
131
|
+
});
|
|
132
|
+
if (!searchTest) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (local.activeOptions?.includeHash) {
|
|
137
|
+
return s.location.hash === next().hash;
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
const doPreload = () => router.preloadRoute(_options()).catch((err) => {
|
|
143
|
+
console.warn(err);
|
|
144
|
+
console.warn(preloadWarning);
|
|
145
|
+
});
|
|
146
|
+
const preloadViewportIoCallback = (entry) => {
|
|
147
|
+
if (entry?.isIntersecting) {
|
|
148
|
+
doPreload();
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const [ref, setRef] = Solid.createSignal(null);
|
|
152
|
+
useIntersectionObserver(ref, preloadViewportIoCallback, { rootMargin: '100px' }, { disabled: !!local.disabled || !(preload() === 'viewport') });
|
|
153
|
+
Solid.createEffect(() => {
|
|
154
|
+
if (hasRenderFetched) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (!local.disabled && preload() === 'render') {
|
|
158
|
+
doPreload();
|
|
159
|
+
hasRenderFetched = true;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
if (type() === 'external') {
|
|
163
|
+
return Solid.mergeProps(propsSafeToSpread, {
|
|
164
|
+
ref,
|
|
165
|
+
get type() {
|
|
166
|
+
return type();
|
|
167
|
+
},
|
|
168
|
+
get href() {
|
|
169
|
+
return local.to;
|
|
170
|
+
},
|
|
171
|
+
}, Solid.splitProps(local, [
|
|
172
|
+
'target',
|
|
173
|
+
'disabled',
|
|
174
|
+
'style',
|
|
175
|
+
'class',
|
|
176
|
+
'onClick',
|
|
177
|
+
'onFocus',
|
|
178
|
+
'onMouseEnter',
|
|
179
|
+
'onMouseLeave',
|
|
180
|
+
'onMouseOut',
|
|
181
|
+
'onMouseOver',
|
|
182
|
+
'onTouchStart',
|
|
183
|
+
])[0]);
|
|
184
|
+
}
|
|
185
|
+
// The click handler
|
|
186
|
+
const handleClick = (e) => {
|
|
187
|
+
if (!local.disabled &&
|
|
188
|
+
!isCtrlEvent(e) &&
|
|
189
|
+
!e.defaultPrevented &&
|
|
190
|
+
(!local.target || local.target === '_self') &&
|
|
191
|
+
e.button === 0) {
|
|
192
|
+
e.preventDefault();
|
|
193
|
+
setIsTransitioning(true);
|
|
194
|
+
const unsub = router.subscribe('onResolved', () => {
|
|
195
|
+
unsub();
|
|
196
|
+
setIsTransitioning(false);
|
|
197
|
+
});
|
|
198
|
+
// All is well? Navigate!
|
|
199
|
+
// N.B. we don't call `router.commitLocation(next) here because we want to run `validateSearch` before committing
|
|
200
|
+
return router.navigate({
|
|
201
|
+
..._options(),
|
|
202
|
+
replace: local.replace,
|
|
203
|
+
resetScroll: local.resetScroll,
|
|
204
|
+
hashScrollIntoView: local.hashScrollIntoView,
|
|
205
|
+
startTransition: local.startTransition,
|
|
206
|
+
viewTransition: local.viewTransition,
|
|
207
|
+
ignoreBlocker: local.ignoreBlocker,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
// The click handler
|
|
212
|
+
const handleFocus = (_) => {
|
|
213
|
+
if (local.disabled)
|
|
214
|
+
return;
|
|
215
|
+
if (preload()) {
|
|
216
|
+
doPreload();
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
const handleTouchStart = handleFocus;
|
|
220
|
+
const handleEnter = (e) => {
|
|
221
|
+
if (local.disabled)
|
|
222
|
+
return;
|
|
223
|
+
const eventTarget = (e.target || {});
|
|
224
|
+
if (preload()) {
|
|
225
|
+
if (eventTarget.preloadTimeout) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
eventTarget.preloadTimeout = setTimeout(() => {
|
|
229
|
+
eventTarget.preloadTimeout = null;
|
|
230
|
+
doPreload();
|
|
231
|
+
}, preloadDelay());
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
const handleLeave = (e) => {
|
|
235
|
+
if (local.disabled)
|
|
236
|
+
return;
|
|
237
|
+
const eventTarget = (e.target || {});
|
|
238
|
+
if (eventTarget.preloadTimeout) {
|
|
239
|
+
clearTimeout(eventTarget.preloadTimeout);
|
|
240
|
+
eventTarget.preloadTimeout = null;
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
/** Call a JSX.EventHandlerUnion with the event. */
|
|
244
|
+
function callHandler(event, handler) {
|
|
245
|
+
if (handler) {
|
|
246
|
+
if (typeof handler === 'function') {
|
|
247
|
+
handler(event);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
handler[0](handler[1], event);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return event.defaultPrevented;
|
|
254
|
+
}
|
|
255
|
+
function composeEventHandlers(handlers) {
|
|
256
|
+
return (event) => {
|
|
257
|
+
for (const handler of handlers) {
|
|
258
|
+
callHandler(event, handler);
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
// Get the active props
|
|
263
|
+
const resolvedActiveProps = () => isActive() ? (functionalUpdate(local.activeProps, {}) ?? {}) : {};
|
|
264
|
+
// Get the inactive props
|
|
265
|
+
const resolvedInactiveProps = () => isActive() ? {} : functionalUpdate(local.inactiveProps, {});
|
|
266
|
+
const resolvedClassName = () => [local.class, resolvedActiveProps().class, resolvedInactiveProps().class]
|
|
267
|
+
.filter(Boolean)
|
|
268
|
+
.join(' ');
|
|
269
|
+
const resolvedStyle = () => ({
|
|
270
|
+
...local.style,
|
|
271
|
+
...resolvedActiveProps().style,
|
|
272
|
+
...resolvedInactiveProps().style,
|
|
273
|
+
});
|
|
274
|
+
const href = Solid.createMemo(() => {
|
|
275
|
+
const nextLocation = next();
|
|
276
|
+
const maskedLocation = nextLocation?.maskedLocation;
|
|
277
|
+
return _options().disabled
|
|
278
|
+
? undefined
|
|
279
|
+
: maskedLocation
|
|
280
|
+
? router.history.createHref(maskedLocation.href)
|
|
281
|
+
: router.history.createHref(nextLocation?.href);
|
|
282
|
+
});
|
|
283
|
+
return Solid.mergeProps(propsSafeToSpread, resolvedActiveProps, resolvedInactiveProps, () => {
|
|
284
|
+
return {
|
|
285
|
+
href: href(),
|
|
286
|
+
ref: mergeRefs(setRef, _options().ref),
|
|
287
|
+
onClick: composeEventHandlers([local.onClick, handleClick]),
|
|
288
|
+
onFocus: composeEventHandlers([local.onFocus, handleFocus]),
|
|
289
|
+
onMouseEnter: composeEventHandlers([local.onMouseEnter, handleEnter]),
|
|
290
|
+
onMouseOver: composeEventHandlers([local.onMouseOver, handleEnter]),
|
|
291
|
+
onMouseLeave: composeEventHandlers([local.onMouseLeave, handleLeave]),
|
|
292
|
+
onMouseOut: composeEventHandlers([local.onMouseOut, handleLeave]),
|
|
293
|
+
onTouchStart: composeEventHandlers([
|
|
294
|
+
local.onTouchStart,
|
|
295
|
+
handleTouchStart,
|
|
296
|
+
]),
|
|
297
|
+
disabled: !!local.disabled,
|
|
298
|
+
target: local.target,
|
|
299
|
+
...(Object.keys(resolvedStyle).length && { style: resolvedStyle }),
|
|
300
|
+
...(resolvedClassName() && { class: resolvedClassName() }),
|
|
301
|
+
...(local.disabled && {
|
|
302
|
+
role: 'link',
|
|
303
|
+
'aria-disabled': true,
|
|
304
|
+
}),
|
|
305
|
+
...(isActive() && { 'data-status': 'active', 'aria-current': 'page' }),
|
|
306
|
+
...(isTransitioning() && { 'data-transitioning': 'transitioning' }),
|
|
307
|
+
};
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
export function createLink(Comp) {
|
|
311
|
+
return (props) => <Link {...props} _asChild={Comp}/>;
|
|
312
|
+
}
|
|
313
|
+
export const Link = (props) => {
|
|
314
|
+
const [local, rest] = Solid.splitProps(props, ['_asChild', 'children']);
|
|
315
|
+
const [_, linkProps] = Solid.splitProps(useLinkProps(rest), ['type']);
|
|
316
|
+
const children = Solid.createMemo(() => {
|
|
317
|
+
const ch = local.children;
|
|
318
|
+
if (typeof ch === 'function') {
|
|
319
|
+
return ch({
|
|
320
|
+
get isActive() {
|
|
321
|
+
return linkProps['data-status'] === 'active';
|
|
322
|
+
},
|
|
323
|
+
isTransitioning: false,
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
return ch;
|
|
327
|
+
});
|
|
328
|
+
return (<Dynamic component={local._asChild ? local._asChild : 'a'} {...linkProps}>
|
|
329
|
+
{children()}
|
|
330
|
+
</Dynamic>);
|
|
331
|
+
};
|
|
332
|
+
function isCtrlEvent(e) {
|
|
333
|
+
return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
|
|
334
|
+
}
|
|
335
|
+
export const linkOptions = (options) => {
|
|
336
|
+
return options;
|
|
337
|
+
};
|
|
338
|
+
//# sourceMappingURL=link.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.jsx","sourceRoot":"","sources":["../../src/link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AActC,MAAM,UAAU,YAAY,CAO1B,OAAqE;IAErE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACvE,IAAI,gBAAgB,GAAG,KAAK,CAAA;IAE5B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CACpC,KAAK,CAAC,UAAU,CACd;QACE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACxC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;KAC1B,EACD,OAAO,CACR,EACD;QACE,aAAa;QACb,eAAe;QACf,eAAe;QACf,IAAI;QACJ,SAAS;QACT,cAAc;QACd,oBAAoB;QACpB,SAAS;QACT,iBAAiB;QACjB,aAAa;QACb,gBAAgB;QAChB,QAAQ;QACR,UAAU;QACV,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,cAAc;QACd,cAAc;QACd,aAAa;QACb,YAAY;QACZ,cAAc;QACd,eAAe;KAChB,CACF,CAAA;IAED,UAAU;IACV,oBAAoB;IACpB,+CAA+C;IAC/C,gCAAgC;IAChC,mBAAmB;IACnB,QAAQ;IACR,0BAA0B;IAC1B,oCAAoC;IACpC,wBAAwB;IACxB,aAAa;IACb,qBAAqB;IACrB,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,cAAc;IACd,WAAW;IACX,WAAW;IACX,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,YAAY;IACZ,cAAc;IAEd,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;QACpD,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,gBAAgB;KACjB,CAAC,CAAA;IAEF,iDAAiD;IACjD,+DAA+D;IAE/D,+CAA+C;IAC/C,qBAAqB;IAErB,MAAM,IAAI,GAA4C,GAAG,EAAE;QACzD,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;YACtB,OAAO,UAAU,CAAA;QACnB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,cAAc,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS;KACpC,CAAC,CAAA;IAEF,gGAAgG;IAChG,wCAAwC;IACxC,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAQ;KAC3E,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,GAAG,OAAO;QACV,IAAI,EAAE,IAAI,EAAE;KACb,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;QACjC,aAAa,EAAE,CAAA;QACf,OAAO,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAS,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;QACpC,IAAI,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAA;IACvD,CAAC,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAA;IAE/D,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,aAAa,CAC7B,CAAC,CAAC,QAAQ,CAAC,QAAQ,EACnB,IAAI,EAAE,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,CAChB,CAAA;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,mBAAmB,CAC1C,CAAC,CAAC,QAAQ,CAAC,QAAQ,EACnB,MAAM,CAAC,QAAQ,CAChB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,aAAa,GAAG,mBAAmB,CACvC,IAAI,EAAE,EAAE,QAAQ,EAChB,MAAM,CAAC,QAAQ,CAChB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;gBAEb,MAAM,gBAAgB,GAAG,aAAa,EAAE,KAAK,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,CACpC,CAAA;gBACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,aAAa,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;oBAC7D,OAAO,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK;oBACpC,eAAe,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,iBAAiB;iBACzD,CAAC,CAAA;gBACF,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;gBACrC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,IAAI,CAAA;YACxC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;QACxD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEJ,MAAM,yBAAyB,GAAG,CAChC,KAA4C,EAC5C,EAAE;QACF,IAAI,KAAK,EAAE,cAAc,EAAE,CAAC;YAC1B,SAAS,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAiB,IAAI,CAAC,CAAA;IAE9D,uBAAuB,CACrB,GAAG,EACH,yBAAyB,EACzB,EAAE,UAAU,EAAE,OAAO,EAAE,EACvB,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,EAAE,CAC9D,CAAA;IAED,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;QACtB,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC9C,SAAS,EAAE,CAAA;YACX,gBAAgB,GAAG,IAAI,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,UAAU,CACrB,iBAAiB,EACjB;YACE,GAAG;YACH,IAAI,IAAI;gBACN,OAAO,IAAI,EAAE,CAAA;YACf,CAAC;YACD,IAAI,IAAI;gBACN,OAAO,KAAK,CAAC,EAAE,CAAA;YACjB,CAAC;SACF,EACD,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;YACtB,QAAQ;YACR,UAAU;YACV,OAAO;YACP,OAAO;YACP,SAAS;YACT,SAAS;YACT,cAAc;YACd,cAAc;YACd,YAAY;YACZ,aAAa;YACb,cAAc;SACf,CAAC,CAAC,CAAC,CAAC,CACC,CAAA;IACV,CAAC;IAED,oBAAoB;IACpB,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;QACpC,IACE,CAAC,KAAK,CAAC,QAAQ;YACf,CAAC,WAAW,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,CAAC,gBAAgB;YACnB,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;YAC3C,CAAC,CAAC,MAAM,KAAK,CAAC,EACd,CAAC;YACD,CAAC,CAAC,cAAc,EAAE,CAAA;YAElB,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAExB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE;gBAChD,KAAK,EAAE,CAAA;gBACP,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;YAEF,yBAAyB;YACzB,iHAAiH;YACjH,OAAO,MAAM,CAAC,QAAQ,CAAC;gBACrB,GAAG,QAAQ,EAAE;gBACb,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;gBAC5C,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,aAAa,EAAE,KAAK,CAAC,aAAa;aACnC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAA;IAED,oBAAoB;IACpB,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;QACpC,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAM;QAC1B,IAAI,OAAO,EAAE,EAAE,CAAC;YACd,SAAS,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAA;IAEpC,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;QACpC,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAM;QAC1B,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAA6B,CAAA;QAEhE,IAAI,OAAO,EAAE,EAAE,CAAC;YACd,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;gBAC/B,OAAM;YACR,CAAC;YAED,WAAW,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3C,WAAW,CAAC,cAAc,GAAG,IAAI,CAAA;gBACjC,SAAS,EAAE,CAAA;YACb,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;QACpC,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAM;QAC1B,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAA6B,CAAA;QAEhE,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;YACxC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAA;QACnC,CAAC;IACH,CAAC,CAAA;IAED,mDAAmD;IACnD,SAAS,WAAW,CAClB,KAAqD,EACrD,OAA2D;QAE3D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,gBAAgB,CAAA;IAC/B,CAAC;IAED,SAAS,oBAAoB,CAC3B,QAAgE;QAEhE,OAAO,CAAC,KAAU,EAAE,EAAE;YACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC7B,CAAC;QACH,CAAC,CAAA;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,mBAAmB,GAErB,GAAG,EAAE,CACP,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAkB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE1E,yBAAyB;IACzB,MAAM,qBAAqB,GAGe,GAAG,EAAE,CAC7C,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;IAE7D,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAC7B,CAAC,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE,CAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,KAAK,CAAC;SACtE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAA;IAEd,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC;QAC3B,GAAG,KAAK,CAAC,KAAK;QACd,GAAG,mBAAmB,EAAE,CAAC,KAAK;QAC9B,GAAG,qBAAqB,EAAE,CAAC,KAAK;KACjC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;QACjC,MAAM,YAAY,GAAG,IAAI,EAAE,CAAA;QAC3B,MAAM,cAAc,GAAG,YAAY,EAAE,cAAc,CAAA;QAEnD,OAAO,QAAQ,EAAE,CAAC,QAAQ;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,cAAc;gBACd,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC;gBAChD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,UAAU,CACrB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,GAAG,EAAE;QACH,OAAO;YACL,IAAI,EAAE,IAAI,EAAE;YACZ,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;YACtC,OAAO,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3D,OAAO,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3D,YAAY,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACrE,WAAW,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACnE,YAAY,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACrE,UAAU,EAAE,oBAAoB,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACjE,YAAY,EAAE,oBAAoB,CAAC;gBACjC,KAAK,CAAC,YAAY;gBAClB,gBAAgB;aACjB,CAAC;YACF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;YAClE,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI;gBACpB,IAAI,EAAE,MAAM;gBACZ,eAAe,EAAE,IAAI;aACtB,CAAC;YACF,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;YACtE,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC;SACpE,CAAA;IACH,CAAC,CACK,CAAA;AACV,CAAC;AAoHD,MAAM,UAAU,UAAU,CACxB,IAA0E;IAE1E,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAG,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAuB,CAAC,KAAK,EAAE,EAAE;IAChD,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CACpC,KAAyC,EACzC,CAAC,UAAU,EAAE,UAAU,CAAC,CACzB,CAAA;IAED,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,UAAU,CACrC,YAAY,CAAC,IAAsB,CAAC,EACpC,CAAC,MAAM,CAAC,CACT,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE;QACrC,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAA;QACzB,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;gBACR,IAAI,QAAQ;oBACV,OAAQ,SAAiB,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAA;gBACvD,CAAC;gBACD,eAAe,EAAE,KAAK;aACvB,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,EAA8B,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CACvE;MAAA,CAAC,QAAQ,EAAE,CACb;IAAA,EAAE,OAAO,CAAC,CACX,CAAA;AACH,CAAC,CAAA;AAED,SAAS,WAAW,CAAC,CAAa;IAChC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;AAC7D,CAAC;AAkBD,MAAM,CAAC,MAAM,WAAW,GAAuB,CAAC,OAAO,EAAE,EAAE;IACzD,OAAO,OAAc,CAAA;AACvB,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as Solid from 'solid-js';
|
|
2
|
+
export const matchContext = Solid.createContext(() => undefined);
|
|
3
|
+
// N.B. this only exists so we can conditionally call useContext on it when we are not interested in the nearest match
|
|
4
|
+
export const dummyMatchContext = Solid.createContext(() => undefined);
|
|
5
|
+
//# sourceMappingURL=matchContext.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchContext.jsx","sourceRoot":"","sources":["../../src/matchContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAE7C,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAElB,sHAAsH;AACtH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAElD,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as Solid from 'solid-js';
|
|
2
|
+
import type { NotFoundError } from '@tanstack/router-core';
|
|
3
|
+
export declare function CatchNotFound(props: {
|
|
4
|
+
fallback?: (error: NotFoundError) => Solid.JSX.Element;
|
|
5
|
+
onCatch?: (error: Error) => void;
|
|
6
|
+
children: Solid.JSX.Element;
|
|
7
|
+
}): Solid.JSX.Element;
|
|
8
|
+
export declare function DefaultGlobalNotFound(): Solid.JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isNotFound } from '@tanstack/router-core';
|
|
2
|
+
import { CatchBoundary } from './CatchBoundary';
|
|
3
|
+
import { useRouterState } from './useRouterState';
|
|
4
|
+
export function CatchNotFound(props) {
|
|
5
|
+
// TODO: Some way for the user to programmatically reset the not-found boundary?
|
|
6
|
+
const resetKey = useRouterState({
|
|
7
|
+
select: (s) => `not-found-${s.location.pathname}-${s.status}`,
|
|
8
|
+
});
|
|
9
|
+
return (<CatchBoundary getResetKey={() => resetKey()} onCatch={(error) => {
|
|
10
|
+
if (isNotFound(error)) {
|
|
11
|
+
props.onCatch?.(error);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
}} errorComponent={({ error }) => {
|
|
17
|
+
if (isNotFound(error)) {
|
|
18
|
+
return props.fallback?.(error);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
}}>
|
|
24
|
+
{props.children}
|
|
25
|
+
</CatchBoundary>);
|
|
26
|
+
}
|
|
27
|
+
export function DefaultGlobalNotFound() {
|
|
28
|
+
return <p>Not Found</p>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=not-found.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-found.jsx","sourceRoot":"","sources":["../../src/not-found.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAIjD,MAAM,UAAU,aAAa,CAAC,KAI7B;IACC,gFAAgF;IAChF,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE;KAC9D,CAAC,CAAA;IAEF,OAAO,CACL,CAAC,aAAa,CACZ,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CACF,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAoB,EAAE,EAAE;YAC9C,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAEF;MAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;IAAA,EAAE,aAAa,CAAC,CACjB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import warning from 'tiny-warning';
|
|
2
|
+
import { DefaultGlobalNotFound } from './not-found';
|
|
3
|
+
export function renderRouteNotFound(router, route, data) {
|
|
4
|
+
if (!route.options.notFoundComponent) {
|
|
5
|
+
if (router.options.defaultNotFoundComponent) {
|
|
6
|
+
return <router.options.defaultNotFoundComponent data={data}/>;
|
|
7
|
+
}
|
|
8
|
+
if (process.env.NODE_ENV === 'development') {
|
|
9
|
+
warning(route.options.notFoundComponent, `A notFoundError was encountered on the route with ID "${route.id}", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<div>Not Found<div>)`);
|
|
10
|
+
}
|
|
11
|
+
return <DefaultGlobalNotFound />;
|
|
12
|
+
}
|
|
13
|
+
return <route.options.notFoundComponent data={data}/>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=renderRouteNotFound.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderRouteNotFound.jsx","sourceRoot":"","sources":["../../src/renderRouteNotFound.tsx"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAGnD,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,KAAe,EACf,IAAS;IAET,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAG,CAAA;QAChE,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAC/B,yDAAyD,KAAK,CAAC,EAAE,uPAAuP,CACzT,CAAA;QACH,CAAC;QAED,OAAO,CAAC,qBAAqB,CAAC,AAAD,EAAG,CAAA;IAClC,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAG,CAAA;AACxD,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { BaseRootRoute, BaseRoute, BaseRouteApi } from '@tanstack/router-core';
|
|
2
|
+
import type { AnyContext, AnyRoute, AnyRouter, ConstrainLiteral, ErrorComponentProps, NotFoundError, NotFoundRouteProps, RegisteredRouter, ResolveFullPath, ResolveId, ResolveParams, RootRoute as RootRouteCore, RootRouteId, RootRouteOptions, RouteConstraints, Route as RouteCore, RouteIds, RouteMask, RouteOptions, RouteTypesById, RouterCore, ToMaskOptions, UseNavigateResult } from '@tanstack/router-core';
|
|
3
|
+
import type { UseLoaderDataRoute } from './useLoaderData';
|
|
4
|
+
import type { UseMatchRoute } from './useMatch';
|
|
5
|
+
import type { UseLoaderDepsRoute } from './useLoaderDeps';
|
|
6
|
+
import type { UseParamsRoute } from './useParams';
|
|
7
|
+
import type { UseSearchRoute } from './useSearch';
|
|
8
|
+
import type * as Solid from 'solid-js';
|
|
9
|
+
import type { UseRouteContextRoute } from './useRouteContext';
|
|
10
|
+
import type { LinkComponentRoute } from './link';
|
|
11
|
+
declare module '@tanstack/router-core' {
|
|
12
|
+
interface UpdatableRouteOptionsExtensions {
|
|
13
|
+
component?: RouteComponent;
|
|
14
|
+
errorComponent?: false | null | ErrorRouteComponent;
|
|
15
|
+
notFoundComponent?: NotFoundRouteComponent;
|
|
16
|
+
pendingComponent?: RouteComponent;
|
|
17
|
+
}
|
|
18
|
+
interface RouteExtensions<in out TId extends string, in out TFullPath extends string> {
|
|
19
|
+
useMatch: UseMatchRoute<TId>;
|
|
20
|
+
useRouteContext: UseRouteContextRoute<TId>;
|
|
21
|
+
useSearch: UseSearchRoute<TId>;
|
|
22
|
+
useParams: UseParamsRoute<TId>;
|
|
23
|
+
useLoaderDeps: UseLoaderDepsRoute<TId>;
|
|
24
|
+
useLoaderData: UseLoaderDataRoute<TId>;
|
|
25
|
+
useNavigate: () => UseNavigateResult<TFullPath>;
|
|
26
|
+
Link: LinkComponentRoute<TFullPath>;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export declare function getRouteApi<const TId, TRouter extends AnyRouter = RegisteredRouter>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>): RouteApi<TId, TRouter>;
|
|
30
|
+
export declare class RouteApi<TId, TRouter extends AnyRouter = RegisteredRouter> extends BaseRouteApi<TId, TRouter> {
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Use the `getRouteApi` function instead.
|
|
33
|
+
*/
|
|
34
|
+
constructor({ id }: {
|
|
35
|
+
id: TId;
|
|
36
|
+
});
|
|
37
|
+
useMatch: UseMatchRoute<TId>;
|
|
38
|
+
useRouteContext: UseRouteContextRoute<TId>;
|
|
39
|
+
useSearch: UseSearchRoute<TId>;
|
|
40
|
+
useParams: UseParamsRoute<TId>;
|
|
41
|
+
useLoaderDeps: UseLoaderDepsRoute<TId>;
|
|
42
|
+
useLoaderData: UseLoaderDataRoute<TId>;
|
|
43
|
+
useNavigate: () => UseNavigateResult<RouteTypesById<TRouter, TId>["fullPath"]>;
|
|
44
|
+
notFound: (opts?: NotFoundError) => NotFoundError;
|
|
45
|
+
Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>;
|
|
46
|
+
}
|
|
47
|
+
export declare class Route<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> extends BaseRoute<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> implements RouteCore<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> {
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Use the `createRoute` function instead.
|
|
50
|
+
*/
|
|
51
|
+
constructor(options?: RouteOptions<TParentRoute, TId, TCustomId, TFullPath, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, TRouterContext, TRouteContextFn, TBeforeLoadFn>);
|
|
52
|
+
useMatch: UseMatchRoute<TId>;
|
|
53
|
+
useRouteContext: UseRouteContextRoute<TId>;
|
|
54
|
+
useSearch: UseSearchRoute<TId>;
|
|
55
|
+
useParams: UseParamsRoute<TId>;
|
|
56
|
+
useLoaderDeps: UseLoaderDepsRoute<TId>;
|
|
57
|
+
useLoaderData: UseLoaderDataRoute<TId>;
|
|
58
|
+
useNavigate: () => UseNavigateResult<TFullPath>;
|
|
59
|
+
Link: LinkComponentRoute<TFullPath>;
|
|
60
|
+
}
|
|
61
|
+
export declare function createRoute<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>(options: RouteOptions<TParentRoute, TId, TCustomId, TFullPath, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, AnyContext, TRouteContextFn, TBeforeLoadFn>): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, unknown>;
|
|
62
|
+
export type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>;
|
|
63
|
+
export declare function createRootRouteWithContext<TRouterContext extends {}>(): <TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TSearchValidator = undefined, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined>(options?: RootRouteOptions<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn>) => RootRoute<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, unknown, unknown>;
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated Use the `createRootRouteWithContext` function instead.
|
|
66
|
+
*/
|
|
67
|
+
export declare const rootRouteWithContext: typeof createRootRouteWithContext;
|
|
68
|
+
export declare class RootRoute<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> extends BaseRootRoute<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> implements RootRouteCore<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> {
|
|
69
|
+
/**
|
|
70
|
+
* @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.
|
|
71
|
+
*/
|
|
72
|
+
constructor(options?: RootRouteOptions<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn>);
|
|
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
|
+
Link: LinkComponentRoute<'/'>;
|
|
81
|
+
}
|
|
82
|
+
export declare function createRouteMask<TRouteTree extends AnyRoute, TFrom extends string, TTo extends string>(opts: {
|
|
83
|
+
routeTree: TRouteTree;
|
|
84
|
+
} & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>): RouteMask<TRouteTree>;
|
|
85
|
+
export type SolidNode = Solid.JSX.Element;
|
|
86
|
+
export type SyncRouteComponent<TProps> = (props: TProps) => Solid.JSX.Element;
|
|
87
|
+
export type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {
|
|
88
|
+
preload?: () => Promise<void>;
|
|
89
|
+
};
|
|
90
|
+
export type RouteComponent<TProps = any> = AsyncRouteComponent<TProps>;
|
|
91
|
+
export type ErrorRouteComponent = RouteComponent<ErrorComponentProps>;
|
|
92
|
+
export type NotFoundRouteComponent = SyncRouteComponent<NotFoundRouteProps>;
|
|
93
|
+
export declare class NotFoundRoute<TParentRoute extends AnyRootRoute, TRouterContext = AnyContext, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TSearchValidator = undefined, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown> extends Route<TParentRoute, '/404', '/404', '404', '404', TSearchValidator, {}, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren> {
|
|
94
|
+
constructor(options: Omit<RouteOptions<TParentRoute, string, string, string, string, TSearchValidator, {}, TLoaderDeps, TLoaderFn, TRouterContext, TRouteContextFn, TBeforeLoadFn>, 'caseSensitive' | 'parseParams' | 'stringifyParams' | 'path' | 'id' | 'params'>);
|
|
95
|
+
}
|
|
96
|
+
export declare function createRootRoute<TSearchValidator = undefined, TRouterContext = {}, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined>(options?: RootRouteOptions<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn>): RootRoute<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, unknown, unknown>;
|