@studiolambda/router 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/matcher-CSJ3hjzA.cjs +2 -0
- package/dist/matcher-CSJ3hjzA.cjs.map +1 -0
- package/dist/matcher-XNPYU-tD.js +69 -0
- package/dist/matcher-XNPYU-tD.js.map +1 -0
- package/dist/router.cjs +1 -0
- package/dist/router.js +2 -0
- package/dist/router_react.cjs +6 -0
- package/dist/router_react.cjs.map +1 -0
- package/dist/router_react.js +506 -0
- package/dist/router_react.js.map +1 -0
- package/dist/src/react/ExampleMain.d.ts +7 -0
- package/dist/src/react/components/Link.d.ts +91 -0
- package/dist/src/react/components/Middlewares.d.ts +28 -0
- package/dist/src/react/components/NotFound.d.ts +6 -0
- package/dist/src/react/components/Router.d.ts +81 -0
- package/dist/src/react/context/MatcherContext.d.ts +12 -0
- package/dist/src/react/context/NavigationContext.d.ts +11 -0
- package/dist/src/react/context/NavigationSignalContext.d.ts +7 -0
- package/dist/src/react/context/NavigationTypeContext.d.ts +6 -0
- package/dist/src/react/context/PathnameContext.d.ts +10 -0
- package/dist/src/react/context/PropsContext.d.ts +10 -0
- package/dist/src/react/context/TransitionContext.d.ts +19 -0
- package/dist/src/react/createRouter.d.ts +187 -0
- package/dist/src/react/example.d.ts +1 -0
- package/dist/src/react/examples/Auth.d.ts +11 -0
- package/dist/src/react/examples/HelloWorld.d.ts +5 -0
- package/dist/src/react/examples/Other.d.ts +6 -0
- package/dist/src/react/examples/User.d.ts +6 -0
- package/dist/src/react/extractPathname.d.ts +17 -0
- package/dist/src/react/hooks/useActiveLinkProps.d.ts +73 -0
- package/dist/src/react/hooks/useBack.d.ts +47 -0
- package/dist/src/react/hooks/useForward.d.ts +47 -0
- package/dist/src/react/hooks/useIsPending.d.ts +29 -0
- package/dist/src/react/hooks/useNavigate.d.ts +10 -0
- package/dist/src/react/hooks/useNavigation.d.ts +13 -0
- package/dist/src/react/hooks/useNavigationEvents.d.ts +43 -0
- package/dist/src/react/hooks/useNavigationHandlers.d.ts +47 -0
- package/dist/src/react/hooks/useNavigationSignal.d.ts +13 -0
- package/dist/src/react/hooks/useNavigationType.d.ts +12 -0
- package/dist/src/react/hooks/useNextMatch.d.ts +26 -0
- package/dist/src/react/hooks/useParams.d.ts +19 -0
- package/dist/src/react/hooks/usePathname.d.ts +23 -0
- package/dist/src/react/hooks/usePrefetch.d.ts +27 -0
- package/dist/src/react/hooks/usePrefetchEffect.d.ts +69 -0
- package/dist/src/react/hooks/useSearchParams.d.ts +58 -0
- package/dist/src/react/index.d.ts +31 -0
- package/dist/src/react/navigation/createMemoryNavigation.d.ts +52 -0
- package/dist/src/react/router.d.ts +139 -0
- package/dist/src/react/test-helpers.d.ts +50 -0
- package/dist/src/router/index.d.ts +1 -0
- package/dist/src/router/matcher.d.ts +127 -0
- package/package.json +107 -0
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import { t as e } from "./matcher-XNPYU-tD.js";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
import { Suspense as n, createContext as r, use as i, useEffect as a, useEffectEvent as o, useRef as s, useState as c, useTransition as l } from "react";
|
|
4
|
+
//#region \0rolldown/runtime.js
|
|
5
|
+
var u = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), d = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
|
|
6
|
+
if (typeof require < "u") return require.apply(this, arguments);
|
|
7
|
+
throw Error("Calling `require` for \"" + e + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/react/components/Middlewares.tsx
|
|
11
|
+
function f({ value: e, children: n }) {
|
|
12
|
+
return e?.reduceRight((e, n, r) => /* @__PURE__ */ t(n, { children: e }, r), n) ?? n;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region node_modules/react/cjs/react-compiler-runtime.production.js
|
|
16
|
+
var p = /* @__PURE__ */ u(((e) => {
|
|
17
|
+
var t = d("react").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
|
|
18
|
+
e.c = function(e) {
|
|
19
|
+
return t.H.useMemoCache(e);
|
|
20
|
+
};
|
|
21
|
+
})), m = /* @__PURE__ */ u(((e) => {
|
|
22
|
+
process.env.NODE_ENV !== "production" && (function() {
|
|
23
|
+
var t = d("react").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
|
|
24
|
+
e.c = function(e) {
|
|
25
|
+
var n = t.H;
|
|
26
|
+
return n === null && console.error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem."), n.useMemoCache(e);
|
|
27
|
+
};
|
|
28
|
+
})();
|
|
29
|
+
})), h = (/* @__PURE__ */ u(((e, t) => {
|
|
30
|
+
process.env.NODE_ENV === "production" ? t.exports = p() : t.exports = m();
|
|
31
|
+
})))(), g = r({}), _ = r(null), v = r(null), y = r(null);
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/react/components/NotFound.tsx
|
|
34
|
+
function b() {
|
|
35
|
+
let e = (0, h.c)(1), n;
|
|
36
|
+
return e[0] === Symbol.for("react.memo_cache_sentinel") ? (n = /* @__PURE__ */ t("div", { children: "Not Found" }), e[0] = n) : n = e[0], n;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/react/context/TransitionContext.ts
|
|
40
|
+
var x = r(null);
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/react/hooks/useNavigationHandlers.ts
|
|
43
|
+
function S(e) {
|
|
44
|
+
let t = e ?? i(x);
|
|
45
|
+
if (t === null) throw Error("useNavigationHandlers requires a <Router> or <TransitionContext> provider");
|
|
46
|
+
let [, n] = t;
|
|
47
|
+
function r(e) {
|
|
48
|
+
if (e.prefetch === void 0) return;
|
|
49
|
+
let t = e.prefetch;
|
|
50
|
+
return async function(n) {
|
|
51
|
+
await t({
|
|
52
|
+
params: e.params,
|
|
53
|
+
url: e.url,
|
|
54
|
+
controller: n
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function a(e) {
|
|
59
|
+
return function() {
|
|
60
|
+
return new Promise(function(t, r) {
|
|
61
|
+
n(async function() {
|
|
62
|
+
try {
|
|
63
|
+
await e(), t();
|
|
64
|
+
} catch (e) {
|
|
65
|
+
r(e);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
createPrecommitHandler: r,
|
|
73
|
+
createHandler: a
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
//#region src/react/context/MatcherContext.ts
|
|
78
|
+
var C = r(e());
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/react/hooks/useNextMatch.ts
|
|
81
|
+
function w(e) {
|
|
82
|
+
let t = e?.matcher ?? i(C);
|
|
83
|
+
return function(e, n) {
|
|
84
|
+
let r = {
|
|
85
|
+
handler: { component: n },
|
|
86
|
+
params: {}
|
|
87
|
+
};
|
|
88
|
+
return e ? t.match(new URL(e).pathname) ?? r : r;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/react/hooks/useNavigationEvents.ts
|
|
93
|
+
function T(e, t) {
|
|
94
|
+
let n = o(function(e) {
|
|
95
|
+
t.onNavigate?.(e);
|
|
96
|
+
}), r = o(function() {
|
|
97
|
+
t.onNavigateSuccess?.();
|
|
98
|
+
}), i = o(function(e) {
|
|
99
|
+
t.onNavigateError?.(e.error);
|
|
100
|
+
});
|
|
101
|
+
a(function() {
|
|
102
|
+
return e.addEventListener("navigate", n), e.addEventListener("navigatesuccess", r), e.addEventListener("navigateerror", i), function() {
|
|
103
|
+
e.removeEventListener("navigate", n), e.removeEventListener("navigatesuccess", r), e.removeEventListener("navigateerror", i);
|
|
104
|
+
};
|
|
105
|
+
}, [e]);
|
|
106
|
+
}
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/react/context/PathnameContext.ts
|
|
109
|
+
var E = r("/");
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/react/extractPathname.ts
|
|
112
|
+
function D(e) {
|
|
113
|
+
return e ? new URL(e, "http://localhost").pathname : "/";
|
|
114
|
+
}
|
|
115
|
+
//#endregion
|
|
116
|
+
//#region src/react/components/Router.tsx
|
|
117
|
+
function O(e) {
|
|
118
|
+
let r = (0, h.c)(44), a = i(_), s = e.navigation ?? a ?? window.navigation, u = e.matcher ?? i(C), d = l(), p = e.transition ?? d, m;
|
|
119
|
+
r[0] === u ? m = r[1] : (m = { matcher: u }, r[0] = u, r[1] = m);
|
|
120
|
+
let O = w(m), k = e.notFound ?? b, A;
|
|
121
|
+
r[2] !== s.currentEntry?.url || r[3] !== O || r[4] !== k ? (A = function() {
|
|
122
|
+
let e = s.currentEntry?.url ?? null;
|
|
123
|
+
return {
|
|
124
|
+
match: O(e, k),
|
|
125
|
+
signal: null,
|
|
126
|
+
navigationType: null,
|
|
127
|
+
pathname: D(e)
|
|
128
|
+
};
|
|
129
|
+
}, r[2] = s.currentEntry?.url, r[3] = O, r[4] = k, r[5] = A) : A = r[5];
|
|
130
|
+
let [j, M] = c(A), { createPrecommitHandler: N, createHandler: P } = S(p), F;
|
|
131
|
+
r[6] !== P || r[7] !== N || r[8] !== O || r[9] !== k ? (F = function(e) {
|
|
132
|
+
if (!e.canIntercept || e.hashChange || e.downloadRequest !== null) return;
|
|
133
|
+
let t = O(e.destination.url, k);
|
|
134
|
+
if (e.formData !== null && t.handler.formHandler !== void 0) {
|
|
135
|
+
e.intercept({
|
|
136
|
+
scroll: t.handler.scroll,
|
|
137
|
+
focusReset: t.handler.focusReset,
|
|
138
|
+
async handler() {
|
|
139
|
+
await t.handler.formHandler(e.formData, e);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
let n = N({
|
|
145
|
+
prefetch: t.handler.prefetch,
|
|
146
|
+
params: t.params,
|
|
147
|
+
url: new URL(e.destination.url)
|
|
148
|
+
}), r = P(function() {
|
|
149
|
+
M({
|
|
150
|
+
match: t,
|
|
151
|
+
signal: e.signal,
|
|
152
|
+
navigationType: e.navigationType,
|
|
153
|
+
pathname: D(e.destination.url)
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
e.intercept({
|
|
157
|
+
handler: r,
|
|
158
|
+
precommitHandler: n,
|
|
159
|
+
scroll: t.handler.scroll,
|
|
160
|
+
focusReset: t.handler.focusReset
|
|
161
|
+
});
|
|
162
|
+
}, r[6] = P, r[7] = N, r[8] = O, r[9] = k, r[10] = F) : F = r[10];
|
|
163
|
+
let I = o(F), L;
|
|
164
|
+
r[11] !== I || r[12] !== e.onNavigateError || r[13] !== e.onNavigateSuccess ? (L = {
|
|
165
|
+
onNavigate: I,
|
|
166
|
+
onNavigateSuccess: e.onNavigateSuccess,
|
|
167
|
+
onNavigateError: e.onNavigateError
|
|
168
|
+
}, r[11] = I, r[12] = e.onNavigateError, r[13] = e.onNavigateSuccess, r[14] = L) : L = r[14], T(s, L);
|
|
169
|
+
let R = j.match.handler.component, z = j.match.handler.middlewares, B;
|
|
170
|
+
r[15] === R ? B = r[16] : (B = /* @__PURE__ */ t(R, {}), r[15] = R, r[16] = B);
|
|
171
|
+
let V;
|
|
172
|
+
r[17] !== z || r[18] !== B ? (V = /* @__PURE__ */ t(f, {
|
|
173
|
+
value: z,
|
|
174
|
+
children: B
|
|
175
|
+
}), r[17] = z, r[18] = B, r[19] = V) : V = r[19];
|
|
176
|
+
let H;
|
|
177
|
+
r[20] !== e.fallback || r[21] !== V ? (H = /* @__PURE__ */ t(n, {
|
|
178
|
+
fallback: e.fallback,
|
|
179
|
+
children: V
|
|
180
|
+
}), r[20] = e.fallback, r[21] = V, r[22] = H) : H = r[22];
|
|
181
|
+
let U;
|
|
182
|
+
r[23] !== j.match.params || r[24] !== H ? (U = /* @__PURE__ */ t(g, {
|
|
183
|
+
value: j.match.params,
|
|
184
|
+
children: H
|
|
185
|
+
}), r[23] = j.match.params, r[24] = H, r[25] = U) : U = r[25];
|
|
186
|
+
let W;
|
|
187
|
+
r[26] !== j.pathname || r[27] !== U ? (W = /* @__PURE__ */ t(E, {
|
|
188
|
+
value: j.pathname,
|
|
189
|
+
children: U
|
|
190
|
+
}), r[26] = j.pathname, r[27] = U, r[28] = W) : W = r[28];
|
|
191
|
+
let G;
|
|
192
|
+
r[29] !== j.signal || r[30] !== W ? (G = /* @__PURE__ */ t(v, {
|
|
193
|
+
value: j.signal,
|
|
194
|
+
children: W
|
|
195
|
+
}), r[29] = j.signal, r[30] = W, r[31] = G) : G = r[31];
|
|
196
|
+
let K;
|
|
197
|
+
r[32] !== j.navigationType || r[33] !== G ? (K = /* @__PURE__ */ t(y, {
|
|
198
|
+
value: j.navigationType,
|
|
199
|
+
children: G
|
|
200
|
+
}), r[32] = j.navigationType, r[33] = G, r[34] = K) : K = r[34];
|
|
201
|
+
let q;
|
|
202
|
+
r[35] !== u || r[36] !== K ? (q = /* @__PURE__ */ t(C, {
|
|
203
|
+
value: u,
|
|
204
|
+
children: K
|
|
205
|
+
}), r[35] = u, r[36] = K, r[37] = q) : q = r[37];
|
|
206
|
+
let J;
|
|
207
|
+
r[38] !== s || r[39] !== q ? (J = /* @__PURE__ */ t(_, {
|
|
208
|
+
value: s,
|
|
209
|
+
children: q
|
|
210
|
+
}), r[38] = s, r[39] = q, r[40] = J) : J = r[40];
|
|
211
|
+
let Y;
|
|
212
|
+
return r[41] !== J || r[42] !== p ? (Y = /* @__PURE__ */ t(x, {
|
|
213
|
+
value: p,
|
|
214
|
+
children: J
|
|
215
|
+
}), r[41] = J, r[42] = p, r[43] = Y) : Y = r[43], Y;
|
|
216
|
+
}
|
|
217
|
+
//#endregion
|
|
218
|
+
//#region src/react/hooks/useActiveLinkProps.ts
|
|
219
|
+
function k(e, t) {
|
|
220
|
+
let n = A(e, i(E), t?.exact ?? !0);
|
|
221
|
+
return {
|
|
222
|
+
isActive: n,
|
|
223
|
+
props: {
|
|
224
|
+
"data-active": n || void 0,
|
|
225
|
+
"aria-current": n ? "page" : void 0
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
function A(e, t, n) {
|
|
230
|
+
if (e === void 0) return !1;
|
|
231
|
+
let r = D(e);
|
|
232
|
+
return n ? r === t : t === r || t.startsWith(r + "/");
|
|
233
|
+
}
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region src/react/hooks/usePrefetch.ts
|
|
236
|
+
function j(e) {
|
|
237
|
+
let t = e?.matcher ?? i(C);
|
|
238
|
+
return function(e) {
|
|
239
|
+
let n = new URL(e, "http://localhost"), r = t.match(n.pathname);
|
|
240
|
+
if (r?.handler.prefetch === void 0) return;
|
|
241
|
+
let i = {
|
|
242
|
+
params: r.params,
|
|
243
|
+
url: n,
|
|
244
|
+
controller: {
|
|
245
|
+
redirect() {},
|
|
246
|
+
addHandler() {}
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
return r.handler.prefetch(i);
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
//#endregion
|
|
253
|
+
//#region src/react/hooks/usePrefetchEffect.ts
|
|
254
|
+
function M(e, t) {
|
|
255
|
+
let { href: n, on: r, once: i = !0, matcher: s } = t, c = j({ matcher: s }), l = o(function(e, t) {
|
|
256
|
+
for (let t of e) t.isIntersecting && n !== void 0 && c(n);
|
|
257
|
+
i && t.disconnect();
|
|
258
|
+
}), u = o(function() {
|
|
259
|
+
n !== void 0 && c(n);
|
|
260
|
+
});
|
|
261
|
+
a(function() {
|
|
262
|
+
if (r === void 0) return;
|
|
263
|
+
let t = e.current;
|
|
264
|
+
if (t !== null) switch (r) {
|
|
265
|
+
case "hover": return t.addEventListener("mouseenter", u, { once: i }), function() {
|
|
266
|
+
t.removeEventListener("mouseenter", u);
|
|
267
|
+
};
|
|
268
|
+
case "viewport": {
|
|
269
|
+
let e = new IntersectionObserver(l);
|
|
270
|
+
return e.observe(t), function() {
|
|
271
|
+
e.disconnect();
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}, [
|
|
276
|
+
r,
|
|
277
|
+
i,
|
|
278
|
+
n,
|
|
279
|
+
e
|
|
280
|
+
]);
|
|
281
|
+
}
|
|
282
|
+
//#endregion
|
|
283
|
+
//#region src/react/components/Link.tsx
|
|
284
|
+
function N(e) {
|
|
285
|
+
let n = (0, h.c)(23), r, i, a, o, c, l, u;
|
|
286
|
+
n[0] === e ? (r = n[1], i = n[2], a = n[3], o = n[4], c = n[5], l = n[6], u = n[7]) : ({prefetch: o, once: l, href: i, matcher: a, className: r, activeExact: u, ...c} = e, n[0] = e, n[1] = r, n[2] = i, n[3] = a, n[4] = o, n[5] = c, n[6] = l, n[7] = u);
|
|
287
|
+
let d = l === void 0 ? !0 : l, f = u === void 0 ? !0 : u, p = s(null), m;
|
|
288
|
+
n[8] === f ? m = n[9] : (m = { exact: f }, n[8] = f, n[9] = m);
|
|
289
|
+
let { isActive: g, props: _ } = k(i, m), v;
|
|
290
|
+
n[10] !== i || n[11] !== a || n[12] !== d || n[13] !== o ? (v = {
|
|
291
|
+
href: i,
|
|
292
|
+
on: o,
|
|
293
|
+
once: d,
|
|
294
|
+
matcher: a
|
|
295
|
+
}, n[10] = i, n[11] = a, n[12] = d, n[13] = o, n[14] = v) : v = n[14], M(p, v);
|
|
296
|
+
let y;
|
|
297
|
+
n[15] !== r || n[16] !== g ? (y = typeof r == "function" ? r({ isActive: g }) : r, n[15] = r, n[16] = g, n[17] = y) : y = n[17];
|
|
298
|
+
let b = y, x;
|
|
299
|
+
return n[18] !== _ || n[19] !== i || n[20] !== c || n[21] !== b ? (x = /* @__PURE__ */ t("a", {
|
|
300
|
+
ref: p,
|
|
301
|
+
href: i,
|
|
302
|
+
className: b,
|
|
303
|
+
..._,
|
|
304
|
+
...c
|
|
305
|
+
}), n[18] = _, n[19] = i, n[20] = c, n[21] = b, n[22] = x) : x = n[22], x;
|
|
306
|
+
}
|
|
307
|
+
//#endregion
|
|
308
|
+
//#region src/react/hooks/useNavigation.ts
|
|
309
|
+
function P() {
|
|
310
|
+
let e = i(_);
|
|
311
|
+
if (e === null) throw Error("useNavigation requires a <Router> or <NavigationContext> provider");
|
|
312
|
+
return e;
|
|
313
|
+
}
|
|
314
|
+
//#endregion
|
|
315
|
+
//#region src/react/hooks/useNavigate.ts
|
|
316
|
+
function F() {
|
|
317
|
+
let e = P();
|
|
318
|
+
return function(t, n) {
|
|
319
|
+
return e.navigate(t, n);
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
//#endregion
|
|
323
|
+
//#region src/react/hooks/useNavigationSignal.ts
|
|
324
|
+
function I() {
|
|
325
|
+
return i(v);
|
|
326
|
+
}
|
|
327
|
+
//#endregion
|
|
328
|
+
//#region src/react/hooks/useNavigationType.ts
|
|
329
|
+
function L() {
|
|
330
|
+
return i(y);
|
|
331
|
+
}
|
|
332
|
+
//#endregion
|
|
333
|
+
//#region src/react/hooks/useParams.ts
|
|
334
|
+
function R() {
|
|
335
|
+
return i(g);
|
|
336
|
+
}
|
|
337
|
+
//#endregion
|
|
338
|
+
//#region src/react/hooks/useIsPending.ts
|
|
339
|
+
function z() {
|
|
340
|
+
let e = i(x);
|
|
341
|
+
if (e === null) throw Error("useIsPending requires a <Router> or <TransitionContext> provider");
|
|
342
|
+
return e[0];
|
|
343
|
+
}
|
|
344
|
+
//#endregion
|
|
345
|
+
//#region src/react/hooks/usePathname.ts
|
|
346
|
+
function B() {
|
|
347
|
+
return i(E);
|
|
348
|
+
}
|
|
349
|
+
//#endregion
|
|
350
|
+
//#region src/react/hooks/useSearchParams.ts
|
|
351
|
+
function V() {
|
|
352
|
+
let e = P(), t = e.currentEntry?.url, n = t ? new URL(t).searchParams : new URLSearchParams();
|
|
353
|
+
function r(t, n) {
|
|
354
|
+
let r = e.currentEntry, i = new URL(r?.url ?? "/", "http://localhost"), a = typeof t == "function" ? t(i.searchParams) : t, o = (a instanceof URLSearchParams ? a : new URLSearchParams(a)).toString(), s = i.pathname + (o ? "?" + o : "");
|
|
355
|
+
return e.navigate(s, { history: n?.history ?? "replace" });
|
|
356
|
+
}
|
|
357
|
+
return [n, r];
|
|
358
|
+
}
|
|
359
|
+
//#endregion
|
|
360
|
+
//#region src/react/hooks/useBack.ts
|
|
361
|
+
function H() {
|
|
362
|
+
let e = P();
|
|
363
|
+
function t(t) {
|
|
364
|
+
return e.back(t);
|
|
365
|
+
}
|
|
366
|
+
return {
|
|
367
|
+
back: t,
|
|
368
|
+
canGoBack: e.canGoBack
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
//#endregion
|
|
372
|
+
//#region src/react/hooks/useForward.ts
|
|
373
|
+
function U() {
|
|
374
|
+
let e = P();
|
|
375
|
+
function t(t) {
|
|
376
|
+
return e.forward(t);
|
|
377
|
+
}
|
|
378
|
+
return {
|
|
379
|
+
forward: t,
|
|
380
|
+
canGoForward: e.canGoForward
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
//#endregion
|
|
384
|
+
//#region src/react/navigation/createMemoryNavigation.ts
|
|
385
|
+
function W(e) {
|
|
386
|
+
let t = { url: e.url };
|
|
387
|
+
function n() {}
|
|
388
|
+
function r() {}
|
|
389
|
+
function i() {
|
|
390
|
+
return {
|
|
391
|
+
committed: Promise.resolve(t),
|
|
392
|
+
finished: Promise.resolve(t)
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
function a() {
|
|
396
|
+
return [t];
|
|
397
|
+
}
|
|
398
|
+
return {
|
|
399
|
+
currentEntry: t,
|
|
400
|
+
canGoBack: !1,
|
|
401
|
+
canGoForward: !1,
|
|
402
|
+
transition: null,
|
|
403
|
+
addEventListener: n,
|
|
404
|
+
removeEventListener: r,
|
|
405
|
+
navigate: i,
|
|
406
|
+
entries: a
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
//#endregion
|
|
410
|
+
//#region src/react/createRouter.ts
|
|
411
|
+
function G(e, t) {
|
|
412
|
+
return e === "" && t === "" ? "" : e === "" ? t : t === "" || t === "/" ? e : (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : "/" + t);
|
|
413
|
+
}
|
|
414
|
+
function K(e) {
|
|
415
|
+
if (e.length !== 0) return e.length === 1 ? e[0] : async function(t) {
|
|
416
|
+
for (let n of e) await n(t);
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
function q() {
|
|
420
|
+
return null;
|
|
421
|
+
}
|
|
422
|
+
function J(e, t) {
|
|
423
|
+
return function(n) {
|
|
424
|
+
let r = {
|
|
425
|
+
path: n,
|
|
426
|
+
middlewares: [],
|
|
427
|
+
prefetches: [],
|
|
428
|
+
scroll: void 0,
|
|
429
|
+
focusReset: void 0,
|
|
430
|
+
formHandler: void 0
|
|
431
|
+
};
|
|
432
|
+
function i() {
|
|
433
|
+
let e = G(t.prefix, r.path ?? "");
|
|
434
|
+
if (e === "") throw Error("cannot register a route without a path or group prefix");
|
|
435
|
+
return e;
|
|
436
|
+
}
|
|
437
|
+
function a() {
|
|
438
|
+
let e = [...t.middlewares, ...r.middlewares];
|
|
439
|
+
return e.length > 0 ? e : void 0;
|
|
440
|
+
}
|
|
441
|
+
function o() {
|
|
442
|
+
return K([...t.prefetches, ...r.prefetches]);
|
|
443
|
+
}
|
|
444
|
+
let s = {
|
|
445
|
+
middleware(e) {
|
|
446
|
+
return r.middlewares.push(...e), s;
|
|
447
|
+
},
|
|
448
|
+
prefetch(e) {
|
|
449
|
+
return r.prefetches.push(e), s;
|
|
450
|
+
},
|
|
451
|
+
scroll(e) {
|
|
452
|
+
return r.scroll = e, s;
|
|
453
|
+
},
|
|
454
|
+
focusReset(e) {
|
|
455
|
+
return r.focusReset = e, s;
|
|
456
|
+
},
|
|
457
|
+
formHandler(e) {
|
|
458
|
+
return r.formHandler = e, s;
|
|
459
|
+
},
|
|
460
|
+
render(t) {
|
|
461
|
+
let n = i(), s = {
|
|
462
|
+
component: t,
|
|
463
|
+
middlewares: a(),
|
|
464
|
+
prefetch: o(),
|
|
465
|
+
scroll: r.scroll,
|
|
466
|
+
focusReset: r.focusReset,
|
|
467
|
+
formHandler: r.formHandler
|
|
468
|
+
};
|
|
469
|
+
e.register(n, s);
|
|
470
|
+
},
|
|
471
|
+
redirect(t) {
|
|
472
|
+
let n = i(), o = {
|
|
473
|
+
component: q,
|
|
474
|
+
middlewares: a(),
|
|
475
|
+
prefetch: function(e) {
|
|
476
|
+
let n = typeof t == "function" ? t(e) : t;
|
|
477
|
+
e.controller.redirect(n);
|
|
478
|
+
},
|
|
479
|
+
scroll: r.scroll,
|
|
480
|
+
focusReset: r.focusReset
|
|
481
|
+
};
|
|
482
|
+
e.register(n, o);
|
|
483
|
+
},
|
|
484
|
+
group() {
|
|
485
|
+
return J(e, {
|
|
486
|
+
prefix: G(t.prefix, r.path ?? ""),
|
|
487
|
+
middlewares: [...t.middlewares, ...r.middlewares],
|
|
488
|
+
prefetches: [...t.prefetches, ...r.prefetches]
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
};
|
|
492
|
+
return s;
|
|
493
|
+
};
|
|
494
|
+
}
|
|
495
|
+
function Y(t) {
|
|
496
|
+
let n = e();
|
|
497
|
+
return t(J(n, {
|
|
498
|
+
prefix: "",
|
|
499
|
+
middlewares: [],
|
|
500
|
+
prefetches: []
|
|
501
|
+
})), n;
|
|
502
|
+
}
|
|
503
|
+
//#endregion
|
|
504
|
+
export { N as Link, C as MatcherContext, f as Middlewares, _ as NavigationContext, v as NavigationSignalContext, y as NavigationTypeContext, b as NotFound, g as ParamsContext, E as PathnameContext, O as Router, x as TransitionContext, W as createMemoryNavigation, Y as createRouter, D as extractPathname, k as useActiveLinkProps, H as useBack, U as useForward, z as useIsPending, F as useNavigate, P as useNavigation, T as useNavigationEvents, S as useNavigationHandlers, I as useNavigationSignal, L as useNavigationType, w as useNextMatch, R as useParams, B as usePathname, j as usePrefetch, M as usePrefetchEffect, V as useSearchParams };
|
|
505
|
+
|
|
506
|
+
//# sourceMappingURL=router_react.js.map
|