@tanstack/solid-router 1.110.0 → 1.111.4
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/Matches.cjs.map +1 -1
- package/dist/cjs/Matches.d.cts +1 -3
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/RouterProvider.d.cts +0 -25
- package/dist/cjs/fileRoute.cjs.map +1 -1
- package/dist/cjs/fileRoute.d.cts +2 -14
- package/dist/cjs/index.d.cts +6 -7
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/link.d.cts +1 -73
- package/dist/cjs/not-found.cjs.map +1 -1
- package/dist/cjs/not-found.d.cts +1 -1
- package/dist/cjs/redirects.cjs.map +1 -1
- package/dist/cjs/redirects.d.cts +1 -3
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +10 -50
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/router.d.cts +2 -8
- package/dist/cjs/typePrimitives.d.cts +2 -3
- package/dist/cjs/useBlocker.cjs.map +1 -1
- package/dist/cjs/useBlocker.d.cts +1 -1
- package/dist/cjs/useLoaderData.cjs.map +1 -1
- package/dist/cjs/useLoaderData.d.cts +1 -2
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLoaderDeps.d.cts +1 -2
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useNavigate.d.cts +1 -1
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useParams.d.cts +1 -2
- package/dist/cjs/useRouteContext.cjs.map +1 -1
- package/dist/cjs/useRouteContext.d.cts +1 -2
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/useSearch.d.cts +1 -2
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/cjs/utils.d.cts +2 -3
- package/dist/esm/Matches.d.ts +1 -3
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.d.ts +0 -25
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/fileRoute.d.ts +2 -14
- package/dist/esm/fileRoute.js.map +1 -1
- package/dist/esm/index.d.ts +6 -7
- package/dist/esm/link.d.ts +1 -73
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/not-found.d.ts +1 -1
- package/dist/esm/not-found.js.map +1 -1
- package/dist/esm/redirects.d.ts +1 -3
- package/dist/esm/redirects.js.map +1 -1
- package/dist/esm/route.d.ts +10 -50
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/router.d.ts +2 -8
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/typePrimitives.d.ts +2 -3
- package/dist/esm/useBlocker.d.ts +1 -1
- package/dist/esm/useBlocker.js.map +1 -1
- package/dist/esm/useLoaderData.d.ts +1 -2
- package/dist/esm/useLoaderData.js.map +1 -1
- package/dist/esm/useLoaderDeps.d.ts +1 -2
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useNavigate.d.ts +1 -1
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.d.ts +1 -2
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouteContext.d.ts +1 -2
- package/dist/esm/useRouteContext.js.map +1 -1
- package/dist/esm/useSearch.d.ts +1 -2
- package/dist/esm/useSearch.js.map +1 -1
- package/dist/esm/utils.d.ts +2 -3
- package/dist/esm/utils.js.map +1 -1
- 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 +11 -0
- package/dist/source/CatchBoundary.jsx +43 -0
- package/dist/source/CatchBoundary.jsx.map +1 -0
- package/dist/source/HeadContent.d.ts +8 -0
- package/dist/source/HeadContent.jsx +125 -0
- package/dist/source/HeadContent.jsx.map +1 -0
- package/dist/source/Match.d.ts +8 -0
- package/dist/source/Match.jsx +256 -0
- package/dist/source/Match.jsx.map +1 -0
- package/dist/source/Matches.d.ts +67 -0
- package/dist/source/Matches.jsx +103 -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 +15 -0
- package/dist/source/ScrollRestoration.jsx +36 -0
- package/dist/source/ScrollRestoration.jsx.map +1 -0
- package/dist/source/Transitioner.d.ts +1 -0
- package/dist/source/Transitioner.jsx +112 -0
- package/dist/source/Transitioner.jsx.map +1 -0
- package/dist/source/awaited.d.ts +11 -0
- package/dist/source/awaited.jsx +24 -0
- package/dist/source/awaited.jsx.map +1 -0
- package/dist/source/fileRoute.d.ts +46 -0
- package/dist/source/fileRoute.js +85 -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 +41 -0
- package/dist/source/index.jsx.map +1 -0
- package/dist/source/lazyRouteComponent.d.ts +7 -0
- package/dist/source/lazyRouteComponent.jsx +82 -0
- package/dist/source/lazyRouteComponent.jsx.map +1 -0
- package/dist/source/link.d.ts +41 -0
- package/dist/source/link.jsx +339 -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 +27 -0
- package/dist/source/not-found.jsx +39 -0
- package/dist/source/not-found.jsx.map +1 -0
- package/dist/source/redirects.d.ts +19 -0
- package/dist/source/redirects.js +25 -0
- package/dist/source/redirects.js.map +1 -0
- package/dist/source/renderRouteNotFound.d.ts +3 -0
- package/dist/source/renderRouteNotFound.jsx +15 -0
- package/dist/source/renderRouteNotFound.jsx.map +1 -0
- package/dist/source/route.d.ts +257 -0
- package/dist/source/route.js +240 -0
- package/dist/source/route.js.map +1 -0
- package/dist/source/router.d.ts +550 -0
- package/dist/source/router.js +1802 -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 +29 -0
- package/dist/source/scroll-restoration.jsx +244 -0
- package/dist/source/scroll-restoration.jsx.map +1 -0
- package/dist/source/typePrimitives.d.ts +70 -0
- package/dist/source/typePrimitives.js +2 -0
- package/dist/source/typePrimitives.js.map +1 -0
- package/dist/source/useBlocker.d.ts +68 -0
- package/dist/source/useBlocker.jsx +136 -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 +12 -0
- package/dist/source/useLoaderData.jsx +11 -0
- package/dist/source/useLoaderData.jsx.map +1 -0
- package/dist/source/useLoaderDeps.d.ts +11 -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 +14 -0
- package/dist/source/useMatch.jsx +19 -0
- package/dist/source/useMatch.jsx.map +1 -0
- package/dist/source/useNavigate.d.ts +7 -0
- package/dist/source/useNavigate.jsx +32 -0
- package/dist/source/useNavigate.jsx.map +1 -0
- package/dist/source/useParams.d.ts +14 -0
- package/dist/source/useParams.jsx +12 -0
- package/dist/source/useParams.jsx.map +1 -0
- package/dist/source/useRouteContext.d.ts +12 -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 +14 -0
- package/dist/source/useSearch.jsx +12 -0
- package/dist/source/useSearch.jsx.map +1 -0
- package/dist/source/utils.d.ts +43 -0
- package/dist/source/utils.js +59 -0
- package/dist/source/utils.js.map +1 -0
- package/package.json +6 -2
- package/src/Matches.tsx +11 -15
- package/src/RouterProvider.tsx +0 -48
- package/src/fileRoute.ts +3 -31
- package/src/index.tsx +47 -54
- package/src/link.tsx +3 -427
- package/src/not-found.tsx +1 -1
- package/src/redirects.ts +5 -3
- package/src/route.ts +101 -154
- package/src/router.ts +11 -25
- package/src/typePrimitives.ts +9 -8
- package/src/useBlocker.tsx +1 -1
- package/src/useLoaderData.tsx +1 -2
- package/src/useLoaderDeps.tsx +1 -2
- package/src/useNavigate.tsx +1 -1
- package/src/useParams.tsx +6 -2
- package/src/useRouteContext.ts +2 -2
- package/src/useSearch.tsx +6 -2
- package/src/utils.ts +1 -2
- package/dist/cjs/routeInfo.d.cts +0 -53
- package/dist/esm/routeInfo.d.ts +0 -53
- package/src/routeInfo.ts +0 -239
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { useRouter } from './useRouter';
|
|
2
|
+
import { defaultGetScrollRestorationKey, getCssSelector, scrollRestorationCache, setupScrollRestoration, } from './scroll-restoration';
|
|
3
|
+
function useScrollRestoration() {
|
|
4
|
+
const router = useRouter();
|
|
5
|
+
setupScrollRestoration(router, true);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated use createRouter's `scrollRestoration` option instead
|
|
9
|
+
*/
|
|
10
|
+
export function ScrollRestoration(_props) {
|
|
11
|
+
useScrollRestoration();
|
|
12
|
+
if (process.env.NODE_ENV === 'development') {
|
|
13
|
+
console.warn("The ScrollRestoration component is deprecated. Use createRouter's `scrollRestoration` option instead.");
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
export function useElementScrollRestoration(options) {
|
|
18
|
+
useScrollRestoration();
|
|
19
|
+
const router = useRouter();
|
|
20
|
+
const getKey = options.getKey || defaultGetScrollRestorationKey;
|
|
21
|
+
let elementSelector = '';
|
|
22
|
+
if (options.id) {
|
|
23
|
+
elementSelector = `[data-scroll-restoration-id="${options.id}"]`;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const element = options.getElement?.();
|
|
27
|
+
if (!element) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
elementSelector = getCssSelector(element);
|
|
31
|
+
}
|
|
32
|
+
const restoreKey = getKey(router.latestLocation);
|
|
33
|
+
const byKey = scrollRestorationCache.state[restoreKey];
|
|
34
|
+
return byKey?.[elementSelector];
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=ScrollRestoration.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollRestoration.jsx","sourceRoot":"","sources":["../../src/ScrollRestoration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EACL,8BAA8B,EAC9B,cAAc,EACd,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA;AAI7B,SAAS,oBAAoB;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAgC;IAChE,oBAAoB,EAAE,CAAA;IAEtB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CACV,uGAAuG,CACxG,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAWC;IAED,oBAAoB,EAAE,CAAA;IAEtB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,8BAA8B,CAAA;IAE/D,IAAI,eAAe,GAAG,EAAE,CAAA;IAExB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,eAAe,GAAG,gCAAgC,OAAO,CAAC,EAAE,IAAI,CAAA;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAA;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACtD,OAAO,KAAK,EAAE,CAAC,eAAe,CAAC,CAAA;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Transitioner(): null;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import * as Solid from 'solid-js';
|
|
2
|
+
import { getLocationChangeInfo, trimPathRight } from '@tanstack/router-core';
|
|
3
|
+
import { useRouter } from './useRouter';
|
|
4
|
+
import { useRouterState } from './useRouterState';
|
|
5
|
+
import { usePrevious } from './utils';
|
|
6
|
+
export function Transitioner() {
|
|
7
|
+
const router = useRouter();
|
|
8
|
+
let mountLoadForRouter = { router, mounted: false };
|
|
9
|
+
const isLoading = useRouterState({
|
|
10
|
+
select: ({ isLoading }) => isLoading,
|
|
11
|
+
});
|
|
12
|
+
const [isTransitioning, setIsTransitioning] = Solid.createSignal(false);
|
|
13
|
+
// Track pending state changes
|
|
14
|
+
const hasPendingMatches = useRouterState({
|
|
15
|
+
select: (s) => s.matches.some((d) => d.status === 'pending'),
|
|
16
|
+
});
|
|
17
|
+
const previousIsLoading = usePrevious(isLoading);
|
|
18
|
+
const isAnyPending = () => isLoading() || isTransitioning() || hasPendingMatches();
|
|
19
|
+
const previousIsAnyPending = usePrevious(isAnyPending);
|
|
20
|
+
const isPagePending = () => isLoading() || hasPendingMatches();
|
|
21
|
+
const previousIsPagePending = usePrevious(isPagePending);
|
|
22
|
+
if (!router.isServer) {
|
|
23
|
+
router.startSolidTransition = (fn) => {
|
|
24
|
+
setIsTransitioning(true);
|
|
25
|
+
fn();
|
|
26
|
+
setIsTransitioning(false);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// Subscribe to location changes
|
|
30
|
+
// and try to load the new location
|
|
31
|
+
Solid.onMount(() => {
|
|
32
|
+
const unsub = router.history.subscribe(router.load);
|
|
33
|
+
const nextLocation = router.buildLocation({
|
|
34
|
+
to: router.latestLocation.pathname,
|
|
35
|
+
search: true,
|
|
36
|
+
params: true,
|
|
37
|
+
hash: true,
|
|
38
|
+
state: true,
|
|
39
|
+
_includeValidateSearch: true,
|
|
40
|
+
});
|
|
41
|
+
if (trimPathRight(router.latestLocation.href) !==
|
|
42
|
+
trimPathRight(nextLocation.href)) {
|
|
43
|
+
router.commitLocation({ ...nextLocation, replace: true });
|
|
44
|
+
}
|
|
45
|
+
Solid.onCleanup(() => {
|
|
46
|
+
unsub();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
// Try to load the initial location
|
|
50
|
+
Solid.createRenderEffect(() => {
|
|
51
|
+
Solid.untrack(() => {
|
|
52
|
+
if ((typeof window !== 'undefined' && router.clientSsr) ||
|
|
53
|
+
(mountLoadForRouter.router === router && mountLoadForRouter.mounted)) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
mountLoadForRouter = { router, mounted: true };
|
|
57
|
+
const tryLoad = async () => {
|
|
58
|
+
try {
|
|
59
|
+
await router.load();
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.error(err);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
tryLoad();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
Solid.createRenderEffect(Solid.on([previousIsLoading, isLoading], ([previousIsLoading, isLoading]) => {
|
|
69
|
+
if (previousIsLoading.previous && !isLoading) {
|
|
70
|
+
router.emit({
|
|
71
|
+
type: 'onLoad',
|
|
72
|
+
...getLocationChangeInfo(router.state),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
Solid.createRenderEffect(Solid.on([isPagePending, previousIsPagePending], ([isPagePending, previousIsPagePending]) => {
|
|
77
|
+
// emit onBeforeRouteMount
|
|
78
|
+
if (previousIsPagePending.previous && !isPagePending) {
|
|
79
|
+
router.emit({
|
|
80
|
+
type: 'onBeforeRouteMount',
|
|
81
|
+
...getLocationChangeInfo(router.state),
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
Solid.createRenderEffect(Solid.on([isAnyPending, previousIsAnyPending], ([isAnyPending, previousIsAnyPending]) => {
|
|
86
|
+
// The router was pending and now it's not
|
|
87
|
+
if (previousIsAnyPending.previous && !isAnyPending) {
|
|
88
|
+
router.emit({
|
|
89
|
+
type: 'onResolved',
|
|
90
|
+
...getLocationChangeInfo(router.state),
|
|
91
|
+
});
|
|
92
|
+
router.__store.setState((s) => ({
|
|
93
|
+
...s,
|
|
94
|
+
status: 'idle',
|
|
95
|
+
resolvedLocation: s.location,
|
|
96
|
+
}));
|
|
97
|
+
if (typeof document !== 'undefined' &&
|
|
98
|
+
document.querySelector) {
|
|
99
|
+
const hashScrollIntoViewOptions = router.state.location.state.__hashScrollIntoViewOptions ?? true;
|
|
100
|
+
if (hashScrollIntoViewOptions &&
|
|
101
|
+
router.state.location.hash !== '') {
|
|
102
|
+
const el = document.getElementById(router.state.location.hash);
|
|
103
|
+
if (el) {
|
|
104
|
+
el.scrollIntoView(hashScrollIntoViewOptions);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}));
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=Transitioner.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transitioner.jsx","sourceRoot":"","sources":["../../src/Transitioner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,IAAI,kBAAkB,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACnD,MAAM,SAAS,GAAG,cAAc,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS;KACrC,CAAC,CAAA;IAEF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACvE,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,cAAc,CAAC;QACvC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;KAC7D,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IAEhD,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,SAAS,EAAE,IAAI,eAAe,EAAE,IAAI,iBAAiB,EAAE,CAAA;IACzD,MAAM,oBAAoB,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,IAAI,iBAAiB,EAAE,CAAA;IAC9D,MAAM,qBAAqB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;IAExD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,oBAAoB,GAAG,CAAC,EAAc,EAAE,EAAE;YAC/C,kBAAkB,CAAC,IAAI,CAAC,CAAA;YACxB,EAAE,EAAE,CAAA;YACJ,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC;IAED,gCAAgC;IAChC,mCAAmC;IACnC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;YACxC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ;YAClC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,sBAAsB,EAAE,IAAI;SAC7B,CAAC,CAAA;QAEF,IACE,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;YACzC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,EAChC,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACnB,KAAK,EAAE,CAAA;QACT,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,mCAAmC;IACnC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE;QAC5B,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;YACjB,IACE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC;gBACnD,CAAC,kBAAkB,CAAC,MAAM,KAAK,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,EACpE,CAAC;gBACD,OAAM;YACR,CAAC;YACD,kBAAkB,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YAC9C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBACrB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC,CAAA;YACD,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,kBAAkB,CACtB,KAAK,CAAC,EAAE,CACN,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAC9B,CAAC,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE,EAAE;QACjC,IAAI,iBAAiB,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;aACvC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CACF,CACF,CAAA;IACD,KAAK,CAAC,kBAAkB,CACtB,KAAK,CAAC,EAAE,CACN,CAAC,aAAa,EAAE,qBAAqB,CAAC,EACtC,CAAC,CAAC,aAAa,EAAE,qBAAqB,CAAC,EAAE,EAAE;QACzC,0BAA0B;QAC1B,IAAI,qBAAqB,CAAC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;aACvC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CACF,CACF,CAAA;IAED,KAAK,CAAC,kBAAkB,CACtB,KAAK,CAAC,EAAE,CACN,CAAC,YAAY,EAAE,oBAAoB,CAAC,EACpC,CAAC,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,EAAE;QACvC,0CAA0C;QAC1C,IAAI,oBAAoB,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,YAAY;gBAClB,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;aACvC,CAAC,CAAA;YAEF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,GAAG,CAAC;gBACJ,MAAM,EAAE,MAAM;gBACd,gBAAgB,EAAE,CAAC,CAAC,QAAQ;aAC7B,CAAC,CAAC,CAAA;YAEH,IACE,OAAO,QAAQ,KAAK,WAAW;gBAC9B,QAAgB,CAAC,aAAa,EAC/B,CAAC;gBACD,MAAM,yBAAyB,GAC7B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,2BAA2B,IAAI,IAAI,CAAA;gBAEjE,IACE,yBAAyB;oBACzB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,EACjC,CAAC;oBACD,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBAC9D,IAAI,EAAE,EAAE,CAAC;wBACP,EAAE,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAA;oBAC9C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CACF,CACF,CAAA;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as Solid from 'solid-js';
|
|
2
|
+
import type { DeferredPromise } from '@tanstack/router-core';
|
|
3
|
+
import type { SolidNode } from './route';
|
|
4
|
+
export type AwaitOptions<T> = {
|
|
5
|
+
promise: Promise<T>;
|
|
6
|
+
};
|
|
7
|
+
export declare function useAwaited<T>({ promise: _promise, }: AwaitOptions<T>): [T, DeferredPromise<T>];
|
|
8
|
+
export declare function Await<T>(props: AwaitOptions<T> & {
|
|
9
|
+
fallback?: SolidNode;
|
|
10
|
+
children: (result: T) => SolidNode;
|
|
11
|
+
}): Solid.JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as Solid from 'solid-js';
|
|
2
|
+
import { TSR_DEFERRED_PROMISE, defer } from '@tanstack/router-core';
|
|
3
|
+
export function useAwaited({ promise: _promise, }) {
|
|
4
|
+
const promise = defer(_promise);
|
|
5
|
+
if (promise[TSR_DEFERRED_PROMISE].status === 'pending') {
|
|
6
|
+
throw promise;
|
|
7
|
+
}
|
|
8
|
+
if (promise[TSR_DEFERRED_PROMISE].status === 'error') {
|
|
9
|
+
throw promise[TSR_DEFERRED_PROMISE].error;
|
|
10
|
+
}
|
|
11
|
+
return [promise[TSR_DEFERRED_PROMISE].data, promise];
|
|
12
|
+
}
|
|
13
|
+
export function Await(props) {
|
|
14
|
+
const inner = <AwaitInner {...props}/>;
|
|
15
|
+
if (props.fallback) {
|
|
16
|
+
return <Solid.Suspense fallback={props.fallback}>{inner}</Solid.Suspense>;
|
|
17
|
+
}
|
|
18
|
+
return inner;
|
|
19
|
+
}
|
|
20
|
+
function AwaitInner(props) {
|
|
21
|
+
const [data] = useAwaited(props);
|
|
22
|
+
return props.children(data);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=awaited.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awaited.jsx","sourceRoot":"","sources":["../../src/awaited.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAQnE,MAAM,UAAU,UAAU,CAAI,EAC5B,OAAO,EAAE,QAAQ,GACD;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;IAE/B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvD,MAAM,OAAO,CAAA;IACf,CAAC;IAED,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACrD,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAA;IAC3C,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,KAGC;IAED,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAG,CAAA;IACvC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CACjB,KAGC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAEhC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { UseParamsRoute } from './useParams';
|
|
2
|
+
import type { UseMatchRoute } from './useMatch';
|
|
3
|
+
import type { UseSearchRoute } from './useSearch';
|
|
4
|
+
import type { AnyContext, AnyPathParams, AnyValidator, Constrain, FileRoutesByPath, ResolveParams, RouteById, RouteIds } from '@tanstack/router-core';
|
|
5
|
+
import type { AnyRoute, FileBaseRouteOptions, Route, RouteConstraints, RouteLoaderFn, UpdatableRouteOptions } from './route';
|
|
6
|
+
import type { RegisteredRouter } from './router';
|
|
7
|
+
import type { UseLoaderDepsRoute } from './useLoaderDeps';
|
|
8
|
+
import type { UseLoaderDataRoute } from './useLoaderData';
|
|
9
|
+
import type { UseRouteContextRoute } from './useRouteContext';
|
|
10
|
+
export declare function createFileRoute<TFilePath extends keyof FileRoutesByPath, TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'], TId extends RouteConstraints['TId'] = FileRoutesByPath[TFilePath]['id'], TPath extends RouteConstraints['TPath'] = FileRoutesByPath[TFilePath]['path'], TFullPath extends RouteConstraints['TFullPath'] = FileRoutesByPath[TFilePath]['fullPath']>(path: TFilePath): FileRoute<TFilePath, TParentRoute, TId, TPath, TFullPath>['createRoute'];
|
|
11
|
+
/**
|
|
12
|
+
@deprecated It's no longer recommended to use the `FileRoute` class directly.
|
|
13
|
+
Instead, use `createFileRoute('/path/to/file')(options)` to create a file route.
|
|
14
|
+
*/
|
|
15
|
+
export declare class FileRoute<TFilePath extends keyof FileRoutesByPath, TParentRoute extends AnyRoute = FileRoutesByPath[TFilePath]['parentRoute'], TId extends RouteConstraints['TId'] = FileRoutesByPath[TFilePath]['id'], TPath extends RouteConstraints['TPath'] = FileRoutesByPath[TFilePath]['path'], TFullPath extends RouteConstraints['TFullPath'] = FileRoutesByPath[TFilePath]['fullPath']> {
|
|
16
|
+
path: TFilePath;
|
|
17
|
+
silent?: boolean;
|
|
18
|
+
constructor(path: TFilePath, _opts?: {
|
|
19
|
+
silent: boolean;
|
|
20
|
+
});
|
|
21
|
+
createRoute: <TSearchValidator = undefined, TParams = ResolveParams<TPath>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown>(options?: FileBaseRouteOptions<TParentRoute, TId, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, AnyContext, TRouteContextFn, TBeforeLoadFn> & UpdatableRouteOptions<TParentRoute, TId, TFullPath, TParams, TSearchValidator, TLoaderFn, TLoaderDeps, AnyContext, TRouteContextFn, TBeforeLoadFn>) => Route<TParentRoute, TPath, TFullPath, TFilePath, TId, TSearchValidator, TParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
@deprecated It's recommended not to split loaders into separate files.
|
|
25
|
+
Instead, place the loader function in the the main route file, inside the
|
|
26
|
+
`createFileRoute('/path/to/file)(options)` options.
|
|
27
|
+
*/
|
|
28
|
+
export declare function FileRouteLoader<TFilePath extends keyof FileRoutesByPath, TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute']>(_path: TFilePath): <TLoaderFn>(loaderFn: Constrain<TLoaderFn, RouteLoaderFn<TRoute['parentRoute'], TRoute['types']['id'], TRoute['types']['params'], TRoute['types']['loaderDeps'], TRoute['types']['routerContext'], TRoute['types']['routeContextFn'], TRoute['types']['beforeLoadFn']>>) => TLoaderFn;
|
|
29
|
+
export type LazyRouteOptions = Pick<UpdatableRouteOptions<AnyRoute, string, string, AnyPathParams, AnyValidator, {}, AnyContext, AnyContext, AnyContext, AnyContext>, 'component' | 'errorComponent' | 'pendingComponent' | 'notFoundComponent'>;
|
|
30
|
+
export declare class LazyRoute<TRoute extends AnyRoute> {
|
|
31
|
+
options: {
|
|
32
|
+
id: string;
|
|
33
|
+
} & LazyRouteOptions;
|
|
34
|
+
constructor(opts: {
|
|
35
|
+
id: string;
|
|
36
|
+
} & LazyRouteOptions);
|
|
37
|
+
useMatch: UseMatchRoute<TRoute['id']>;
|
|
38
|
+
useRouteContext: UseRouteContextRoute<TRoute['id']>;
|
|
39
|
+
useSearch: UseSearchRoute<TRoute['id']>;
|
|
40
|
+
useParams: UseParamsRoute<TRoute['id']>;
|
|
41
|
+
useLoaderDeps: UseLoaderDepsRoute<TRoute['id']>;
|
|
42
|
+
useLoaderData: UseLoaderDataRoute<TRoute['id']>;
|
|
43
|
+
useNavigate: () => import("./useNavigate").UseNavigateResult<string>;
|
|
44
|
+
}
|
|
45
|
+
export declare function createLazyRoute<TId extends RouteIds<RegisteredRouter['routeTree']>, TRoute extends AnyRoute = RouteById<RegisteredRouter['routeTree'], TId>>(id: TId): (opts: LazyRouteOptions) => LazyRoute<TRoute>;
|
|
46
|
+
export declare function createLazyFileRoute<TFilePath extends keyof FileRoutesByPath, TRoute extends FileRoutesByPath[TFilePath]['preLoaderRoute']>(id: TFilePath): (opts: LazyRouteOptions) => LazyRoute<TRoute>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import warning from 'tiny-warning';
|
|
2
|
+
import { createRoute } from './route';
|
|
3
|
+
import { useMatch } from './useMatch';
|
|
4
|
+
import { useLoaderDeps } from './useLoaderDeps';
|
|
5
|
+
import { useLoaderData } from './useLoaderData';
|
|
6
|
+
import { useSearch } from './useSearch';
|
|
7
|
+
import { useParams } from './useParams';
|
|
8
|
+
import { useNavigate } from './useNavigate';
|
|
9
|
+
export function createFileRoute(path) {
|
|
10
|
+
return new FileRoute(path, {
|
|
11
|
+
silent: true,
|
|
12
|
+
}).createRoute;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
@deprecated It's no longer recommended to use the `FileRoute` class directly.
|
|
16
|
+
Instead, use `createFileRoute('/path/to/file')(options)` to create a file route.
|
|
17
|
+
*/
|
|
18
|
+
export class FileRoute {
|
|
19
|
+
constructor(path, _opts) {
|
|
20
|
+
this.path = path;
|
|
21
|
+
this.createRoute = (options) => {
|
|
22
|
+
warning(this.silent, 'FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.');
|
|
23
|
+
const route = createRoute(options);
|
|
24
|
+
route.isRoot = false;
|
|
25
|
+
return route;
|
|
26
|
+
};
|
|
27
|
+
this.silent = _opts?.silent;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
@deprecated It's recommended not to split loaders into separate files.
|
|
32
|
+
Instead, place the loader function in the the main route file, inside the
|
|
33
|
+
`createFileRoute('/path/to/file)(options)` options.
|
|
34
|
+
*/
|
|
35
|
+
export function FileRouteLoader(_path) {
|
|
36
|
+
warning(false, `FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the the main route file, inside the \`createFileRoute('/path/to/file')(options)\` options`);
|
|
37
|
+
return (loaderFn) => loaderFn;
|
|
38
|
+
}
|
|
39
|
+
export class LazyRoute {
|
|
40
|
+
constructor(opts) {
|
|
41
|
+
this.useMatch = (opts) => {
|
|
42
|
+
return useMatch({
|
|
43
|
+
select: opts?.select,
|
|
44
|
+
from: this.options.id,
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
this.useRouteContext = (opts) => {
|
|
48
|
+
return useMatch({
|
|
49
|
+
from: this.options.id,
|
|
50
|
+
select: (d) => (opts?.select ? opts.select(d.context) : d.context),
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
this.useSearch = (opts) => {
|
|
54
|
+
return useSearch({
|
|
55
|
+
select: opts?.select,
|
|
56
|
+
from: this.options.id,
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
this.useParams = (opts) => {
|
|
60
|
+
return useParams({
|
|
61
|
+
select: opts?.select,
|
|
62
|
+
from: this.options.id,
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
this.useLoaderDeps = (opts) => {
|
|
66
|
+
return useLoaderDeps({ ...opts, from: this.options.id });
|
|
67
|
+
};
|
|
68
|
+
this.useLoaderData = (opts) => {
|
|
69
|
+
return useLoaderData({ ...opts, from: this.options.id });
|
|
70
|
+
};
|
|
71
|
+
this.useNavigate = () => {
|
|
72
|
+
return useNavigate({ from: this.options.id });
|
|
73
|
+
};
|
|
74
|
+
this.options = opts;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export function createLazyRoute(id) {
|
|
78
|
+
return (opts) => {
|
|
79
|
+
return new LazyRoute({ id: id, ...opts });
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export function createLazyFileRoute(id) {
|
|
83
|
+
return (opts) => new LazyRoute({ id, ...opts });
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=fileRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileRoute.js","sourceRoot":"","sources":["../../src/fileRoute.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AA4B3C,MAAM,UAAU,eAAe,CAQ7B,IAAe;IAEf,OAAO,IAAI,SAAS,CAAiD,IAAI,EAAE;QACzE,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,WAAW,CAAA;AAChB,CAAC;AAED;;;EAGE;AACF,MAAM,OAAO,SAAS;IAUpB,YACS,IAAe,EACtB,KAA2B;QADpB,SAAI,GAAJ,IAAI,CAAW;QAMxB,gBAAW,GAAG,CASZ,OAuBG,EAeH,EAAE;YACF,OAAO,CACL,IAAI,CAAC,MAAM,EACX,iIAAiI,CAClI,CAAA;YACD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAc,CAAC,CACxC;YAAC,KAAa,CAAC,MAAM,GAAG,KAAK,CAAA;YAC9B,OAAO,KAAY,CAAA;QACrB,CAAC,CAAA;QA1DC,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,MAAM,CAAA;IAC7B,CAAC;CA0DF;AAED;;;;EAIE;AACF,MAAM,UAAU,eAAe,CAI7B,KAAgB;IAehB,OAAO,CACL,KAAK,EACL,4MAA4M,CAC7M,CAAA;IACD,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAe,CAAA;AACtC,CAAC;AAkBD,MAAM,OAAO,SAAS;IAKpB,YACE,IAEoB;QAKtB,aAAQ,GAAgC,CAAC,IAAI,EAAE,EAAE;YAC/C,OAAO,QAAQ,CAAC;gBACd,MAAM,EAAE,IAAI,EAAE,MAAM;gBACpB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;aACf,CAAQ,CAAA;QAClB,CAAC,CAAA;QAED,oBAAe,GAAuC,CAAC,IAAI,EAAE,EAAE;YAC7D,OAAO,QAAQ,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBACrB,MAAM,EAAE,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aACxE,CAAQ,CAAA;QACX,CAAC,CAAA;QAED,cAAS,GAAiC,CAAC,IAAI,EAAE,EAAE;YACjD,OAAO,SAAS,CAAC;gBACf,MAAM,EAAE,IAAI,EAAE,MAAM;gBACpB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;aACf,CAAQ,CAAA;QAClB,CAAC,CAAA;QAED,cAAS,GAAiC,CAAC,IAAI,EAAE,EAAE;YACjD,OAAO,SAAS,CAAC;gBACf,MAAM,EAAE,IAAI,EAAE,MAAM;gBACpB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;aACf,CAAQ,CAAA;QAClB,CAAC,CAAA;QAED,kBAAa,GAAqC,CAAC,IAAI,EAAE,EAAE;YACzD,OAAO,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC,CAAA;QACjE,CAAC,CAAA;QAED,kBAAa,GAAqC,CAAC,IAAI,EAAE,EAAE;YACzD,OAAO,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAS,CAAC,CAAA;QACjE,CAAC,CAAA;QAED,gBAAW,GAAG,GAAG,EAAE;YACjB,OAAO,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/C,CAAC,CAAA;QAzCC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;CAyCF;AAED,MAAM,UAAU,eAAe,CAG7B,EAAO;IACP,OAAO,CAAC,IAAsB,EAAE,EAAE;QAChC,OAAO,IAAI,SAAS,CAAS,EAAE,EAAE,EAAE,EAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAGjC,EAAa;IACb,OAAO,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,SAAS,CAAS,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;AAC3E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/history.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export { default as invariant } from 'tiny-invariant';
|
|
2
|
+
export { default as warning } from 'tiny-warning';
|
|
3
|
+
export { defer, TSR_DEFERRED_PROMISE, isMatch, joinPaths, cleanPath, trimPathLeft, trimPathRight, trimPath, resolvePath, parsePathname, interpolatePath, matchPathname, removeBasepath, matchByPath, encode, decode, rootRouteId, defaultSerializeError, defaultParseSearch, defaultStringifySearch, parseSearchWith, stringifySearchWith, escapeJSON, // SSR
|
|
4
|
+
pick, functionalUpdate, replaceEqualDeep, isPlainObject, isPlainArray, deepEqual, shallow, createControlledPromise, retainSearchParams, stripSearchParams, } from '@tanstack/router-core';
|
|
5
|
+
export type { StartSerializer, Serializable, SerializerParse, SerializerParseBy, SerializerStringify, SerializerStringifyBy, DeferredPromiseState, DeferredPromise, ParsedLocation, ParsePathParams, RemoveTrailingSlashes, RemoveLeadingSlashes, ActiveOptions, Segment, ResolveRelativePath, RootRouteId, AnyPathParams, ResolveParams, SearchSchemaInput, AnyContext, RouteContext, PreloadableObj, RoutePathOptions, StaticDataRouteOption, RoutePathOptionsIntersection, UpdatableStaticRouteOption, MetaDescriptor, RouteLinkEntry, ParseParamsFn, SearchFilter, ResolveId, InferFullSearchSchema, InferFullSearchSchemaInput, ErrorRouteProps, ErrorComponentProps, NotFoundRouteProps, TrimPath, TrimPathLeft, TrimPathRight, ParseSplatParams, SplatParams, StringifyParamsFn, ParamsOptions, InferAllParams, InferAllContext, LooseReturnType, LooseAsyncReturnType, ContextReturnType, ContextAsyncReturnType, ResolveLoaderData, ResolveRouteContext, SearchSerializer, SearchParser, TrailingSlashOption, ExtractedEntry, ExtractedStream, ExtractedPromise, StreamState, Manifest, RouterManagedTag, ControlledPromise, Constrain, Expand, MergeAll, Assign, IntersectAssign, ResolveValidatorInput, ResolveValidatorOutput, AnyValidator, DefaultValidator, ValidatorFn, AnySchema, AnyValidatorAdapter, AnyValidatorFn, AnyValidatorObj, ResolveValidatorInputFn, ResolveValidatorOutputFn, ResolveSearchValidatorInput, ResolveSearchValidatorInputFn, Validator, ValidatorAdapter, ValidatorObj, NavigateFn, BuildLocationFn, InferDescendantToPaths, RelativeToPath, RelativeToParentPath, RelativeToCurrentPath, Register, AbsoluteToPath, RelativeToPathAutoComplete, NavigateOptions, ToOptions, ToMaskOptions, ToSubOptions, ResolveRoute, SearchParamOptions, PathParamOptions, ToPathOption, LinkOptions, MakeOptionalPathParams, AnyRouterWithContext, ParseRoute, RoutesById, RouteById, RouteIds, RoutesByPath, RouteByPath, RoutePaths, FullSearchSchema, AllParams, AllLoaderData, FullSearchSchemaInput, AllContext, CommitLocationOptions, MatchLocation, ResolveFullSearchSchema, ResolveFullSearchSchemaInput, ResolveAllParamsFromParent, RouteContextParameter, BeforeLoadContextParameter, ResolveAllContext, FullSearchSchemaOption, MakeRemountDepsOptionsUnion, RemountDepsOptions, FileRouteTypes, FileRoutesByPath, } from '@tanstack/router-core';
|
|
6
|
+
export { createHistory, createBrowserHistory, createHashHistory, createMemoryHistory, } from '@tanstack/history';
|
|
7
|
+
export type { BlockerFn, HistoryLocation, RouterHistory, ParsedPath, HistoryState, } from '@tanstack/history';
|
|
8
|
+
export { useAwaited, Await } from './awaited';
|
|
9
|
+
export type { AwaitOptions } from './awaited';
|
|
10
|
+
export { CatchBoundary, ErrorComponent } from './CatchBoundary';
|
|
11
|
+
export { FileRoute, createFileRoute, FileRouteLoader, LazyRoute, createLazyRoute, createLazyFileRoute, } from './fileRoute';
|
|
12
|
+
export type { LazyRouteOptions } from './fileRoute';
|
|
13
|
+
export * from './history';
|
|
14
|
+
export { lazyRouteComponent } from './lazyRouteComponent';
|
|
15
|
+
export { useLinkProps, createLink, Link, linkOptions } from './link';
|
|
16
|
+
export type { UseLinkPropsOptions, ActiveLinkOptions, LinkProps, LinkComponent, LinkComponentProps, CreateLinkProps, } from './link';
|
|
17
|
+
export { Matches, useMatchRoute, MatchRoute, useMatches, useParentMatches, useChildMatches, } from './Matches';
|
|
18
|
+
export type { RouteMatch, AnyRouteMatch, MatchRouteOptions, UseMatchRouteOptions, MakeMatchRouteOptions, MakeRouteMatch, MakeRouteMatchUnion, } from './Matches';
|
|
19
|
+
export { matchContext } from './matchContext';
|
|
20
|
+
export { Match, Outlet } from './Match';
|
|
21
|
+
export { useMatch } from './useMatch';
|
|
22
|
+
export { useLoaderDeps } from './useLoaderDeps';
|
|
23
|
+
export { useLoaderData } from './useLoaderData';
|
|
24
|
+
export { redirect, isRedirect } from './redirects';
|
|
25
|
+
export type { AnyRedirect, Redirect, ResolvedRedirect } from './redirects';
|
|
26
|
+
export { RouteApi, getRouteApi, Route, createRoute, RootRoute, rootRouteWithContext, createRootRoute, createRootRouteWithContext, createRouteMask, NotFoundRoute, } from './route';
|
|
27
|
+
export type { RouteOptions, FileBaseRouteOptions, BaseRouteOptions, UpdatableRouteOptions, RouteLoaderFn, LoaderFnContext, AnyRoute, RouteConstraints, AnyRootRoute, ResolveFullPath, RouteMask, SolidNode, SyncRouteComponent, AsyncRouteComponent, RouteComponent, ErrorRouteComponent, NotFoundRouteComponent, RootRouteOptions, AnyRouteWithContext, RouteContextFn, RouteContextOptions, BeforeLoadFn, BeforeLoadContextOptions, ContextOptions, } from './route';
|
|
28
|
+
export { componentTypes, createRouter, Router, lazyFn, SearchParamError, PathParamError, getInitialRouterState, } from './router';
|
|
29
|
+
export type { AnyRouter, RegisteredRouter, RouterContextOptions, RouterOptions, RouterErrorSerializer, RouterState, ListenerFn, BuildNextOptions, RouterConstructorOptions, RouterEvents, RouterEvent, RouterListener, ControllablePromise, InjectedHtmlEntry, } from './router';
|
|
30
|
+
export { RouterProvider, RouterContextProvider } from './RouterProvider';
|
|
31
|
+
export type { RouterProps } from './RouterProvider';
|
|
32
|
+
export { useElementScrollRestoration, ScrollRestoration, } from './ScrollRestoration';
|
|
33
|
+
export type { UseBlockerOpts, ShouldBlockFn } from './useBlocker';
|
|
34
|
+
export { useBlocker, Block } from './useBlocker';
|
|
35
|
+
export { useNavigate, Navigate } from './useNavigate';
|
|
36
|
+
export type { UseNavigateResult } from './useNavigate';
|
|
37
|
+
export { useParams } from './useParams';
|
|
38
|
+
export { useSearch } from './useSearch';
|
|
39
|
+
export { getRouterContext, } from './routerContext';
|
|
40
|
+
export { useRouteContext } from './useRouteContext';
|
|
41
|
+
export { useRouter } from './useRouter';
|
|
42
|
+
export { useRouterState } from './useRouterState';
|
|
43
|
+
export { useLocation } from './useLocation';
|
|
44
|
+
export { useCanGoBack } from './useCanGoBack';
|
|
45
|
+
export { useLayoutEffect } from './utils';
|
|
46
|
+
export { notFound, isNotFound, CatchNotFound, DefaultGlobalNotFound, } from './not-found';
|
|
47
|
+
export type { NotFoundError } from './not-found';
|
|
48
|
+
export * from './typePrimitives';
|
|
49
|
+
export { ScriptOnce } from './ScriptOnce';
|
|
50
|
+
export { Asset } from './Asset';
|
|
51
|
+
export { HeadContent } from './HeadContent';
|
|
52
|
+
export { Scripts } from './Scripts';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export { default as invariant } from 'tiny-invariant';
|
|
2
|
+
export { default as warning } from 'tiny-warning';
|
|
3
|
+
export { defer, TSR_DEFERRED_PROMISE, isMatch, joinPaths, cleanPath, trimPathLeft, trimPathRight, trimPath, resolvePath, parsePathname, interpolatePath, matchPathname, removeBasepath, matchByPath, encode, decode, rootRouteId, defaultSerializeError, defaultParseSearch, defaultStringifySearch, parseSearchWith, stringifySearchWith, escapeJSON, // SSR
|
|
4
|
+
pick, functionalUpdate, replaceEqualDeep, isPlainObject, isPlainArray, deepEqual, shallow, createControlledPromise, retainSearchParams, stripSearchParams, } from '@tanstack/router-core';
|
|
5
|
+
export { createHistory, createBrowserHistory, createHashHistory, createMemoryHistory, } from '@tanstack/history';
|
|
6
|
+
export { useAwaited, Await } from './awaited';
|
|
7
|
+
export { CatchBoundary, ErrorComponent } from './CatchBoundary';
|
|
8
|
+
export { FileRoute, createFileRoute, FileRouteLoader, LazyRoute, createLazyRoute, createLazyFileRoute, } from './fileRoute';
|
|
9
|
+
export * from './history';
|
|
10
|
+
export { lazyRouteComponent } from './lazyRouteComponent';
|
|
11
|
+
export { useLinkProps, createLink, Link, linkOptions } from './link';
|
|
12
|
+
export { Matches, useMatchRoute, MatchRoute, useMatches, useParentMatches, useChildMatches, } from './Matches';
|
|
13
|
+
export { matchContext } from './matchContext';
|
|
14
|
+
export { Match, Outlet } from './Match';
|
|
15
|
+
export { useMatch } from './useMatch';
|
|
16
|
+
export { useLoaderDeps } from './useLoaderDeps';
|
|
17
|
+
export { useLoaderData } from './useLoaderData';
|
|
18
|
+
export { redirect, isRedirect } from './redirects';
|
|
19
|
+
export { RouteApi, getRouteApi, Route, createRoute, RootRoute, rootRouteWithContext, createRootRoute, createRootRouteWithContext, createRouteMask, NotFoundRoute, } from './route';
|
|
20
|
+
export { componentTypes, createRouter, Router, lazyFn, SearchParamError, PathParamError, getInitialRouterState, } from './router';
|
|
21
|
+
export { RouterProvider, RouterContextProvider } from './RouterProvider';
|
|
22
|
+
export { useElementScrollRestoration, ScrollRestoration, } from './ScrollRestoration';
|
|
23
|
+
export { useBlocker, Block } from './useBlocker';
|
|
24
|
+
export { useNavigate, Navigate } from './useNavigate';
|
|
25
|
+
export { useParams } from './useParams';
|
|
26
|
+
export { useSearch } from './useSearch';
|
|
27
|
+
export { getRouterContext, // SSR
|
|
28
|
+
} from './routerContext';
|
|
29
|
+
export { useRouteContext } from './useRouteContext';
|
|
30
|
+
export { useRouter } from './useRouter';
|
|
31
|
+
export { useRouterState } from './useRouterState';
|
|
32
|
+
export { useLocation } from './useLocation';
|
|
33
|
+
export { useCanGoBack } from './useCanGoBack';
|
|
34
|
+
export { useLayoutEffect } from './utils';
|
|
35
|
+
export { notFound, isNotFound, CatchNotFound, DefaultGlobalNotFound, } from './not-found';
|
|
36
|
+
export * from './typePrimitives';
|
|
37
|
+
export { ScriptOnce } from './ScriptOnce';
|
|
38
|
+
export { Asset } from './Asset';
|
|
39
|
+
export { HeadContent } from './HeadContent';
|
|
40
|
+
export { Scripts } from './Scripts';
|
|
41
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as Solid from 'solid-js';
|
|
2
|
+
import type { AsyncRouteComponent } from './route';
|
|
3
|
+
export declare function ClientOnly(props: Solid.ParentProps<{
|
|
4
|
+
fallback?: Solid.JSX.Element;
|
|
5
|
+
}>): Solid.JSX.Element;
|
|
6
|
+
export declare function useHydrated(): boolean;
|
|
7
|
+
export declare function lazyRouteComponent<T extends Record<string, any>, TKey extends keyof T = 'default'>(importer: () => Promise<T>, exportName?: TKey, ssr?: () => boolean): T[TKey] extends (props: infer TProps) => any ? AsyncRouteComponent<TProps> : never;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Dynamic, isServer } from 'solid-js/web';
|
|
2
|
+
import { Outlet } from './Match';
|
|
3
|
+
// If the load fails due to module not found, it may mean a new version of
|
|
4
|
+
// the build was deployed and the user's browser is still using an old version.
|
|
5
|
+
// If this happens, the old version in the user's browser would have an outdated
|
|
6
|
+
// URL to the lazy module.
|
|
7
|
+
// In that case, we want to attempt one window refresh to get the latest.
|
|
8
|
+
function isModuleNotFoundError(error) {
|
|
9
|
+
return (typeof error?.message === 'string' &&
|
|
10
|
+
/Failed to fetch dynamically imported module/.test(error.message));
|
|
11
|
+
}
|
|
12
|
+
export function ClientOnly(props) {
|
|
13
|
+
return useHydrated() ? <>{props.children}</> : <>{props.fallback}</>;
|
|
14
|
+
}
|
|
15
|
+
export function useHydrated() {
|
|
16
|
+
return isServer;
|
|
17
|
+
}
|
|
18
|
+
export function lazyRouteComponent(importer, exportName, ssr) {
|
|
19
|
+
let loadPromise;
|
|
20
|
+
let comp;
|
|
21
|
+
let error;
|
|
22
|
+
const load = () => {
|
|
23
|
+
if (typeof document === 'undefined' && ssr?.() === false) {
|
|
24
|
+
comp = (() => null);
|
|
25
|
+
return Promise.resolve();
|
|
26
|
+
}
|
|
27
|
+
if (!loadPromise) {
|
|
28
|
+
loadPromise = importer()
|
|
29
|
+
.then((res) => {
|
|
30
|
+
loadPromise = undefined;
|
|
31
|
+
comp = res[exportName ?? 'default'];
|
|
32
|
+
})
|
|
33
|
+
.catch((err) => {
|
|
34
|
+
error = err;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return loadPromise;
|
|
38
|
+
};
|
|
39
|
+
const lazyComp = function Lazy(props) {
|
|
40
|
+
// Now that we're out of preload and into actual render path,
|
|
41
|
+
// throw the error if it was a module not found error during preload
|
|
42
|
+
if (error) {
|
|
43
|
+
if (isModuleNotFoundError(error)) {
|
|
44
|
+
// We don't want an error thrown from preload in this case, because
|
|
45
|
+
// there's nothing we want to do about module not found during preload.
|
|
46
|
+
// Record the error, recover the promise with a null return,
|
|
47
|
+
// and we will attempt module not found resolution during the render path.
|
|
48
|
+
if (error instanceof Error &&
|
|
49
|
+
typeof window !== 'undefined' &&
|
|
50
|
+
typeof sessionStorage !== 'undefined') {
|
|
51
|
+
// Again, we want to reload one time on module not found error and not enter
|
|
52
|
+
// a reload loop if there is some other issue besides an old deploy.
|
|
53
|
+
// That's why we store our reload attempt in sessionStorage.
|
|
54
|
+
// Use error.message as key because it contains the module path that failed.
|
|
55
|
+
const storageKey = `tanstack_router_reload:${error.message}`;
|
|
56
|
+
if (!sessionStorage.getItem(storageKey)) {
|
|
57
|
+
sessionStorage.setItem(storageKey, '1');
|
|
58
|
+
window.location.reload();
|
|
59
|
+
// Return empty component while we wait for window to reload
|
|
60
|
+
return {
|
|
61
|
+
default: () => null,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Otherwise, just throw the error
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
if (!comp) {
|
|
70
|
+
throw load();
|
|
71
|
+
}
|
|
72
|
+
if (ssr?.() === false) {
|
|
73
|
+
return (<ClientOnly fallback={<Outlet />}>
|
|
74
|
+
<Dynamic component={comp} {...props}/>
|
|
75
|
+
</ClientOnly>);
|
|
76
|
+
}
|
|
77
|
+
return <Dynamic component={comp} {...props}/>;
|
|
78
|
+
};
|
|
79
|
+
lazyComp.preload = load;
|
|
80
|
+
return lazyComp;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=lazyRouteComponent.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazyRouteComponent.jsx","sourceRoot":"","sources":["../../src/lazyRouteComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as Solid from 'solid-js';
|
|
2
|
+
import type { Constrain, LinkOptions, RoutePaths } from '@tanstack/router-core';
|
|
3
|
+
import type { AnyRouter, RegisteredRouter } from './router';
|
|
4
|
+
import type { ValidateLinkOptions, ValidateLinkOptionsArray } from './typePrimitives';
|
|
5
|
+
export declare function useLinkProps<TRouter extends AnyRouter = RegisteredRouter, TFrom extends RoutePaths<TRouter['routeTree']> | string = string, TTo extends string = '', TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom, TMaskTo extends string = ''>(options: UseLinkPropsOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): Solid.ComponentProps<'a'>;
|
|
6
|
+
export type UseLinkPropsOptions<TRouter extends AnyRouter = RegisteredRouter, TFrom extends RoutePaths<TRouter['routeTree']> | string = string, TTo extends string | undefined = '.', TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom, TMaskTo extends string = '.'> = ActiveLinkOptions<'a', TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & Omit<Solid.ComponentProps<'a'>, 'style'> & {
|
|
7
|
+
style?: Solid.JSX.CSSProperties;
|
|
8
|
+
};
|
|
9
|
+
export type ActiveLinkOptions<TComp = 'a', TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = LinkOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & ActiveLinkOptionProps<TComp>;
|
|
10
|
+
type ActiveLinkProps<TComp> = Partial<LinkComponentSolidProps<TComp> & {
|
|
11
|
+
[key: `data-${string}`]: unknown;
|
|
12
|
+
}>;
|
|
13
|
+
export interface ActiveLinkOptionProps<TComp = 'a'> {
|
|
14
|
+
/**
|
|
15
|
+
* A function that returns additional props for the `active` state of this link.
|
|
16
|
+
* These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)
|
|
17
|
+
*/
|
|
18
|
+
activeProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>);
|
|
19
|
+
/**
|
|
20
|
+
* A function that returns additional props for the `inactive` state of this link.
|
|
21
|
+
* These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)
|
|
22
|
+
*/
|
|
23
|
+
inactiveProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>);
|
|
24
|
+
}
|
|
25
|
+
export type LinkProps<TComp = 'a', TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = ActiveLinkOptions<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & LinkPropsChildren;
|
|
26
|
+
export interface LinkPropsChildren {
|
|
27
|
+
children?: Solid.JSX.Element | ((state: {
|
|
28
|
+
isActive: boolean;
|
|
29
|
+
isTransitioning: boolean;
|
|
30
|
+
}) => Solid.JSX.Element);
|
|
31
|
+
}
|
|
32
|
+
type LinkComponentSolidProps<TComp> = TComp extends Solid.ValidComponent ? Omit<Solid.ComponentProps<TComp>, keyof CreateLinkProps> : never;
|
|
33
|
+
export type LinkComponentProps<TComp = 'a', TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = LinkComponentSolidProps<TComp> & LinkProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>;
|
|
34
|
+
export type CreateLinkProps = LinkProps<any, any, string, string, string, string>;
|
|
35
|
+
export type LinkComponent<TComp> = <TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string = string, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = ''>(props: LinkComponentProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Solid.JSX.Element;
|
|
36
|
+
export declare function createLink<const TComp>(Comp: Constrain<TComp, any, (props: CreateLinkProps) => Solid.JSX.Element>): LinkComponent<TComp>;
|
|
37
|
+
export declare const Link: LinkComponent<'a'>;
|
|
38
|
+
export type LinkOptionsFnOptions<TOptions, TComp, TRouter extends AnyRouter = RegisteredRouter> = TOptions extends ReadonlyArray<any> ? ValidateLinkOptionsArray<TRouter, TOptions, string, TComp> : ValidateLinkOptions<TRouter, TOptions, string, TComp>;
|
|
39
|
+
export type LinkOptionsFn<TComp> = <const TOptions, TRouter extends AnyRouter = RegisteredRouter>(options: LinkOptionsFnOptions<TOptions, TComp, TRouter>) => TOptions;
|
|
40
|
+
export declare const linkOptions: LinkOptionsFn<'a'>;
|
|
41
|
+
export {};
|