clear-react-router 1.0.1 → 1.0.3
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/index.js +517 -0
- package/package.json +9 -9
- package/dist/index.es.js +0 -439
- package/dist/index.umd.js +0 -6
package/dist/index.js
ADDED
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
var _e = Object.defineProperty;
|
|
2
|
+
var we = (r, n, a) => n in r ? _e(r, n, { enumerable: !0, configurable: !0, writable: !0, value: a }) : r[n] = a;
|
|
3
|
+
var S = (r, n, a) => we(r, typeof n != "symbol" ? n + "" : n, a);
|
|
4
|
+
import ke, { createContext as W, lazy as ye, Suspense as Te, useRef as te, useEffect as j, useState as T, useCallback as y, useMemo as N, useContext as q } from "react";
|
|
5
|
+
var C = { exports: {} }, P = {};
|
|
6
|
+
/**
|
|
7
|
+
* @license React
|
|
8
|
+
* react-jsx-runtime.production.js
|
|
9
|
+
*
|
|
10
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
11
|
+
*
|
|
12
|
+
* This source code is licensed under the MIT license found in the
|
|
13
|
+
* LICENSE file in the root directory of this source tree.
|
|
14
|
+
*/
|
|
15
|
+
var I;
|
|
16
|
+
function ge() {
|
|
17
|
+
if (I) return P;
|
|
18
|
+
I = 1;
|
|
19
|
+
var r = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
|
|
20
|
+
function a(u, o, f) {
|
|
21
|
+
var s = null;
|
|
22
|
+
if (f !== void 0 && (s = "" + f), o.key !== void 0 && (s = "" + o.key), "key" in o) {
|
|
23
|
+
f = {};
|
|
24
|
+
for (var E in o)
|
|
25
|
+
E !== "key" && (f[E] = o[E]);
|
|
26
|
+
} else f = o;
|
|
27
|
+
return o = f.ref, {
|
|
28
|
+
$$typeof: r,
|
|
29
|
+
type: u,
|
|
30
|
+
key: s,
|
|
31
|
+
ref: o !== void 0 ? o : null,
|
|
32
|
+
props: f
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return P.Fragment = n, P.jsx = a, P.jsxs = a, P;
|
|
36
|
+
}
|
|
37
|
+
var O = {};
|
|
38
|
+
/**
|
|
39
|
+
* @license React
|
|
40
|
+
* react-jsx-runtime.development.js
|
|
41
|
+
*
|
|
42
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
43
|
+
*
|
|
44
|
+
* This source code is licensed under the MIT license found in the
|
|
45
|
+
* LICENSE file in the root directory of this source tree.
|
|
46
|
+
*/
|
|
47
|
+
var ee;
|
|
48
|
+
function Pe() {
|
|
49
|
+
return ee || (ee = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
50
|
+
function r(e) {
|
|
51
|
+
if (e == null) return null;
|
|
52
|
+
if (typeof e == "function")
|
|
53
|
+
return e.$$typeof === Re ? null : e.displayName || e.name || null;
|
|
54
|
+
if (typeof e == "string") return e;
|
|
55
|
+
switch (e) {
|
|
56
|
+
case w:
|
|
57
|
+
return "Fragment";
|
|
58
|
+
case ue:
|
|
59
|
+
return "Profiler";
|
|
60
|
+
case x:
|
|
61
|
+
return "StrictMode";
|
|
62
|
+
case pe:
|
|
63
|
+
return "Suspense";
|
|
64
|
+
case he:
|
|
65
|
+
return "SuspenseList";
|
|
66
|
+
case Ee:
|
|
67
|
+
return "Activity";
|
|
68
|
+
}
|
|
69
|
+
if (typeof e == "object")
|
|
70
|
+
switch (typeof e.tag == "number" && console.error(
|
|
71
|
+
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
|
72
|
+
), e.$$typeof) {
|
|
73
|
+
case R:
|
|
74
|
+
return "Portal";
|
|
75
|
+
case fe:
|
|
76
|
+
return e.displayName || "Context";
|
|
77
|
+
case le:
|
|
78
|
+
return (e._context.displayName || "Context") + ".Consumer";
|
|
79
|
+
case de:
|
|
80
|
+
var c = e.render;
|
|
81
|
+
return e = e.displayName, e || (e = c.displayName || c.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
|
|
82
|
+
case me:
|
|
83
|
+
return c = e.displayName || null, c !== null ? c : r(e.type) || "Memo";
|
|
84
|
+
case $:
|
|
85
|
+
c = e._payload, e = e._init;
|
|
86
|
+
try {
|
|
87
|
+
return r(e(c));
|
|
88
|
+
} catch {
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
function n(e) {
|
|
94
|
+
return "" + e;
|
|
95
|
+
}
|
|
96
|
+
function a(e) {
|
|
97
|
+
try {
|
|
98
|
+
n(e);
|
|
99
|
+
var c = !1;
|
|
100
|
+
} catch {
|
|
101
|
+
c = !0;
|
|
102
|
+
}
|
|
103
|
+
if (c) {
|
|
104
|
+
c = console;
|
|
105
|
+
var d = c.error, p = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
106
|
+
return d.call(
|
|
107
|
+
c,
|
|
108
|
+
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
|
109
|
+
p
|
|
110
|
+
), n(e);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function u(e) {
|
|
114
|
+
if (e === w) return "<>";
|
|
115
|
+
if (typeof e == "object" && e !== null && e.$$typeof === $)
|
|
116
|
+
return "<...>";
|
|
117
|
+
try {
|
|
118
|
+
var c = r(e);
|
|
119
|
+
return c ? "<" + c + ">" : "<...>";
|
|
120
|
+
} catch {
|
|
121
|
+
return "<...>";
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function o() {
|
|
125
|
+
var e = D.A;
|
|
126
|
+
return e === null ? null : e.getOwner();
|
|
127
|
+
}
|
|
128
|
+
function f() {
|
|
129
|
+
return Error("react-stack-top-frame");
|
|
130
|
+
}
|
|
131
|
+
function s(e) {
|
|
132
|
+
if (G.call(e, "key")) {
|
|
133
|
+
var c = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
134
|
+
if (c && c.isReactWarning) return !1;
|
|
135
|
+
}
|
|
136
|
+
return e.key !== void 0;
|
|
137
|
+
}
|
|
138
|
+
function E(e, c) {
|
|
139
|
+
function d() {
|
|
140
|
+
X || (X = !0, console.error(
|
|
141
|
+
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
|
142
|
+
c
|
|
143
|
+
));
|
|
144
|
+
}
|
|
145
|
+
d.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
146
|
+
get: d,
|
|
147
|
+
configurable: !0
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
function m() {
|
|
151
|
+
var e = r(this.type);
|
|
152
|
+
return H[e] || (H[e] = !0, console.error(
|
|
153
|
+
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
154
|
+
)), e = this.props.ref, e !== void 0 ? e : null;
|
|
155
|
+
}
|
|
156
|
+
function b(e, c, d, p, A, M) {
|
|
157
|
+
var h = d.ref;
|
|
158
|
+
return e = {
|
|
159
|
+
$$typeof: i,
|
|
160
|
+
type: e,
|
|
161
|
+
key: c,
|
|
162
|
+
props: d,
|
|
163
|
+
_owner: p
|
|
164
|
+
}, (h !== void 0 ? h : null) !== null ? Object.defineProperty(e, "ref", {
|
|
165
|
+
enumerable: !1,
|
|
166
|
+
get: m
|
|
167
|
+
}) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
|
|
168
|
+
configurable: !1,
|
|
169
|
+
enumerable: !1,
|
|
170
|
+
writable: !0,
|
|
171
|
+
value: 0
|
|
172
|
+
}), Object.defineProperty(e, "_debugInfo", {
|
|
173
|
+
configurable: !1,
|
|
174
|
+
enumerable: !1,
|
|
175
|
+
writable: !0,
|
|
176
|
+
value: null
|
|
177
|
+
}), Object.defineProperty(e, "_debugStack", {
|
|
178
|
+
configurable: !1,
|
|
179
|
+
enumerable: !1,
|
|
180
|
+
writable: !0,
|
|
181
|
+
value: A
|
|
182
|
+
}), Object.defineProperty(e, "_debugTask", {
|
|
183
|
+
configurable: !1,
|
|
184
|
+
enumerable: !1,
|
|
185
|
+
writable: !0,
|
|
186
|
+
value: M
|
|
187
|
+
}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
|
|
188
|
+
}
|
|
189
|
+
function _(e, c, d, p, A, M) {
|
|
190
|
+
var h = c.children;
|
|
191
|
+
if (h !== void 0)
|
|
192
|
+
if (p)
|
|
193
|
+
if (be(h)) {
|
|
194
|
+
for (p = 0; p < h.length; p++)
|
|
195
|
+
v(h[p]);
|
|
196
|
+
Object.freeze && Object.freeze(h);
|
|
197
|
+
} else
|
|
198
|
+
console.error(
|
|
199
|
+
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
|
200
|
+
);
|
|
201
|
+
else v(h);
|
|
202
|
+
if (G.call(c, "key")) {
|
|
203
|
+
h = r(e);
|
|
204
|
+
var g = Object.keys(c).filter(function(ve) {
|
|
205
|
+
return ve !== "key";
|
|
206
|
+
});
|
|
207
|
+
p = 0 < g.length ? "{key: someKey, " + g.join(": ..., ") + ": ...}" : "{key: someKey}", K[h + p] || (g = 0 < g.length ? "{" + g.join(": ..., ") + ": ...}" : "{}", console.error(
|
|
208
|
+
`A props object containing a "key" prop is being spread into JSX:
|
|
209
|
+
let props = %s;
|
|
210
|
+
<%s {...props} />
|
|
211
|
+
React keys must be passed directly to JSX without using spread:
|
|
212
|
+
let props = %s;
|
|
213
|
+
<%s key={someKey} {...props} />`,
|
|
214
|
+
p,
|
|
215
|
+
h,
|
|
216
|
+
g,
|
|
217
|
+
h
|
|
218
|
+
), K[h + p] = !0);
|
|
219
|
+
}
|
|
220
|
+
if (h = null, d !== void 0 && (a(d), h = "" + d), s(c) && (a(c.key), h = "" + c.key), "key" in c) {
|
|
221
|
+
d = {};
|
|
222
|
+
for (var F in c)
|
|
223
|
+
F !== "key" && (d[F] = c[F]);
|
|
224
|
+
} else d = c;
|
|
225
|
+
return h && E(
|
|
226
|
+
d,
|
|
227
|
+
typeof e == "function" ? e.displayName || e.name || "Unknown" : e
|
|
228
|
+
), b(
|
|
229
|
+
e,
|
|
230
|
+
h,
|
|
231
|
+
d,
|
|
232
|
+
o(),
|
|
233
|
+
A,
|
|
234
|
+
M
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
function v(e) {
|
|
238
|
+
l(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === $ && (e._payload.status === "fulfilled" ? l(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
|
|
239
|
+
}
|
|
240
|
+
function l(e) {
|
|
241
|
+
return typeof e == "object" && e !== null && e.$$typeof === i;
|
|
242
|
+
}
|
|
243
|
+
var t = ke, i = Symbol.for("react.transitional.element"), R = Symbol.for("react.portal"), w = Symbol.for("react.fragment"), x = Symbol.for("react.strict_mode"), ue = Symbol.for("react.profiler"), le = Symbol.for("react.consumer"), fe = Symbol.for("react.context"), de = Symbol.for("react.forward_ref"), pe = Symbol.for("react.suspense"), he = Symbol.for("react.suspense_list"), me = Symbol.for("react.memo"), $ = Symbol.for("react.lazy"), Ee = Symbol.for("react.activity"), Re = Symbol.for("react.client.reference"), D = t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, G = Object.prototype.hasOwnProperty, be = Array.isArray, Y = console.createTask ? console.createTask : function() {
|
|
244
|
+
return null;
|
|
245
|
+
};
|
|
246
|
+
t = {
|
|
247
|
+
react_stack_bottom_frame: function(e) {
|
|
248
|
+
return e();
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
var X, H = {}, Z = t.react_stack_bottom_frame.bind(
|
|
252
|
+
t,
|
|
253
|
+
f
|
|
254
|
+
)(), Q = Y(u(f)), K = {};
|
|
255
|
+
O.Fragment = w, O.jsx = function(e, c, d) {
|
|
256
|
+
var p = 1e4 > D.recentlyCreatedOwnerStacks++;
|
|
257
|
+
return _(
|
|
258
|
+
e,
|
|
259
|
+
c,
|
|
260
|
+
d,
|
|
261
|
+
!1,
|
|
262
|
+
p ? Error("react-stack-top-frame") : Z,
|
|
263
|
+
p ? Y(u(e)) : Q
|
|
264
|
+
);
|
|
265
|
+
}, O.jsxs = function(e, c, d) {
|
|
266
|
+
var p = 1e4 > D.recentlyCreatedOwnerStacks++;
|
|
267
|
+
return _(
|
|
268
|
+
e,
|
|
269
|
+
c,
|
|
270
|
+
d,
|
|
271
|
+
!0,
|
|
272
|
+
p ? Error("react-stack-top-frame") : Z,
|
|
273
|
+
p ? Y(u(e)) : Q
|
|
274
|
+
);
|
|
275
|
+
};
|
|
276
|
+
})()), O;
|
|
277
|
+
}
|
|
278
|
+
var re;
|
|
279
|
+
function Oe() {
|
|
280
|
+
return re || (re = 1, process.env.NODE_ENV === "production" ? C.exports = ge() : C.exports = Pe()), C.exports;
|
|
281
|
+
}
|
|
282
|
+
var k = Oe();
|
|
283
|
+
const ne = W({}), ae = W({}), oe = W({}), B = ({
|
|
284
|
+
children: r,
|
|
285
|
+
setContext: n,
|
|
286
|
+
context: a,
|
|
287
|
+
updateBlockedRoute: u,
|
|
288
|
+
updateLocation: o,
|
|
289
|
+
location: f,
|
|
290
|
+
params: s,
|
|
291
|
+
prefetchLoader: E,
|
|
292
|
+
loaderCache: m,
|
|
293
|
+
blockerState: b
|
|
294
|
+
}) => /* @__PURE__ */ k.jsx(
|
|
295
|
+
ne.Provider,
|
|
296
|
+
{
|
|
297
|
+
value: {
|
|
298
|
+
updateLocation: o,
|
|
299
|
+
updateBlockedRoute: u,
|
|
300
|
+
prefetchLoader: E,
|
|
301
|
+
setContext: n
|
|
302
|
+
},
|
|
303
|
+
children: /* @__PURE__ */ k.jsx(ae.Provider, { value: { context: a, loaderCache: m }, children: /* @__PURE__ */ k.jsx(oe.Provider, { value: { blockerState: b, params: s, location: f }, children: r }) })
|
|
304
|
+
}
|
|
305
|
+
), je = (r, n) => {
|
|
306
|
+
const a = ye(() => r().then((u) => ({ default: u.default || u })));
|
|
307
|
+
return () => /* @__PURE__ */ k.jsx(Te, { fallback: typeof n == "function" ? n() : n || null, children: /* @__PURE__ */ k.jsx(a, {}) });
|
|
308
|
+
}, xe = (r) => typeof r.element == "function" && r.element.toString().includes("import("), se = (r, n = [], a = "") => {
|
|
309
|
+
var v;
|
|
310
|
+
const u = r.path.match(/:[^/]+/g), o = r.path.replaceAll(/:[^/]+(\/|$)/g, "").split("/").filter(Boolean), f = r.path.split("/"), s = u ? [
|
|
311
|
+
...n,
|
|
312
|
+
...u.map((l, t) => ({
|
|
313
|
+
key: o[t],
|
|
314
|
+
value: l.slice(1)
|
|
315
|
+
}))
|
|
316
|
+
] : n, E = s.length ? `${a}${f.slice(0, f.length - 1).join("/")}` : r.path, m = xe(r) ? je(r.element, r.fallback) : r.element, b = {
|
|
317
|
+
...r,
|
|
318
|
+
path: E,
|
|
319
|
+
params: s,
|
|
320
|
+
element: m
|
|
321
|
+
}, _ = ((v = r.children) == null ? void 0 : v.flatMap((l) => se(l, s, E))) || [];
|
|
322
|
+
return [b, ..._];
|
|
323
|
+
}, Fe = (r) => r.flatMap((n) => se(n, [])), Ae = (r) => {
|
|
324
|
+
const { pathname: n } = window.location, a = n.split("/");
|
|
325
|
+
return (r || []).map((u) => ({ index: a.findIndex((o) => o === u.key), value: u.value })).reduce((u, o) => ({ ...u, [o.value]: a[o.index + 1] }), {});
|
|
326
|
+
}, U = (r) => ({
|
|
327
|
+
pathname: r.pathname,
|
|
328
|
+
search: r.search
|
|
329
|
+
}), J = (r, n) => {
|
|
330
|
+
const a = r.path.split("/").filter(Boolean), u = r.params ? Object.keys(r.params).length : 0, o = n.split("/").filter(Boolean);
|
|
331
|
+
return a.every((f, s) => f === o[s + (s ? 1 : 0)]) && o.length === a.length + u;
|
|
332
|
+
};
|
|
333
|
+
class ce {
|
|
334
|
+
constructor(n, a) {
|
|
335
|
+
S(this, "url");
|
|
336
|
+
S(this, "search");
|
|
337
|
+
S(this, "cause");
|
|
338
|
+
this.url = n, this.search = a, this.cause = "redirect";
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
const Be = (r, n) => Promise.reject(new ce(r, n)), Se = (r) => {
|
|
342
|
+
const n = te(r);
|
|
343
|
+
return j(() => {
|
|
344
|
+
n.current = r;
|
|
345
|
+
}, [r]), n;
|
|
346
|
+
}, Ce = ({ setLocation: r, routeList: n, context: a, revalidateCache: u }) => {
|
|
347
|
+
const [o, f] = T({ from: "", to: "" }), s = te(""), E = y(
|
|
348
|
+
async (l) => {
|
|
349
|
+
try {
|
|
350
|
+
const t = n.find((i) => J(i, l.pathname));
|
|
351
|
+
t != null && t.beforeLoad && await (t == null ? void 0 : t.beforeLoad(a)), r(l), l.pathname !== window.location.pathname && (history.pushState(null, "", l.pathname), s.current = l.pathname), await u(t), t != null && t.afterLoad && await (t == null ? void 0 : t.afterLoad(a));
|
|
352
|
+
} catch (t) {
|
|
353
|
+
if (!(t instanceof ce)) return t;
|
|
354
|
+
history.replaceState(null, "", `${t.url}${t.search || ""}`), r({ pathname: t.url, search: t.search });
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
[a, u, n, r]
|
|
358
|
+
), m = Se(E), b = y(
|
|
359
|
+
({ type: l, payload: t = "" }) => f((i) => i.from === t && l === "charge" ? i : t && i.from !== t && l === "charge" ? { ...i, from: t } : l === "reset" ? { ...i, to: "" } : (l === "process" && m.current({ pathname: i.to }), !i.from && !i.to ? i : { from: "", to: "" })),
|
|
360
|
+
[m]
|
|
361
|
+
), _ = y(
|
|
362
|
+
async (l) => {
|
|
363
|
+
o.from ? f((t) => ({ ...t, to: l.pathname })) : await m.current(l);
|
|
364
|
+
},
|
|
365
|
+
[o.from, m]
|
|
366
|
+
);
|
|
367
|
+
return j(() => {
|
|
368
|
+
const l = async (t) => {
|
|
369
|
+
const i = U(t.target.location);
|
|
370
|
+
s.current === o.from ? (f({ from: s.current, to: i.pathname }), history.replaceState(null, "", s.current)) : r(i);
|
|
371
|
+
};
|
|
372
|
+
return window.addEventListener("popstate", l), () => window.removeEventListener("popstate", l);
|
|
373
|
+
}, [o.from, r]), j(() => {
|
|
374
|
+
const l = U(window.location);
|
|
375
|
+
m.current(l), s.current = l.pathname;
|
|
376
|
+
}, [m]), { blockerState: N(() => o.from && o.to ? "blocked" : o.from ? "charged" : "unblocked", [o]), updateLocation: _, updateBlockedRoute: b };
|
|
377
|
+
}, Ne = (r) => {
|
|
378
|
+
const [n, a] = T({}), [u, o] = T({}), [f, s] = T(!1), [E, m] = T({}), b = y(
|
|
379
|
+
({ key: t, value: i }) => a((R) => ({
|
|
380
|
+
...R,
|
|
381
|
+
[t]: i
|
|
382
|
+
})),
|
|
383
|
+
[]
|
|
384
|
+
), _ = y(
|
|
385
|
+
(t) => {
|
|
386
|
+
if (!t) return !0;
|
|
387
|
+
const i = u[t.path];
|
|
388
|
+
return !!(i && Date.now() - i < (t.staleTime || 0));
|
|
389
|
+
},
|
|
390
|
+
[u]
|
|
391
|
+
), v = y(
|
|
392
|
+
async (t) => {
|
|
393
|
+
if (t != null && t.loader && !_(t)) {
|
|
394
|
+
m((i) => ({ ...i, [t.path]: !0 })), a(
|
|
395
|
+
(i) => Object.keys(i).filter((R) => R !== t.path).reduce((R, w) => ({ ...R, [w]: i[w] }), {})
|
|
396
|
+
);
|
|
397
|
+
try {
|
|
398
|
+
s(!1);
|
|
399
|
+
const i = await (t == null ? void 0 : t.loader());
|
|
400
|
+
o((R) => ({
|
|
401
|
+
...R,
|
|
402
|
+
[t.path]: Date.now()
|
|
403
|
+
})), b({ key: t.path, value: i });
|
|
404
|
+
} catch {
|
|
405
|
+
s(!0);
|
|
406
|
+
} finally {
|
|
407
|
+
m((i) => ({ ...i, [t.path]: !1 }));
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
[_, b]
|
|
412
|
+
), l = y(
|
|
413
|
+
async (t) => {
|
|
414
|
+
const i = r.find((R) => J(R, t));
|
|
415
|
+
i && await v(i);
|
|
416
|
+
},
|
|
417
|
+
[v, r]
|
|
418
|
+
);
|
|
419
|
+
return { loaderCache: n, loaderError: f, prefetchLoader: l, revalidateCache: v, isLoadingMap: E };
|
|
420
|
+
}, z = (r) => r ? typeof r == "function" ? /* @__PURE__ */ k.jsx(r, {}) : r : null, Le = "error 404. Page not found", $e = "*", ze = ({ routeList: r, context: n = {} }) => {
|
|
421
|
+
const [a, u] = T(U(window.location)), [o, f] = T(n), s = N(
|
|
422
|
+
() => r.find((x) => x.path === $e || J(x, a.pathname)),
|
|
423
|
+
[a.pathname, r]
|
|
424
|
+
), { loaderError: E, loaderCache: m, prefetchLoader: b, revalidateCache: _, isLoadingMap: v } = Ne(r), { blockerState: l, updateLocation: t, updateBlockedRoute: i } = Ce({
|
|
425
|
+
setLocation: u,
|
|
426
|
+
routeList: r,
|
|
427
|
+
context: o,
|
|
428
|
+
revalidateCache: _
|
|
429
|
+
}), R = N(() => s != null && s.params ? Ae(s.params) : {}, [s]), w = N(
|
|
430
|
+
() => ({
|
|
431
|
+
location: a,
|
|
432
|
+
updateLocation: t,
|
|
433
|
+
params: R,
|
|
434
|
+
loaderCache: m,
|
|
435
|
+
prefetchLoader: b,
|
|
436
|
+
updateBlockedRoute: i,
|
|
437
|
+
blockerState: l,
|
|
438
|
+
context: o,
|
|
439
|
+
setContext: f
|
|
440
|
+
}),
|
|
441
|
+
[l, m, a, R, b, o, i, t]
|
|
442
|
+
);
|
|
443
|
+
return s != null && s.loader && !E && v[a.pathname] ? /* @__PURE__ */ k.jsx(B, { ...w, children: z(s == null ? void 0 : s.loaderFallback) }) : E ? /* @__PURE__ */ k.jsx(B, { ...w, children: z(s == null ? void 0 : s.errorElement) }) : /* @__PURE__ */ k.jsx(B, { ...w, children: z(s == null ? void 0 : s.element) || Le });
|
|
444
|
+
}, V = () => {
|
|
445
|
+
const r = q(oe);
|
|
446
|
+
if (!Object.keys(r).length) throw new Error("useNavigationState must be used within Router component");
|
|
447
|
+
return r;
|
|
448
|
+
}, L = () => {
|
|
449
|
+
const r = q(ne);
|
|
450
|
+
if (!Object.keys(r).length) throw new Error("useRouterActions must be used within Router component");
|
|
451
|
+
return r;
|
|
452
|
+
}, ie = () => {
|
|
453
|
+
const r = q(ae);
|
|
454
|
+
if (!Object.keys(r).length) throw new Error("useRouterData must be used within Router component");
|
|
455
|
+
return r;
|
|
456
|
+
}, De = () => {
|
|
457
|
+
const { updateLocation: r } = L();
|
|
458
|
+
return y(
|
|
459
|
+
async (n) => n === -1 ? history.go(-1) : await r(n),
|
|
460
|
+
[r]
|
|
461
|
+
);
|
|
462
|
+
}, Ue = ({ children: r, to: n, prefetch: a = !0 }) => {
|
|
463
|
+
const { prefetchLoader: u } = L(), o = De();
|
|
464
|
+
return /* @__PURE__ */ k.jsx(
|
|
465
|
+
"a",
|
|
466
|
+
{
|
|
467
|
+
style: { cursor: "pointer" },
|
|
468
|
+
onClick: () => o({ pathname: n }),
|
|
469
|
+
onMouseOver: () => a && u(n),
|
|
470
|
+
children: r
|
|
471
|
+
}
|
|
472
|
+
);
|
|
473
|
+
}, We = () => {
|
|
474
|
+
const { params: r } = V();
|
|
475
|
+
return r;
|
|
476
|
+
}, qe = () => V().location, Je = () => {
|
|
477
|
+
const { loaderCache: r } = ie();
|
|
478
|
+
return r[window.location.pathname];
|
|
479
|
+
}, Ve = (r) => {
|
|
480
|
+
const {
|
|
481
|
+
location: { pathname: n },
|
|
482
|
+
blockerState: a
|
|
483
|
+
} = V(), { updateBlockedRoute: u } = L(), o = r();
|
|
484
|
+
return j(
|
|
485
|
+
() => u(o ? { type: "charge", payload: n } : { type: "unblock" }),
|
|
486
|
+
[o, n, u]
|
|
487
|
+
), {
|
|
488
|
+
state: a,
|
|
489
|
+
process: () => u({ type: "process" }),
|
|
490
|
+
reset: () => u({ type: "reset" })
|
|
491
|
+
};
|
|
492
|
+
}, Ge = (r) => {
|
|
493
|
+
j(() => {
|
|
494
|
+
const n = (a) => {
|
|
495
|
+
r && (a.preventDefault(), r());
|
|
496
|
+
};
|
|
497
|
+
return window.addEventListener("beforeunload", n), () => window.removeEventListener("beforeunload", n);
|
|
498
|
+
}, [r]);
|
|
499
|
+
}, Xe = () => {
|
|
500
|
+
const { context: r } = ie(), { setContext: n } = L();
|
|
501
|
+
return { context: r, setContext: n };
|
|
502
|
+
};
|
|
503
|
+
export {
|
|
504
|
+
Ue as Link,
|
|
505
|
+
ze as Router,
|
|
506
|
+
J as comparePaths,
|
|
507
|
+
Fe as createRouter,
|
|
508
|
+
U as parseWindowLocation,
|
|
509
|
+
Be as redirect,
|
|
510
|
+
Ge as useBeforeUnload,
|
|
511
|
+
Ve as useBlocker,
|
|
512
|
+
Je as useLoaderState,
|
|
513
|
+
qe as useLocation,
|
|
514
|
+
De as useNavigate,
|
|
515
|
+
We as useParams,
|
|
516
|
+
Xe as useRouterContext
|
|
517
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clear-react-router",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "A lightweight, type-safe routing library for React applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
},
|
|
9
9
|
"sideEffects": false,
|
|
10
10
|
"type": "module",
|
|
11
|
-
"main": "dist/index.
|
|
12
|
-
"module": "dist/index.
|
|
13
|
-
"types": "dist/index.d.ts",
|
|
11
|
+
"main": "./dist/index.js",
|
|
12
|
+
"module": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
14
|
"exports": {
|
|
15
15
|
".": {
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"require": "./dist/index.js"
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"author": "Andrew Bubnov",
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/react": "^19.2.17",
|
|
43
|
-
"@vitejs/plugin-react": "^
|
|
43
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
44
44
|
"react": "^19.2.7",
|
|
45
45
|
"react-dom": "^19.2.7",
|
|
46
46
|
"typescript": "^6.0.3",
|
|
47
|
-
"vite": "^
|
|
47
|
+
"vite": "^6.4.3",
|
|
48
48
|
"vite-plugin-dts": "^5.0.2"
|
|
49
49
|
}
|
|
50
50
|
}
|
package/dist/index.es.js
DELETED
|
@@ -1,439 +0,0 @@
|
|
|
1
|
-
import { Suspense as e, createContext as t, lazy as n, useCallback as r, useContext as i, useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
|
|
2
|
-
//#region \0rolldown/runtime.js
|
|
3
|
-
var l = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), u = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
|
|
4
|
-
if (typeof require < "u") return require.apply(this, arguments);
|
|
5
|
-
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.");
|
|
6
|
-
}), d = t({}), f = t({}), p = t({}), m = /* @__PURE__ */ l(((e) => {
|
|
7
|
-
var t = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
|
|
8
|
-
function r(e, n, r) {
|
|
9
|
-
var i = null;
|
|
10
|
-
if (r !== void 0 && (i = "" + r), n.key !== void 0 && (i = "" + n.key), "key" in n) for (var a in r = {}, n) a !== "key" && (r[a] = n[a]);
|
|
11
|
-
else r = n;
|
|
12
|
-
return n = r.ref, {
|
|
13
|
-
$$typeof: t,
|
|
14
|
-
type: e,
|
|
15
|
-
key: i,
|
|
16
|
-
ref: n === void 0 ? null : n,
|
|
17
|
-
props: r
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
e.Fragment = n, e.jsx = r, e.jsxs = r;
|
|
21
|
-
})), h = /* @__PURE__ */ l(((e) => {
|
|
22
|
-
process.env.NODE_ENV !== "production" && (function() {
|
|
23
|
-
function t(e) {
|
|
24
|
-
if (e == null) return null;
|
|
25
|
-
if (typeof e == "function") return e.$$typeof === k ? null : e.displayName || e.name || null;
|
|
26
|
-
if (typeof e == "string") return e;
|
|
27
|
-
switch (e) {
|
|
28
|
-
case v: return "Fragment";
|
|
29
|
-
case b: return "Profiler";
|
|
30
|
-
case y: return "StrictMode";
|
|
31
|
-
case w: return "Suspense";
|
|
32
|
-
case T: return "SuspenseList";
|
|
33
|
-
case O: return "Activity";
|
|
34
|
-
}
|
|
35
|
-
if (typeof e == "object") switch (typeof e.tag == "number" && console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), e.$$typeof) {
|
|
36
|
-
case _: return "Portal";
|
|
37
|
-
case S: return e.displayName || "Context";
|
|
38
|
-
case x: return (e._context.displayName || "Context") + ".Consumer";
|
|
39
|
-
case C:
|
|
40
|
-
var n = e.render;
|
|
41
|
-
return e = e.displayName, e ||= (e = n.displayName || n.name || "", e === "" ? "ForwardRef" : "ForwardRef(" + e + ")"), e;
|
|
42
|
-
case E: return n = e.displayName || null, n === null ? t(e.type) || "Memo" : n;
|
|
43
|
-
case D:
|
|
44
|
-
n = e._payload, e = e._init;
|
|
45
|
-
try {
|
|
46
|
-
return t(e(n));
|
|
47
|
-
} catch {}
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
function n(e) {
|
|
52
|
-
return "" + e;
|
|
53
|
-
}
|
|
54
|
-
function r(e) {
|
|
55
|
-
try {
|
|
56
|
-
n(e);
|
|
57
|
-
var t = !1;
|
|
58
|
-
} catch {
|
|
59
|
-
t = !0;
|
|
60
|
-
}
|
|
61
|
-
if (t) {
|
|
62
|
-
t = console;
|
|
63
|
-
var r = t.error, i = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
64
|
-
return r.call(t, "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", i), n(e);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
function i(e) {
|
|
68
|
-
if (e === v) return "<>";
|
|
69
|
-
if (typeof e == "object" && e && e.$$typeof === D) return "<...>";
|
|
70
|
-
try {
|
|
71
|
-
var n = t(e);
|
|
72
|
-
return n ? "<" + n + ">" : "<...>";
|
|
73
|
-
} catch {
|
|
74
|
-
return "<...>";
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function a() {
|
|
78
|
-
var e = A.A;
|
|
79
|
-
return e === null ? null : e.getOwner();
|
|
80
|
-
}
|
|
81
|
-
function o() {
|
|
82
|
-
return Error("react-stack-top-frame");
|
|
83
|
-
}
|
|
84
|
-
function s(e) {
|
|
85
|
-
if (j.call(e, "key")) {
|
|
86
|
-
var t = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
87
|
-
if (t && t.isReactWarning) return !1;
|
|
88
|
-
}
|
|
89
|
-
return e.key !== void 0;
|
|
90
|
-
}
|
|
91
|
-
function c(e, t) {
|
|
92
|
-
function n() {
|
|
93
|
-
P || (P = !0, console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", t));
|
|
94
|
-
}
|
|
95
|
-
n.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
96
|
-
get: n,
|
|
97
|
-
configurable: !0
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
function l() {
|
|
101
|
-
var e = t(this.type);
|
|
102
|
-
return F[e] || (F[e] = !0, console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")), e = this.props.ref, e === void 0 ? null : e;
|
|
103
|
-
}
|
|
104
|
-
function d(e, t, n, r, i, a) {
|
|
105
|
-
var o = n.ref;
|
|
106
|
-
return e = {
|
|
107
|
-
$$typeof: g,
|
|
108
|
-
type: e,
|
|
109
|
-
key: t,
|
|
110
|
-
props: n,
|
|
111
|
-
_owner: r
|
|
112
|
-
}, (o === void 0 ? null : o) === null ? Object.defineProperty(e, "ref", {
|
|
113
|
-
enumerable: !1,
|
|
114
|
-
value: null
|
|
115
|
-
}) : Object.defineProperty(e, "ref", {
|
|
116
|
-
enumerable: !1,
|
|
117
|
-
get: l
|
|
118
|
-
}), e._store = {}, Object.defineProperty(e._store, "validated", {
|
|
119
|
-
configurable: !1,
|
|
120
|
-
enumerable: !1,
|
|
121
|
-
writable: !0,
|
|
122
|
-
value: 0
|
|
123
|
-
}), Object.defineProperty(e, "_debugInfo", {
|
|
124
|
-
configurable: !1,
|
|
125
|
-
enumerable: !1,
|
|
126
|
-
writable: !0,
|
|
127
|
-
value: null
|
|
128
|
-
}), Object.defineProperty(e, "_debugStack", {
|
|
129
|
-
configurable: !1,
|
|
130
|
-
enumerable: !1,
|
|
131
|
-
writable: !0,
|
|
132
|
-
value: i
|
|
133
|
-
}), Object.defineProperty(e, "_debugTask", {
|
|
134
|
-
configurable: !1,
|
|
135
|
-
enumerable: !1,
|
|
136
|
-
writable: !0,
|
|
137
|
-
value: a
|
|
138
|
-
}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
|
|
139
|
-
}
|
|
140
|
-
function f(e, n, i, o, l, u) {
|
|
141
|
-
var f = n.children;
|
|
142
|
-
if (f !== void 0) if (o) if (M(f)) {
|
|
143
|
-
for (o = 0; o < f.length; o++) p(f[o]);
|
|
144
|
-
Object.freeze && Object.freeze(f);
|
|
145
|
-
} else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
146
|
-
else p(f);
|
|
147
|
-
if (j.call(n, "key")) {
|
|
148
|
-
f = t(e);
|
|
149
|
-
var m = Object.keys(n).filter(function(e) {
|
|
150
|
-
return e !== "key";
|
|
151
|
-
});
|
|
152
|
-
o = 0 < m.length ? "{key: someKey, " + m.join(": ..., ") + ": ...}" : "{key: someKey}", R[f + o] || (m = 0 < m.length ? "{" + m.join(": ..., ") + ": ...}" : "{}", console.error("A props object containing a \"key\" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />", o, f, m, f), R[f + o] = !0);
|
|
153
|
-
}
|
|
154
|
-
if (f = null, i !== void 0 && (r(i), f = "" + i), s(n) && (r(n.key), f = "" + n.key), "key" in n) for (var h in i = {}, n) h !== "key" && (i[h] = n[h]);
|
|
155
|
-
else i = n;
|
|
156
|
-
return f && c(i, typeof e == "function" ? e.displayName || e.name || "Unknown" : e), d(e, f, i, a(), l, u);
|
|
157
|
-
}
|
|
158
|
-
function p(e) {
|
|
159
|
-
m(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e && e.$$typeof === D && (e._payload.status === "fulfilled" ? m(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
|
|
160
|
-
}
|
|
161
|
-
function m(e) {
|
|
162
|
-
return typeof e == "object" && !!e && e.$$typeof === g;
|
|
163
|
-
}
|
|
164
|
-
var h = u("react"), g = Symbol.for("react.transitional.element"), _ = Symbol.for("react.portal"), v = Symbol.for("react.fragment"), y = Symbol.for("react.strict_mode"), b = Symbol.for("react.profiler"), x = Symbol.for("react.consumer"), S = Symbol.for("react.context"), C = Symbol.for("react.forward_ref"), w = Symbol.for("react.suspense"), T = Symbol.for("react.suspense_list"), E = Symbol.for("react.memo"), D = Symbol.for("react.lazy"), O = Symbol.for("react.activity"), k = Symbol.for("react.client.reference"), A = h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, j = Object.prototype.hasOwnProperty, M = Array.isArray, N = console.createTask ? console.createTask : function() {
|
|
165
|
-
return null;
|
|
166
|
-
};
|
|
167
|
-
h = { react_stack_bottom_frame: function(e) {
|
|
168
|
-
return e();
|
|
169
|
-
} };
|
|
170
|
-
var P, F = {}, I = h.react_stack_bottom_frame.bind(h, o)(), L = N(i(o)), R = {};
|
|
171
|
-
e.Fragment = v, e.jsx = function(e, t, n) {
|
|
172
|
-
var r = 1e4 > A.recentlyCreatedOwnerStacks++;
|
|
173
|
-
return f(e, t, n, !1, r ? Error("react-stack-top-frame") : I, r ? N(i(e)) : L);
|
|
174
|
-
}, e.jsxs = function(e, t, n) {
|
|
175
|
-
var r = 1e4 > A.recentlyCreatedOwnerStacks++;
|
|
176
|
-
return f(e, t, n, !0, r ? Error("react-stack-top-frame") : I, r ? N(i(e)) : L);
|
|
177
|
-
};
|
|
178
|
-
})();
|
|
179
|
-
})), g = (/* @__PURE__ */ l(((e, t) => {
|
|
180
|
-
process.env.NODE_ENV === "production" ? t.exports = m() : t.exports = h();
|
|
181
|
-
})))(), _ = ({ children: e, setContext: t, context: n, updateBlockedRoute: r, updateLocation: i, location: a, params: o, prefetchLoader: s, loaderCache: c, blockerState: l }) => /* @__PURE__ */ (0, g.jsx)(d.Provider, {
|
|
182
|
-
value: {
|
|
183
|
-
updateLocation: i,
|
|
184
|
-
updateBlockedRoute: r,
|
|
185
|
-
prefetchLoader: s,
|
|
186
|
-
setContext: t
|
|
187
|
-
},
|
|
188
|
-
children: /* @__PURE__ */ (0, g.jsx)(f.Provider, {
|
|
189
|
-
value: {
|
|
190
|
-
context: n,
|
|
191
|
-
loaderCache: c
|
|
192
|
-
},
|
|
193
|
-
children: /* @__PURE__ */ (0, g.jsx)(p.Provider, {
|
|
194
|
-
value: {
|
|
195
|
-
blockerState: l,
|
|
196
|
-
params: o,
|
|
197
|
-
location: a
|
|
198
|
-
},
|
|
199
|
-
children: e
|
|
200
|
-
})
|
|
201
|
-
})
|
|
202
|
-
}), v = (t, r) => {
|
|
203
|
-
let i = n(() => t().then((e) => ({ default: e.default || e })));
|
|
204
|
-
return () => /* @__PURE__ */ (0, g.jsx)(e, {
|
|
205
|
-
fallback: typeof r == "function" ? r() : r || null,
|
|
206
|
-
children: /* @__PURE__ */ (0, g.jsx)(i, {})
|
|
207
|
-
});
|
|
208
|
-
}, y = (e) => typeof e.element == "function" && e.element.toString().includes("import("), b = (e, t = [], n = "") => {
|
|
209
|
-
let r = e.path.match(/:[^/]+/g), i = e.path.replaceAll(/:[^/]+(\/|$)/g, "").split("/").filter(Boolean), a = e.path.split("/"), o = r ? [...t, ...r.map((e, t) => ({
|
|
210
|
-
key: i[t],
|
|
211
|
-
value: e.slice(1)
|
|
212
|
-
}))] : t, s = o.length ? `${n}${a.slice(0, a.length - 1).join("/")}` : e.path, c = y(e) ? v(e.element, e.fallback) : e.element;
|
|
213
|
-
return [{
|
|
214
|
-
...e,
|
|
215
|
-
path: s,
|
|
216
|
-
params: o,
|
|
217
|
-
element: c
|
|
218
|
-
}, ...e.children?.flatMap((e) => b(e, o, s)) || []];
|
|
219
|
-
}, x = (e) => e.flatMap((e) => b(e, [])), S = (e) => {
|
|
220
|
-
let { pathname: t } = window.location, n = t.split("/");
|
|
221
|
-
return (e || []).map((e) => ({
|
|
222
|
-
index: n.findIndex((t) => t === e.key),
|
|
223
|
-
value: e.value
|
|
224
|
-
})).reduce((e, t) => ({
|
|
225
|
-
...e,
|
|
226
|
-
[t.value]: n[t.index + 1]
|
|
227
|
-
}), {});
|
|
228
|
-
}, C = (e) => ({
|
|
229
|
-
pathname: e.pathname,
|
|
230
|
-
search: e.search
|
|
231
|
-
}), w = (e, t) => {
|
|
232
|
-
let n = e.path.split("/").filter(Boolean), r = e.params ? Object.keys(e.params).length : 0, i = t.split("/").filter(Boolean);
|
|
233
|
-
return n.every((e, t) => e === i[t + +!!t]) && i.length === n.length + r;
|
|
234
|
-
}, T = class {
|
|
235
|
-
url;
|
|
236
|
-
search;
|
|
237
|
-
cause;
|
|
238
|
-
constructor(e, t) {
|
|
239
|
-
this.url = e, this.search = t, this.cause = "redirect";
|
|
240
|
-
}
|
|
241
|
-
}, E = (e, t) => Promise.reject(new T(e, t)), D = (e) => {
|
|
242
|
-
let t = s(e);
|
|
243
|
-
return a(() => {
|
|
244
|
-
t.current = e;
|
|
245
|
-
}, [e]), t;
|
|
246
|
-
}, O = ({ setLocation: e, routeList: t, context: n, revalidateCache: i }) => {
|
|
247
|
-
let [l, u] = c({
|
|
248
|
-
from: "",
|
|
249
|
-
to: ""
|
|
250
|
-
}), d = s(""), f = D(r(async (r) => {
|
|
251
|
-
try {
|
|
252
|
-
let a = t.find((e) => w(e, r.pathname));
|
|
253
|
-
a?.beforeLoad && await a?.beforeLoad(n), e(r), r.pathname !== window.location.pathname && (history.pushState(null, "", r.pathname), d.current = r.pathname), await i(a), a?.afterLoad && await a?.afterLoad(n);
|
|
254
|
-
} catch (t) {
|
|
255
|
-
if (!(t instanceof T)) return t;
|
|
256
|
-
history.replaceState(null, "", `${t.url}${t.search || ""}`), e({
|
|
257
|
-
pathname: t.url,
|
|
258
|
-
search: t.search
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
}, [
|
|
262
|
-
n,
|
|
263
|
-
i,
|
|
264
|
-
t,
|
|
265
|
-
e
|
|
266
|
-
])), p = r(({ type: e, payload: t = "" }) => u((n) => n.from === t && e === "charge" ? n : t && n.from !== t && e === "charge" ? {
|
|
267
|
-
...n,
|
|
268
|
-
from: t
|
|
269
|
-
} : e === "reset" ? {
|
|
270
|
-
...n,
|
|
271
|
-
to: ""
|
|
272
|
-
} : (e === "process" && f.current({ pathname: n.to }), !n.from && !n.to ? n : {
|
|
273
|
-
from: "",
|
|
274
|
-
to: ""
|
|
275
|
-
})), [f]), m = r(async (e) => {
|
|
276
|
-
l.from ? u((t) => ({
|
|
277
|
-
...t,
|
|
278
|
-
to: e.pathname
|
|
279
|
-
})) : await f.current(e);
|
|
280
|
-
}, [l.from, f]);
|
|
281
|
-
return a(() => {
|
|
282
|
-
let t = async (t) => {
|
|
283
|
-
let n = C(t.target.location);
|
|
284
|
-
d.current === l.from ? (u({
|
|
285
|
-
from: d.current,
|
|
286
|
-
to: n.pathname
|
|
287
|
-
}), history.replaceState(null, "", d.current)) : e(n);
|
|
288
|
-
};
|
|
289
|
-
return window.addEventListener("popstate", t), () => window.removeEventListener("popstate", t);
|
|
290
|
-
}, [l.from, e]), a(() => {
|
|
291
|
-
let e = C(window.location);
|
|
292
|
-
f.current(e), d.current = e.pathname;
|
|
293
|
-
}, [f]), {
|
|
294
|
-
blockerState: o(() => l.from && l.to ? "blocked" : l.from ? "charged" : "unblocked", [l]),
|
|
295
|
-
updateLocation: m,
|
|
296
|
-
updateBlockedRoute: p
|
|
297
|
-
};
|
|
298
|
-
}, k = (e) => {
|
|
299
|
-
let [t, n] = c({}), [i, a] = c({}), [o, s] = c(!1), [l, u] = c({}), d = r(({ key: e, value: t }) => n((n) => ({
|
|
300
|
-
...n,
|
|
301
|
-
[e]: t
|
|
302
|
-
})), []), f = r((e) => {
|
|
303
|
-
if (!e) return !0;
|
|
304
|
-
let t = i[e.path];
|
|
305
|
-
return !!(t && Date.now() - t < (e.staleTime || 0));
|
|
306
|
-
}, [i]), p = r(async (e) => {
|
|
307
|
-
if (e?.loader && !f(e)) {
|
|
308
|
-
u((t) => ({
|
|
309
|
-
...t,
|
|
310
|
-
[e.path]: !0
|
|
311
|
-
})), n((t) => Object.keys(t).filter((t) => t !== e.path).reduce((e, n) => ({
|
|
312
|
-
...e,
|
|
313
|
-
[n]: t[n]
|
|
314
|
-
}), {}));
|
|
315
|
-
try {
|
|
316
|
-
s(!1);
|
|
317
|
-
let t = await e?.loader();
|
|
318
|
-
a((t) => ({
|
|
319
|
-
...t,
|
|
320
|
-
[e.path]: Date.now()
|
|
321
|
-
})), d({
|
|
322
|
-
key: e.path,
|
|
323
|
-
value: t
|
|
324
|
-
});
|
|
325
|
-
} catch {
|
|
326
|
-
s(!0);
|
|
327
|
-
} finally {
|
|
328
|
-
u((t) => ({
|
|
329
|
-
...t,
|
|
330
|
-
[e.path]: !1
|
|
331
|
-
}));
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}, [f, d]);
|
|
335
|
-
return {
|
|
336
|
-
loaderCache: t,
|
|
337
|
-
loaderError: o,
|
|
338
|
-
prefetchLoader: r(async (t) => {
|
|
339
|
-
let n = e.find((e) => w(e, t));
|
|
340
|
-
n && await p(n);
|
|
341
|
-
}, [p, e]),
|
|
342
|
-
revalidateCache: p,
|
|
343
|
-
isLoadingMap: l
|
|
344
|
-
};
|
|
345
|
-
}, A = (e) => e ? typeof e == "function" ? /* @__PURE__ */ (0, g.jsx)(e, {}) : e : null, j = "error 404. Page not found", M = "*", N = ({ routeList: e, context: t = {} }) => {
|
|
346
|
-
let [n, r] = c(C(window.location)), [i, a] = c(t), s = o(() => e.find((e) => e.path === M || w(e, n.pathname)), [n.pathname, e]), { loaderError: l, loaderCache: u, prefetchLoader: d, revalidateCache: f, isLoadingMap: p } = k(e), { blockerState: m, updateLocation: h, updateBlockedRoute: v } = O({
|
|
347
|
-
setLocation: r,
|
|
348
|
-
routeList: e,
|
|
349
|
-
context: i,
|
|
350
|
-
revalidateCache: f
|
|
351
|
-
}), y = o(() => s?.params ? S(s.params) : {}, [s]), b = o(() => ({
|
|
352
|
-
location: n,
|
|
353
|
-
updateLocation: h,
|
|
354
|
-
params: y,
|
|
355
|
-
loaderCache: u,
|
|
356
|
-
prefetchLoader: d,
|
|
357
|
-
updateBlockedRoute: v,
|
|
358
|
-
blockerState: m,
|
|
359
|
-
context: i,
|
|
360
|
-
setContext: a
|
|
361
|
-
}), [
|
|
362
|
-
m,
|
|
363
|
-
u,
|
|
364
|
-
n,
|
|
365
|
-
y,
|
|
366
|
-
d,
|
|
367
|
-
i,
|
|
368
|
-
v,
|
|
369
|
-
h
|
|
370
|
-
]);
|
|
371
|
-
return s?.loader && !l && p[n.pathname] ? /* @__PURE__ */ (0, g.jsx)(_, {
|
|
372
|
-
...b,
|
|
373
|
-
children: A(s?.loaderFallback)
|
|
374
|
-
}) : l ? /* @__PURE__ */ (0, g.jsx)(_, {
|
|
375
|
-
...b,
|
|
376
|
-
children: A(s?.errorElement)
|
|
377
|
-
}) : /* @__PURE__ */ (0, g.jsx)(_, {
|
|
378
|
-
...b,
|
|
379
|
-
children: A(s?.element) || j
|
|
380
|
-
});
|
|
381
|
-
}, P = () => {
|
|
382
|
-
let e = i(p);
|
|
383
|
-
if (!Object.keys(e).length) throw Error("useNavigationState must be used within Router component");
|
|
384
|
-
return e;
|
|
385
|
-
}, F = () => {
|
|
386
|
-
let e = i(d);
|
|
387
|
-
if (!Object.keys(e).length) throw Error("useRouterActions must be used within Router component");
|
|
388
|
-
return e;
|
|
389
|
-
}, I = () => {
|
|
390
|
-
let e = i(f);
|
|
391
|
-
if (!Object.keys(e).length) throw Error("useRouterData must be used within Router component");
|
|
392
|
-
return e;
|
|
393
|
-
}, L = () => {
|
|
394
|
-
let { updateLocation: e } = F();
|
|
395
|
-
return r(async (t) => t === -1 ? history.go(-1) : await e(t), [e]);
|
|
396
|
-
}, R = ({ children: e, to: t, prefetch: n = !0 }) => {
|
|
397
|
-
let { prefetchLoader: r } = F(), i = L();
|
|
398
|
-
return /* @__PURE__ */ (0, g.jsx)("a", {
|
|
399
|
-
style: { cursor: "pointer" },
|
|
400
|
-
onClick: () => i({ pathname: t }),
|
|
401
|
-
onMouseOver: () => n && r(t),
|
|
402
|
-
children: e
|
|
403
|
-
});
|
|
404
|
-
}, z = () => {
|
|
405
|
-
let { params: e } = P();
|
|
406
|
-
return e;
|
|
407
|
-
}, B = () => P().location, V = () => {
|
|
408
|
-
let { loaderCache: e } = I();
|
|
409
|
-
return e[window.location.pathname];
|
|
410
|
-
}, H = (e) => {
|
|
411
|
-
let { location: { pathname: t }, blockerState: n } = P(), { updateBlockedRoute: r } = F(), i = e();
|
|
412
|
-
return a(() => r(i ? {
|
|
413
|
-
type: "charge",
|
|
414
|
-
payload: t
|
|
415
|
-
} : { type: "unblock" }), [
|
|
416
|
-
i,
|
|
417
|
-
t,
|
|
418
|
-
r
|
|
419
|
-
]), {
|
|
420
|
-
state: n,
|
|
421
|
-
process: () => r({ type: "process" }),
|
|
422
|
-
reset: () => r({ type: "reset" })
|
|
423
|
-
};
|
|
424
|
-
}, U = (e) => {
|
|
425
|
-
a(() => {
|
|
426
|
-
let t = (t) => {
|
|
427
|
-
e && (t.preventDefault(), e());
|
|
428
|
-
};
|
|
429
|
-
return window.addEventListener("beforeunload", t), () => window.removeEventListener("beforeunload", t);
|
|
430
|
-
}, [e]);
|
|
431
|
-
}, W = () => {
|
|
432
|
-
let { context: e } = I(), { setContext: t } = F();
|
|
433
|
-
return {
|
|
434
|
-
context: e,
|
|
435
|
-
setContext: t
|
|
436
|
-
};
|
|
437
|
-
};
|
|
438
|
-
//#endregion
|
|
439
|
-
export { R as Link, N as Router, w as comparePaths, x as createRouter, C as parseWindowLocation, E as redirect, U as useBeforeUnload, H as useBlocker, V as useLoaderState, B as useLocation, L as useNavigate, z as useParams, W as useRouterContext };
|
package/dist/index.umd.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react")):typeof define==`function`&&define.amd?define([`exports`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ClearReactRouter={},e.React))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),r=(0,t.createContext)({}),i=(0,t.createContext)({}),a=(0,t.createContext)({}),o=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),s=n((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===O?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case C:return`Suspense`;case w:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case g:return`Portal`;case x:return e.displayName||`Context`;case b:return(e._context.displayName||`Context`)+`.Consumer`;case S:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case T:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case E:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===_)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===E)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=k.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(A.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){N||(N=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return P[e]||(P[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:h,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(j(p)){for(o=0;o<p.length;o++)f(p[o]);Object.freeze&&Object.freeze(p)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else f(p);if(A.call(n,`key`)){p=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,L[p+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
|
-
let props = %s;
|
|
3
|
-
<%s {...props} />
|
|
4
|
-
React keys must be passed directly to JSX without using spread:
|
|
5
|
-
let props = %s;
|
|
6
|
-
<%s key={someKey} {...props} />`,o,p,m,p),L[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=require("react"),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),w=Symbol.for(`react.suspense_list`),T=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),O=Symbol.for(`react.client.reference`),k=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,j=Array.isArray,M=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var N,P={},F=m.react_stack_bottom_frame.bind(m,o)(),I=M(i(o)),L={};e.Fragment=_,e.jsx=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)},e.jsxs=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)}})()})),c=n(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=o():t.exports=s()}))(),l=({children:e,setContext:t,context:n,updateBlockedRoute:o,updateLocation:s,location:l,params:u,prefetchLoader:d,loaderCache:f,blockerState:p})=>(0,c.jsx)(r.Provider,{value:{updateLocation:s,updateBlockedRoute:o,prefetchLoader:d,setContext:t},children:(0,c.jsx)(i.Provider,{value:{context:n,loaderCache:f},children:(0,c.jsx)(a.Provider,{value:{blockerState:p,params:u,location:l},children:e})})}),u=(e,n)=>{let r=(0,t.lazy)(()=>e().then(e=>({default:e.default||e})));return()=>(0,c.jsx)(t.Suspense,{fallback:typeof n==`function`?n():n||null,children:(0,c.jsx)(r,{})})},d=e=>typeof e.element==`function`&&e.element.toString().includes(`import(`),f=(e,t=[],n=``)=>{let r=e.path.match(/:[^/]+/g),i=e.path.replaceAll(/:[^/]+(\/|$)/g,``).split(`/`).filter(Boolean),a=e.path.split(`/`),o=r?[...t,...r.map((e,t)=>({key:i[t],value:e.slice(1)}))]:t,s=o.length?`${n}${a.slice(0,a.length-1).join(`/`)}`:e.path,c=d(e)?u(e.element,e.fallback):e.element;return[{...e,path:s,params:o,element:c},...e.children?.flatMap(e=>f(e,o,s))||[]]},p=e=>e.flatMap(e=>f(e,[])),m=e=>{let{pathname:t}=window.location,n=t.split(`/`);return(e||[]).map(e=>({index:n.findIndex(t=>t===e.key),value:e.value})).reduce((e,t)=>({...e,[t.value]:n[t.index+1]}),{})},h=e=>({pathname:e.pathname,search:e.search}),g=(e,t)=>{let n=e.path.split(`/`).filter(Boolean),r=e.params?Object.keys(e.params).length:0,i=t.split(`/`).filter(Boolean);return n.every((e,t)=>e===i[t+ +!!t])&&i.length===n.length+r},_=class{url;search;cause;constructor(e,t){this.url=e,this.search=t,this.cause=`redirect`}},v=(e,t)=>Promise.reject(new _(e,t)),y=e=>{let n=(0,t.useRef)(e);return(0,t.useEffect)(()=>{n.current=e},[e]),n},b=({setLocation:e,routeList:n,context:r,revalidateCache:i})=>{let[a,o]=(0,t.useState)({from:``,to:``}),s=(0,t.useRef)(``),c=y((0,t.useCallback)(async t=>{try{let a=n.find(e=>g(e,t.pathname));a?.beforeLoad&&await a?.beforeLoad(r),e(t),t.pathname!==window.location.pathname&&(history.pushState(null,``,t.pathname),s.current=t.pathname),await i(a),a?.afterLoad&&await a?.afterLoad(r)}catch(t){if(!(t instanceof _))return t;history.replaceState(null,``,`${t.url}${t.search||``}`),e({pathname:t.url,search:t.search})}},[r,i,n,e])),l=(0,t.useCallback)(({type:e,payload:t=``})=>o(n=>n.from===t&&e===`charge`?n:t&&n.from!==t&&e===`charge`?{...n,from:t}:e===`reset`?{...n,to:``}:(e===`process`&&c.current({pathname:n.to}),!n.from&&!n.to?n:{from:``,to:``})),[c]),u=(0,t.useCallback)(async e=>{a.from?o(t=>({...t,to:e.pathname})):await c.current(e)},[a.from,c]);return(0,t.useEffect)(()=>{let t=async t=>{let n=h(t.target.location);s.current===a.from?(o({from:s.current,to:n.pathname}),history.replaceState(null,``,s.current)):e(n)};return window.addEventListener(`popstate`,t),()=>window.removeEventListener(`popstate`,t)},[a.from,e]),(0,t.useEffect)(()=>{let e=h(window.location);c.current(e),s.current=e.pathname},[c]),{blockerState:(0,t.useMemo)(()=>a.from&&a.to?`blocked`:a.from?`charged`:`unblocked`,[a]),updateLocation:u,updateBlockedRoute:l}},x=e=>{let[n,r]=(0,t.useState)({}),[i,a]=(0,t.useState)({}),[o,s]=(0,t.useState)(!1),[c,l]=(0,t.useState)({}),u=(0,t.useCallback)(({key:e,value:t})=>r(n=>({...n,[e]:t})),[]),d=(0,t.useCallback)(e=>{if(!e)return!0;let t=i[e.path];return!!(t&&Date.now()-t<(e.staleTime||0))},[i]),f=(0,t.useCallback)(async e=>{if(e?.loader&&!d(e)){l(t=>({...t,[e.path]:!0})),r(t=>Object.keys(t).filter(t=>t!==e.path).reduce((e,n)=>({...e,[n]:t[n]}),{}));try{s(!1);let t=await e?.loader();a(t=>({...t,[e.path]:Date.now()})),u({key:e.path,value:t})}catch{s(!0)}finally{l(t=>({...t,[e.path]:!1}))}}},[d,u]);return{loaderCache:n,loaderError:o,prefetchLoader:(0,t.useCallback)(async t=>{let n=e.find(e=>g(e,t));n&&await f(n)},[f,e]),revalidateCache:f,isLoadingMap:c}},S=e=>e?typeof e==`function`?(0,c.jsx)(e,{}):e:null,C=`error 404. Page not found`,w=`*`,T=({routeList:e,context:n={}})=>{let[r,i]=(0,t.useState)(h(window.location)),[a,o]=(0,t.useState)(n),s=(0,t.useMemo)(()=>e.find(e=>e.path===w||g(e,r.pathname)),[r.pathname,e]),{loaderError:u,loaderCache:d,prefetchLoader:f,revalidateCache:p,isLoadingMap:_}=x(e),{blockerState:v,updateLocation:y,updateBlockedRoute:T}=b({setLocation:i,routeList:e,context:a,revalidateCache:p}),E=(0,t.useMemo)(()=>s?.params?m(s.params):{},[s]),D=(0,t.useMemo)(()=>({location:r,updateLocation:y,params:E,loaderCache:d,prefetchLoader:f,updateBlockedRoute:T,blockerState:v,context:a,setContext:o}),[v,d,r,E,f,a,T,y]);return s?.loader&&!u&&_[r.pathname]?(0,c.jsx)(l,{...D,children:S(s?.loaderFallback)}):u?(0,c.jsx)(l,{...D,children:S(s?.errorElement)}):(0,c.jsx)(l,{...D,children:S(s?.element)||C})},E=()=>{let e=(0,t.useContext)(a);if(!Object.keys(e).length)throw Error(`useNavigationState must be used within Router component`);return e},D=()=>{let e=(0,t.useContext)(r);if(!Object.keys(e).length)throw Error(`useRouterActions must be used within Router component`);return e},O=()=>{let e=(0,t.useContext)(i);if(!Object.keys(e).length)throw Error(`useRouterData must be used within Router component`);return e},k=()=>{let{updateLocation:e}=D();return(0,t.useCallback)(async t=>t===-1?history.go(-1):await e(t),[e])};e.Link=({children:e,to:t,prefetch:n=!0})=>{let{prefetchLoader:r}=D(),i=k();return(0,c.jsx)(`a`,{style:{cursor:`pointer`},onClick:()=>i({pathname:t}),onMouseOver:()=>n&&r(t),children:e})},e.Router=T,e.comparePaths=g,e.createRouter=p,e.parseWindowLocation=h,e.redirect=v,e.useBeforeUnload=e=>{(0,t.useEffect)(()=>{let t=t=>{e&&(t.preventDefault(),e())};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e])},e.useBlocker=e=>{let{location:{pathname:n},blockerState:r}=E(),{updateBlockedRoute:i}=D(),a=e();return(0,t.useEffect)(()=>i(a?{type:`charge`,payload:n}:{type:`unblock`}),[a,n,i]),{state:r,process:()=>i({type:`process`}),reset:()=>i({type:`reset`})}},e.useLoaderState=()=>{let{loaderCache:e}=O();return e[window.location.pathname]},e.useLocation=()=>E().location,e.useNavigate=k,e.useParams=()=>{let{params:e}=E();return e},e.useRouterContext=()=>{let{context:e}=O(),{setContext:t}=D();return{context:e,setContext:t}}});
|