vue-micro-router 1.0.56 → 1.0.58
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.mjs +627 -603
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { shallowReactive as U, computed as
|
|
2
|
-
import { i as De, s as
|
|
1
|
+
import { shallowReactive as U, computed as C, defineAsyncComponent as me, reactive as pe, nextTick as k, ref as ee, inject as V, watch as X, onMounted as q, onBeforeUnmount as he, provide as N, toRefs as Oe, toRef as Ke, defineComponent as oe, openBlock as B, createBlock as z, resolveDynamicComponent as ye, mergeProps as Pe, Teleport as We, createElementVNode as j, withModifiers as le, normalizeStyle as be, normalizeClass as Q, createElementBlock as x, createCommentVNode as $e, renderSlot as we, Fragment as te, createVNode as Re, TransitionGroup as Ee, withCtx as ce, renderList as ue, unref as Y } from "vue";
|
|
2
|
+
import { i as De, s as Ae, g as H, w as ne, p as _, b as K, n as W, u as Ye } from "./use-audio-manager.mjs";
|
|
3
3
|
const Me = Symbol("micro-router");
|
|
4
|
-
function
|
|
4
|
+
function ht() {
|
|
5
5
|
return Symbol("micro-router-nested");
|
|
6
6
|
}
|
|
7
|
-
const de = Symbol("micro-router-root"), Le = Symbol("micro-route-path"), Te = Symbol("micro-dialog-path"),
|
|
8
|
-
function
|
|
7
|
+
const de = Symbol("micro-router-root"), Le = Symbol("micro-route-path"), Te = Symbol("micro-dialog-path"), Ie = Symbol("micro-control-name"), ae = Symbol("micro-attrs-read"), ie = Symbol("micro-attrs-write"), Ue = 550;
|
|
8
|
+
function Ce() {
|
|
9
9
|
const e = /* @__PURE__ */ new Set();
|
|
10
10
|
function o(i, t) {
|
|
11
|
-
const
|
|
12
|
-
e.delete(
|
|
11
|
+
const l = setTimeout(() => {
|
|
12
|
+
e.delete(l), i();
|
|
13
13
|
}, t);
|
|
14
|
-
return e.add(
|
|
14
|
+
return e.add(l), l;
|
|
15
15
|
}
|
|
16
16
|
function n() {
|
|
17
17
|
e.forEach(clearTimeout), e.clear();
|
|
@@ -21,90 +21,90 @@ function Ae() {
|
|
|
21
21
|
function fe(e) {
|
|
22
22
|
return new Promise((o) => setTimeout(o, e));
|
|
23
23
|
}
|
|
24
|
-
function
|
|
25
|
-
const n = e.defaultControlName, i = e.onboardingControlName, t = 300,
|
|
26
|
-
let
|
|
27
|
-
const
|
|
24
|
+
function Xe(e, o) {
|
|
25
|
+
const n = e.defaultControlName, i = e.onboardingControlName, t = 300, l = Ce();
|
|
26
|
+
let c = !1;
|
|
27
|
+
const r = U(/* @__PURE__ */ new Map()), u = U(
|
|
28
28
|
/* @__PURE__ */ new Map()
|
|
29
|
-
), a =
|
|
30
|
-
const
|
|
31
|
-
for (const
|
|
32
|
-
|
|
33
|
-
return
|
|
34
|
-
}),
|
|
35
|
-
() => a.value.some((
|
|
36
|
-
), L =
|
|
37
|
-
const
|
|
38
|
-
return (
|
|
29
|
+
), a = C(() => {
|
|
30
|
+
const s = [];
|
|
31
|
+
for (const f of r.values())
|
|
32
|
+
f.activated && s.push(f);
|
|
33
|
+
return s;
|
|
34
|
+
}), m = a, R = C(
|
|
35
|
+
() => a.value.some((s) => s.name !== n)
|
|
36
|
+
), L = C(() => {
|
|
37
|
+
const s = a.value.find((f) => f.name !== n);
|
|
38
|
+
return (s == null ? void 0 : s.name) ?? n;
|
|
39
39
|
});
|
|
40
|
-
function M(
|
|
41
|
-
var
|
|
42
|
-
if (!(
|
|
43
|
-
|
|
40
|
+
function M(s, f, A) {
|
|
41
|
+
var d, P, p;
|
|
42
|
+
if (!(f && c)) {
|
|
43
|
+
f && (c = !0);
|
|
44
44
|
try {
|
|
45
|
-
const
|
|
46
|
-
if (!
|
|
47
|
-
const v =
|
|
48
|
-
if (
|
|
49
|
-
(
|
|
50
|
-
var
|
|
51
|
-
w.name !== n && w.activated && ((
|
|
45
|
+
const h = r.get(s);
|
|
46
|
+
if (!h) return;
|
|
47
|
+
const v = r.get(n), D = s === n || s === i;
|
|
48
|
+
if (f)
|
|
49
|
+
(d = o == null ? void 0 : o.trackGuiEnter) == null || d.call(o, s), D ? r.forEach((w) => {
|
|
50
|
+
var S;
|
|
51
|
+
w.name !== n && w.activated && ((S = o == null ? void 0 : o.trackGuiLeave) == null || S.call(o, w.name), r.set(w.name, {
|
|
52
52
|
...w,
|
|
53
53
|
activated: !1,
|
|
54
54
|
attrs: void 0
|
|
55
55
|
}));
|
|
56
|
-
}) : v != null && v.activated && ((
|
|
57
|
-
...
|
|
56
|
+
}) : v != null && v.activated && ((P = o == null ? void 0 : o.trackGuiLeave) == null || P.call(o, n), r.set(n, { ...v, activated: !1 })), A && u.set(s, { ...A }), r.set(s, {
|
|
57
|
+
...h,
|
|
58
58
|
activated: !0,
|
|
59
|
-
componentKey: (
|
|
60
|
-
attrs:
|
|
59
|
+
componentKey: (h.componentKey || 0) + 1,
|
|
60
|
+
attrs: A ? { ...A } : void 0
|
|
61
61
|
});
|
|
62
62
|
else {
|
|
63
|
-
(
|
|
64
|
-
const w =
|
|
63
|
+
(p = o == null ? void 0 : o.trackGuiLeave) == null || p.call(o, s), u.delete(s), r.set(s, { ...h, activated: !1, attrs: void 0 });
|
|
64
|
+
const w = r.get(n);
|
|
65
65
|
if (!D && w && !w.activated) {
|
|
66
66
|
if (w.name === i) return;
|
|
67
|
-
|
|
67
|
+
r.set(n, { ...w, activated: !0 });
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
} finally {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
f && l.schedule(() => {
|
|
72
|
+
c = !1;
|
|
73
73
|
}, t);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
function
|
|
78
|
-
|
|
79
|
-
let { component:
|
|
80
|
-
De(
|
|
81
|
-
...
|
|
82
|
-
component:
|
|
77
|
+
function T(s) {
|
|
78
|
+
r.has(s.name) && console.warn(`[vue-micro-router] Control "${s.name}" already registered. Overwriting.`);
|
|
79
|
+
let { component: f } = s;
|
|
80
|
+
De(f) && (f = me(f)), r.set(s.name, {
|
|
81
|
+
...s,
|
|
82
|
+
component: Ae(f)
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
|
-
function
|
|
86
|
-
|
|
85
|
+
function I(s) {
|
|
86
|
+
s.forEach(T);
|
|
87
87
|
}
|
|
88
|
-
function g(
|
|
89
|
-
return
|
|
88
|
+
function g(s) {
|
|
89
|
+
return u.get(s);
|
|
90
90
|
}
|
|
91
|
-
function
|
|
92
|
-
const
|
|
93
|
-
|
|
91
|
+
function y(s, f) {
|
|
92
|
+
const A = u.get(s);
|
|
93
|
+
u.set(s, { ...A, ...f });
|
|
94
94
|
}
|
|
95
95
|
return {
|
|
96
|
-
resolveControls:
|
|
96
|
+
resolveControls: m,
|
|
97
97
|
activeControl: R,
|
|
98
98
|
currentControl: L,
|
|
99
99
|
toggleControl: M,
|
|
100
|
-
registerControl:
|
|
101
|
-
registerControls:
|
|
100
|
+
registerControl: T,
|
|
101
|
+
registerControls: I,
|
|
102
102
|
getControlAttrs: g,
|
|
103
|
-
updateControlAttrs:
|
|
104
|
-
cleanup:
|
|
103
|
+
updateControlAttrs: y,
|
|
104
|
+
cleanup: l.cleanup
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
|
-
const ge = "micro-router-inspector",
|
|
107
|
+
const ge = "micro-router-inspector", Fe = "micro-router-events";
|
|
108
108
|
async function ze(e) {
|
|
109
109
|
if (typeof import.meta < "u") return;
|
|
110
110
|
let o;
|
|
@@ -129,7 +129,7 @@ async function ze(e) {
|
|
|
129
129
|
label: "Micro Router",
|
|
130
130
|
icon: "route"
|
|
131
131
|
}), n.addTimelineLayer({
|
|
132
|
-
id:
|
|
132
|
+
id: Fe,
|
|
133
133
|
label: "Micro Router",
|
|
134
134
|
color: 4372611
|
|
135
135
|
}), n.on.getInspectorTree((i) => {
|
|
@@ -200,30 +200,30 @@ async function ze(e) {
|
|
|
200
200
|
}
|
|
201
201
|
);
|
|
202
202
|
}
|
|
203
|
-
function
|
|
203
|
+
function Ve(e) {
|
|
204
204
|
const o = e.activePath.value.split("/").filter(Boolean), n = {};
|
|
205
|
-
for (const
|
|
206
|
-
const
|
|
207
|
-
|
|
205
|
+
for (const r of o) {
|
|
206
|
+
const u = e.getRouteAttrs(r);
|
|
207
|
+
u && (n[r] = { ...u });
|
|
208
208
|
}
|
|
209
209
|
const i = [], t = {};
|
|
210
|
-
for (const
|
|
211
|
-
if (
|
|
212
|
-
i.push(
|
|
213
|
-
const
|
|
214
|
-
|
|
210
|
+
for (const r of e.resolveDialogs.value) {
|
|
211
|
+
if (r.closing) continue;
|
|
212
|
+
i.push(r.path);
|
|
213
|
+
const u = e.getDialogAttrs(r.path);
|
|
214
|
+
u && (t[r.path] = { ...u });
|
|
215
215
|
}
|
|
216
|
-
const
|
|
217
|
-
for (const
|
|
218
|
-
|
|
219
|
-
const
|
|
220
|
-
|
|
216
|
+
const l = [], c = {};
|
|
217
|
+
for (const r of e.resolveControls.value) {
|
|
218
|
+
l.push(r.name);
|
|
219
|
+
const u = e.getControlAttrs(r.name);
|
|
220
|
+
u && (c[r.name] = { ...u });
|
|
221
221
|
}
|
|
222
222
|
return {
|
|
223
223
|
version: 1,
|
|
224
224
|
navigation: { activePath: e.activePath.value, routeAttrs: n },
|
|
225
225
|
dialogs: { stack: i, attrs: t },
|
|
226
|
-
controls: { active:
|
|
226
|
+
controls: { active: l, attrs: c }
|
|
227
227
|
};
|
|
228
228
|
}
|
|
229
229
|
async function xe(e, o) {
|
|
@@ -233,19 +233,19 @@ async function xe(e, o) {
|
|
|
233
233
|
}
|
|
234
234
|
const { activePath: n, routeAttrs: i } = o.navigation;
|
|
235
235
|
await e.push(n);
|
|
236
|
-
for (const [t,
|
|
237
|
-
e.updateRouteAttrs(t,
|
|
236
|
+
for (const [t, l] of Object.entries(i))
|
|
237
|
+
e.updateRouteAttrs(t, l);
|
|
238
238
|
for (const t of o.dialogs.stack) {
|
|
239
|
-
const
|
|
240
|
-
e.openDialog(t,
|
|
239
|
+
const l = o.dialogs.attrs[t];
|
|
240
|
+
e.openDialog(t, l);
|
|
241
241
|
}
|
|
242
242
|
for (const t of o.controls.active) {
|
|
243
|
-
const
|
|
244
|
-
e.toggleControl(t, !0,
|
|
243
|
+
const l = o.controls.attrs[t];
|
|
244
|
+
e.toggleControl(t, !0, l);
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
|
-
function
|
|
248
|
-
const n =
|
|
247
|
+
function je(e) {
|
|
248
|
+
const n = Ce();
|
|
249
249
|
let i = !1;
|
|
250
250
|
const t = pe({
|
|
251
251
|
activeDialog: "",
|
|
@@ -257,167 +257,167 @@ function Ve(e) {
|
|
|
257
257
|
dialogs: U(/* @__PURE__ */ new Map()),
|
|
258
258
|
/** Attrs stored separately for useMicroState access inside dialog components */
|
|
259
259
|
dialogAttrs: U(/* @__PURE__ */ new Map())
|
|
260
|
-
}),
|
|
261
|
-
const g = [],
|
|
262
|
-
for (const
|
|
263
|
-
const
|
|
264
|
-
|
|
260
|
+
}), l = C(() => {
|
|
261
|
+
const g = [], y = /* @__PURE__ */ new Set();
|
|
262
|
+
for (const s of t.dialogStack) {
|
|
263
|
+
const f = t.dialogs.get(s);
|
|
264
|
+
f && (f.activated || f.closing) && (g.push(f), y.add(s));
|
|
265
265
|
}
|
|
266
|
-
for (const
|
|
267
|
-
|
|
266
|
+
for (const s of t.dialogs.values())
|
|
267
|
+
s.closing && !y.has(s.path) && g.push(s);
|
|
268
268
|
return g;
|
|
269
|
-
}),
|
|
270
|
-
function
|
|
271
|
-
return { path: g, attrs:
|
|
269
|
+
}), c = n.schedule;
|
|
270
|
+
function r(g, y) {
|
|
271
|
+
return { path: g, attrs: y };
|
|
272
272
|
}
|
|
273
|
-
function
|
|
274
|
-
const
|
|
275
|
-
return
|
|
276
|
-
if (
|
|
277
|
-
t.fromDialog = t.activeDialog, t.toDialog = g, t.dialogStack.includes(g) || t.dialogStack.push(g), t.activeDialog = g,
|
|
278
|
-
...
|
|
273
|
+
function u({ path: g, open: y, attrs: s }) {
|
|
274
|
+
const f = t.dialogs.get(g);
|
|
275
|
+
return f && k(() => {
|
|
276
|
+
if (y)
|
|
277
|
+
t.fromDialog = t.activeDialog, t.toDialog = g, t.dialogStack.includes(g) || t.dialogStack.push(g), t.activeDialog = g, s && t.dialogAttrs.set(g, { ...s }), t.dialogs.set(g, {
|
|
278
|
+
...f,
|
|
279
279
|
activated: !0,
|
|
280
280
|
closing: !1,
|
|
281
|
-
componentKey: (
|
|
281
|
+
componentKey: (f.componentKey || 0) + 1,
|
|
282
282
|
attrs: {
|
|
283
283
|
path: g,
|
|
284
|
-
...
|
|
284
|
+
...s,
|
|
285
285
|
onClose: () => {
|
|
286
|
-
|
|
286
|
+
m(g), s != null && s.onClose && typeof s.onClose == "function" && s.onClose();
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
289
|
});
|
|
290
290
|
else {
|
|
291
291
|
t.fromDialog = t.activeDialog;
|
|
292
|
-
const
|
|
293
|
-
|
|
294
|
-
const
|
|
292
|
+
const A = t.dialogStack.indexOf(g);
|
|
293
|
+
A > -1 && t.dialogStack.splice(A, 1), t.activeDialog = t.dialogStack.at(-1) ?? "", t.toDialog = t.activeDialog;
|
|
294
|
+
const d = f.transitionDuration ?? (f.transition === "slide" ? 500 : 300);
|
|
295
295
|
t.dialogs.set(g, {
|
|
296
|
-
...
|
|
296
|
+
...f,
|
|
297
297
|
activated: !1,
|
|
298
298
|
closing: !0,
|
|
299
299
|
attrs: void 0
|
|
300
|
-
}),
|
|
301
|
-
const
|
|
302
|
-
|
|
303
|
-
},
|
|
300
|
+
}), c(() => {
|
|
301
|
+
const P = t.dialogs.get(g);
|
|
302
|
+
P && !P.activated && t.dialogs.set(g, { ...P, closing: !1 });
|
|
303
|
+
}, d + 200);
|
|
304
304
|
}
|
|
305
|
-
}),
|
|
305
|
+
}), r(g, s);
|
|
306
306
|
}
|
|
307
|
-
function a(g,
|
|
308
|
-
var
|
|
309
|
-
if (i) return
|
|
307
|
+
function a(g, y) {
|
|
308
|
+
var s;
|
|
309
|
+
if (i) return r(g, y);
|
|
310
310
|
i = !0;
|
|
311
311
|
try {
|
|
312
|
-
const
|
|
313
|
-
(
|
|
314
|
-
const
|
|
315
|
-
return
|
|
312
|
+
const f = t.activeDialog || "";
|
|
313
|
+
(s = e == null ? void 0 : e.trackDialogEnter) == null || s.call(e, g, f, g);
|
|
314
|
+
const A = u({ path: g, open: !0, attrs: y });
|
|
315
|
+
return c(() => {
|
|
316
316
|
i = !1;
|
|
317
|
-
}, 300),
|
|
318
|
-
} catch (
|
|
319
|
-
throw i = !1,
|
|
317
|
+
}, 300), A;
|
|
318
|
+
} catch (f) {
|
|
319
|
+
throw i = !1, f;
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
|
-
function
|
|
323
|
-
var
|
|
324
|
-
(
|
|
322
|
+
function m(g) {
|
|
323
|
+
var y;
|
|
324
|
+
(y = e == null ? void 0 : e.trackDialogLeave) == null || y.call(e, g, g, ""), t.dialogAttrs.delete(g), u({ path: g, open: !1 });
|
|
325
325
|
}
|
|
326
326
|
function R() {
|
|
327
|
-
const g = [],
|
|
328
|
-
t.dialogs.forEach((
|
|
329
|
-
var
|
|
330
|
-
if (
|
|
331
|
-
(
|
|
332
|
-
const
|
|
333
|
-
typeof
|
|
334
|
-
...
|
|
327
|
+
const g = [], y = [];
|
|
328
|
+
t.dialogs.forEach((s, f) => {
|
|
329
|
+
var A, d;
|
|
330
|
+
if (s.activated) {
|
|
331
|
+
(A = e == null ? void 0 : e.trackDialogLeave) == null || A.call(e, f, f, "");
|
|
332
|
+
const P = (d = s.attrs) == null ? void 0 : d.onClose;
|
|
333
|
+
typeof P == "function" && y.push(P), t.dialogs.set(f, {
|
|
334
|
+
...s,
|
|
335
335
|
activated: !1,
|
|
336
336
|
closing: !0,
|
|
337
337
|
attrs: void 0
|
|
338
|
-
}), g.push(
|
|
338
|
+
}), g.push(f);
|
|
339
339
|
}
|
|
340
|
-
}),
|
|
341
|
-
g.forEach((
|
|
342
|
-
const
|
|
343
|
-
|
|
340
|
+
}), y.forEach((s) => s()), t.dialogAttrs.clear(), t.fromDialog = t.activeDialog, t.toDialog = "", t.activeDialog = "", t.dialogStack = [], c(() => {
|
|
341
|
+
g.forEach((s) => {
|
|
342
|
+
const f = t.dialogs.get(s);
|
|
343
|
+
f && !f.activated && t.dialogs.set(s, { ...f, closing: !1 });
|
|
344
344
|
});
|
|
345
345
|
}, 500);
|
|
346
346
|
}
|
|
347
347
|
function L(g) {
|
|
348
348
|
t.dialogs.has(g.path) && console.warn(`[vue-micro-router] Dialog "${g.path}" already registered. Overwriting.`);
|
|
349
|
-
let { component:
|
|
350
|
-
De(
|
|
349
|
+
let { component: y } = g;
|
|
350
|
+
De(y) && (y = me(y)), t.dialogs.set(g.path, {
|
|
351
351
|
persistent: !0,
|
|
352
352
|
...g,
|
|
353
|
-
component:
|
|
353
|
+
component: Ae(y)
|
|
354
354
|
});
|
|
355
355
|
}
|
|
356
356
|
function M(g) {
|
|
357
357
|
g.forEach(L);
|
|
358
358
|
}
|
|
359
|
-
function
|
|
359
|
+
function T(g) {
|
|
360
360
|
return t.dialogAttrs.get(g);
|
|
361
361
|
}
|
|
362
|
-
function
|
|
363
|
-
const
|
|
364
|
-
t.dialogAttrs.set(g, { ...
|
|
362
|
+
function I(g, y) {
|
|
363
|
+
const s = t.dialogAttrs.get(g);
|
|
364
|
+
t.dialogAttrs.set(g, { ...s, ...y });
|
|
365
365
|
}
|
|
366
366
|
return {
|
|
367
|
-
activeDialog:
|
|
368
|
-
fromDialog:
|
|
369
|
-
toDialog:
|
|
370
|
-
resolveDialogs:
|
|
367
|
+
activeDialog: C(() => t.activeDialog),
|
|
368
|
+
fromDialog: C(() => t.fromDialog),
|
|
369
|
+
toDialog: C(() => t.toDialog),
|
|
370
|
+
resolveDialogs: l,
|
|
371
371
|
openDialog: a,
|
|
372
|
-
closeDialog:
|
|
372
|
+
closeDialog: m,
|
|
373
373
|
closeAllDialogs: R,
|
|
374
374
|
registerDialog: L,
|
|
375
375
|
registerDialogs: M,
|
|
376
|
-
getDialogAttrs:
|
|
377
|
-
updateDialogAttrs:
|
|
376
|
+
getDialogAttrs: T,
|
|
377
|
+
updateDialogAttrs: I,
|
|
378
378
|
cleanup: n.cleanup
|
|
379
379
|
};
|
|
380
380
|
}
|
|
381
|
-
const
|
|
381
|
+
const _e = 5e3;
|
|
382
382
|
async function ve(e, o, n, i) {
|
|
383
383
|
let t;
|
|
384
384
|
try {
|
|
385
|
-
const
|
|
385
|
+
const l = await Promise.race([
|
|
386
386
|
Promise.resolve(e(o, n)),
|
|
387
|
-
new Promise((
|
|
388
|
-
t = setTimeout(() =>
|
|
387
|
+
new Promise((c, r) => {
|
|
388
|
+
t = setTimeout(() => r(new Error("Navigation guard timed out")), i);
|
|
389
389
|
})
|
|
390
390
|
]);
|
|
391
|
-
return clearTimeout(t),
|
|
391
|
+
return clearTimeout(t), l !== !1;
|
|
392
392
|
} catch {
|
|
393
393
|
return clearTimeout(t), !1;
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
|
-
async function
|
|
396
|
+
async function He(e, o, n, i = _e) {
|
|
397
397
|
for (const t of e)
|
|
398
398
|
if (!await ve(t, o, n, i)) return !1;
|
|
399
399
|
return !0;
|
|
400
400
|
}
|
|
401
|
-
async function
|
|
402
|
-
var
|
|
403
|
-
const t = n.guardTimeout ??
|
|
404
|
-
if ((
|
|
401
|
+
async function Se(e, o, n, i) {
|
|
402
|
+
var r;
|
|
403
|
+
const t = n.guardTimeout ?? _e;
|
|
404
|
+
if ((r = n.beforeEach) != null && r.length && !await He(n.beforeEach, e, o, t))
|
|
405
405
|
return !1;
|
|
406
|
-
const
|
|
407
|
-
if (
|
|
408
|
-
const
|
|
409
|
-
if (
|
|
406
|
+
const l = H(e);
|
|
407
|
+
if (l) {
|
|
408
|
+
const u = i.getRoute(l);
|
|
409
|
+
if (u != null && u.beforeEnter && !await ve(u.beforeEnter, e, o, t))
|
|
410
410
|
return !1;
|
|
411
411
|
}
|
|
412
|
-
const
|
|
413
|
-
if (
|
|
414
|
-
const
|
|
415
|
-
if (
|
|
412
|
+
const c = H(o);
|
|
413
|
+
if (c) {
|
|
414
|
+
const u = i.getRoute(c);
|
|
415
|
+
if (u != null && u.beforeLeave && !await ve(u.beforeLeave, e, o, t))
|
|
416
416
|
return !1;
|
|
417
417
|
}
|
|
418
418
|
return !0;
|
|
419
419
|
}
|
|
420
|
-
function
|
|
420
|
+
function qe(e, o, n) {
|
|
421
421
|
if (n != null && n.length)
|
|
422
422
|
for (const i of n)
|
|
423
423
|
try {
|
|
@@ -425,23 +425,23 @@ function He(e, o, n) {
|
|
|
425
425
|
} catch {
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
|
-
function
|
|
428
|
+
function Je(e, o) {
|
|
429
429
|
const n = e.maxEntries ?? 50, i = [];
|
|
430
|
-
let t = -1,
|
|
431
|
-
const
|
|
432
|
-
function
|
|
433
|
-
!e.enabled ||
|
|
430
|
+
let t = -1, l = !1;
|
|
431
|
+
const c = ee(0);
|
|
432
|
+
function r(g, y) {
|
|
433
|
+
!e.enabled || l || (t < i.length - 1 && i.splice(t + 1), i.push({ path: g, timestamp: Date.now(), props: y ? { ...y } : void 0 }), t = i.length - 1, i.length > n && (i.shift(), t--), c.value++);
|
|
434
434
|
}
|
|
435
|
-
const
|
|
435
|
+
const u = C(() => (c.value, [...i])), a = C(() => (c.value, t > 0)), m = C(() => (c.value, t < i.length - 1));
|
|
436
436
|
async function R(g) {
|
|
437
437
|
if (g < 0 || g >= i.length) return;
|
|
438
|
-
const
|
|
439
|
-
if (
|
|
440
|
-
t = g,
|
|
438
|
+
const y = i[g];
|
|
439
|
+
if (y) {
|
|
440
|
+
t = g, l = !0, c.value++;
|
|
441
441
|
try {
|
|
442
|
-
await o(
|
|
442
|
+
await o(y.path);
|
|
443
443
|
} finally {
|
|
444
|
-
|
|
444
|
+
l = !1;
|
|
445
445
|
}
|
|
446
446
|
}
|
|
447
447
|
}
|
|
@@ -449,112 +449,112 @@ function qe(e, o) {
|
|
|
449
449
|
a.value && await R(t - 1);
|
|
450
450
|
}
|
|
451
451
|
async function M() {
|
|
452
|
-
|
|
452
|
+
m.value && await R(t + 1);
|
|
453
453
|
}
|
|
454
|
-
async function
|
|
455
|
-
const
|
|
456
|
-
await R(
|
|
454
|
+
async function T(g) {
|
|
455
|
+
const y = t + g;
|
|
456
|
+
await R(y);
|
|
457
457
|
}
|
|
458
|
-
function
|
|
459
|
-
i.length = 0, t = -1,
|
|
458
|
+
function I() {
|
|
459
|
+
i.length = 0, t = -1, c.value++;
|
|
460
460
|
}
|
|
461
|
-
return { entries:
|
|
461
|
+
return { entries: u, canGoBack: a, canGoForward: m, back: L, forward: M, go: T, clear: I, record: r };
|
|
462
462
|
}
|
|
463
|
-
function
|
|
463
|
+
function Qe() {
|
|
464
464
|
const e = U(/* @__PURE__ */ new Map()), o = /* @__PURE__ */ new Map();
|
|
465
|
-
function n(
|
|
466
|
-
e.has(
|
|
467
|
-
let { component:
|
|
468
|
-
De(
|
|
469
|
-
...
|
|
470
|
-
component:
|
|
471
|
-
}),
|
|
465
|
+
function n(c) {
|
|
466
|
+
e.has(c.path) && console.warn(`[vue-micro-router] Route "${c.path}" already registered. Overwriting.`);
|
|
467
|
+
let { component: r } = c;
|
|
468
|
+
De(r) && (o.set(c.path, r), r = me(r)), e.set(c.path, {
|
|
469
|
+
...c,
|
|
470
|
+
component: Ae(r)
|
|
471
|
+
}), c.preload === "eager" && o.has(c.path) && ne(o.get(c.path));
|
|
472
472
|
}
|
|
473
|
-
function i(
|
|
474
|
-
|
|
473
|
+
function i(c) {
|
|
474
|
+
c.forEach(n);
|
|
475
475
|
}
|
|
476
|
-
async function t(
|
|
477
|
-
const
|
|
478
|
-
|
|
476
|
+
async function t(c) {
|
|
477
|
+
const r = o.get(c);
|
|
478
|
+
r && await ne(r);
|
|
479
479
|
}
|
|
480
|
-
function c
|
|
481
|
-
for (const [
|
|
482
|
-
if (
|
|
483
|
-
const a = o.get(
|
|
480
|
+
function l(c) {
|
|
481
|
+
for (const [r, u] of e.entries())
|
|
482
|
+
if (u.preload === "adjacent" && !c.includes(r)) {
|
|
483
|
+
const a = o.get(r);
|
|
484
484
|
a && ne(a);
|
|
485
485
|
}
|
|
486
486
|
}
|
|
487
|
-
return { routes: e, asyncLoaders: o, registerRoute: n, registerRoutes: i, preloadRoute: t, preloadAdjacent:
|
|
487
|
+
return { routes: e, asyncLoaders: o, registerRoute: n, registerRoutes: i, preloadRoute: t, preloadAdjacent: l };
|
|
488
488
|
}
|
|
489
|
-
function
|
|
489
|
+
function Ze(e) {
|
|
490
490
|
const o = e.stepWiseDelay ?? Math.max(e.stepDelay * 1.2, e.stepDelay + 100);
|
|
491
|
-
async function n(t,
|
|
491
|
+
async function n(t, l) {
|
|
492
492
|
if (!t || e.isLocked()) return;
|
|
493
|
-
const
|
|
494
|
-
if (e.getActivePath() !==
|
|
493
|
+
const c = W(t);
|
|
494
|
+
if (e.getActivePath() !== c) {
|
|
495
495
|
e.lock();
|
|
496
496
|
try {
|
|
497
497
|
if (e.runGuards) {
|
|
498
498
|
const a = W(e.getActivePath());
|
|
499
|
-
if (!await e.runGuards(
|
|
499
|
+
if (!await e.runGuards(c, a)) {
|
|
500
500
|
e.unlock();
|
|
501
501
|
return;
|
|
502
502
|
}
|
|
503
503
|
}
|
|
504
|
-
const
|
|
504
|
+
const r = _(e.getActivePath()), u = _(c);
|
|
505
505
|
if (t.startsWith("/"))
|
|
506
|
-
for (let a = 0; a <
|
|
507
|
-
const
|
|
508
|
-
|
|
506
|
+
for (let a = 0; a < u.length; a++) {
|
|
507
|
+
const m = K(
|
|
508
|
+
u.slice(0, a + 1)
|
|
509
509
|
);
|
|
510
|
-
if (e.getActivePath() ===
|
|
511
|
-
const R = a ===
|
|
512
|
-
await e.pushCore(
|
|
510
|
+
if (e.getActivePath() === m) continue;
|
|
511
|
+
const R = a === u.length - 1;
|
|
512
|
+
await e.pushCore(m, R ? l : void 0), R || await fe(o);
|
|
513
513
|
}
|
|
514
514
|
else {
|
|
515
|
-
const a =
|
|
516
|
-
(
|
|
515
|
+
const a = u.filter(
|
|
516
|
+
(m) => !r.includes(m)
|
|
517
517
|
);
|
|
518
518
|
if (a.length === 0) {
|
|
519
|
-
await e.pushCore(t,
|
|
519
|
+
await e.pushCore(t, l), e.scheduleUnlock();
|
|
520
520
|
return;
|
|
521
521
|
}
|
|
522
|
-
for (let
|
|
523
|
-
const R =
|
|
524
|
-
await e.pushCore(a[
|
|
522
|
+
for (let m = 0; m < a.length; m++) {
|
|
523
|
+
const R = m === a.length - 1;
|
|
524
|
+
await e.pushCore(a[m], R ? l : void 0), R || await fe(o);
|
|
525
525
|
}
|
|
526
526
|
}
|
|
527
527
|
e.scheduleUnlock();
|
|
528
|
-
} catch (
|
|
529
|
-
throw e.unlock(),
|
|
528
|
+
} catch (r) {
|
|
529
|
+
throw e.unlock(), r;
|
|
530
530
|
}
|
|
531
531
|
}
|
|
532
532
|
}
|
|
533
533
|
async function i(t) {
|
|
534
534
|
if (t < 1 || e.isLocked()) return;
|
|
535
|
-
const
|
|
536
|
-
if (!(
|
|
535
|
+
const l = _(e.getActivePath()), c = Math.min(t, l.length - 1);
|
|
536
|
+
if (!(c < 1)) {
|
|
537
537
|
e.lock();
|
|
538
538
|
try {
|
|
539
539
|
if (e.runGuards) {
|
|
540
|
-
const
|
|
541
|
-
if (!await e.runGuards(
|
|
540
|
+
const r = l.slice(0, l.length - c), u = K(r), a = W(e.getActivePath());
|
|
541
|
+
if (!await e.runGuards(u, a)) {
|
|
542
542
|
e.unlock();
|
|
543
543
|
return;
|
|
544
544
|
}
|
|
545
545
|
}
|
|
546
|
-
for (let
|
|
547
|
-
await e.pushCore(-1),
|
|
546
|
+
for (let r = 0; r < c; r++)
|
|
547
|
+
await e.pushCore(-1), r < c - 1 && await fe(o);
|
|
548
548
|
e.scheduleUnlock();
|
|
549
|
-
} catch (
|
|
550
|
-
throw e.unlock(),
|
|
549
|
+
} catch (r) {
|
|
550
|
+
throw e.unlock(), r;
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
553
|
}
|
|
554
554
|
return { stepWisePush: n, stepWiseBack: i };
|
|
555
555
|
}
|
|
556
|
-
function
|
|
557
|
-
const n = e.defaultPath, i = e.stepDelay ??
|
|
556
|
+
function ke(e, o) {
|
|
557
|
+
const n = e.defaultPath, i = e.stepDelay ?? Ue, t = e.guards ?? {}, l = e.history ?? {}, c = Ce(), r = Qe(), u = ee(!1), a = pe({
|
|
558
558
|
activePath: n,
|
|
559
559
|
fromPath: n,
|
|
560
560
|
toPath: n,
|
|
@@ -564,207 +564,207 @@ function Ze(e, o) {
|
|
|
564
564
|
routeKeys: U(/* @__PURE__ */ new Map()),
|
|
565
565
|
/** Component key per segment — incremented to force Vue full remount (resets local state) */
|
|
566
566
|
componentKeys: U(/* @__PURE__ */ new Map())
|
|
567
|
-
}),
|
|
568
|
-
const
|
|
569
|
-
for (const v of
|
|
570
|
-
const D =
|
|
567
|
+
}), m = /* @__PURE__ */ new Map(), R = C(() => {
|
|
568
|
+
const p = _(a.activePath), h = [];
|
|
569
|
+
for (const v of p) {
|
|
570
|
+
const D = r.routes.get(v);
|
|
571
571
|
if (!D) continue;
|
|
572
|
-
const w = a.routeKeys.get(v) || 0,
|
|
573
|
-
if (
|
|
574
|
-
|
|
572
|
+
const w = a.routeKeys.get(v) || 0, S = a.componentKeys.get(v) || 0, b = `${D.path}-${w}`, E = m.get(v);
|
|
573
|
+
if (E && E.key === b && E.componentKey === S)
|
|
574
|
+
h.push(E);
|
|
575
575
|
else {
|
|
576
|
-
const O = { ...D, key:
|
|
577
|
-
|
|
576
|
+
const O = { ...D, key: b, componentKey: S };
|
|
577
|
+
m.set(v, O), h.push(O);
|
|
578
578
|
}
|
|
579
579
|
}
|
|
580
|
-
for (const v of
|
|
581
|
-
|
|
582
|
-
return
|
|
580
|
+
for (const v of m.keys())
|
|
581
|
+
p.includes(v) || m.delete(v);
|
|
582
|
+
return h;
|
|
583
583
|
});
|
|
584
|
-
function L(
|
|
585
|
-
var O,
|
|
586
|
-
const v =
|
|
584
|
+
function L(p, h) {
|
|
585
|
+
var O, G;
|
|
586
|
+
const v = _(a.activePath), D = Math.min(p, v.length - 1);
|
|
587
587
|
if (D <= 0) return;
|
|
588
|
-
const w = v.slice(0, -D),
|
|
588
|
+
const w = v.slice(0, -D), S = K(w);
|
|
589
589
|
for (let $ = v.length - D; $ < v.length; $++)
|
|
590
590
|
a.routeAttrs.delete(v[$]);
|
|
591
|
-
const
|
|
592
|
-
if (
|
|
593
|
-
const $ = a.routeAttrs.get(
|
|
594
|
-
a.routeAttrs.set(
|
|
595
|
-
|
|
596
|
-
(a.componentKeys.get(
|
|
591
|
+
const b = w.at(-1);
|
|
592
|
+
if (b && h) {
|
|
593
|
+
const $ = a.routeAttrs.get(b);
|
|
594
|
+
a.routeAttrs.set(b, { ...$, ...h }), a.componentKeys.set(
|
|
595
|
+
b,
|
|
596
|
+
(a.componentKeys.get(b) || 0) + 1
|
|
597
597
|
);
|
|
598
598
|
}
|
|
599
|
-
const
|
|
600
|
-
(O = o == null ? void 0 : o.trackPageLeave) == null || O.call(o,
|
|
599
|
+
const E = a.activePath;
|
|
600
|
+
(O = o == null ? void 0 : o.trackPageLeave) == null || O.call(o, E, E, S), a.fromPath = E, a.toPath = S, a.activePath = S, (G = o == null ? void 0 : o.trackPageEnter) == null || G.call(o, S, E, S);
|
|
601
601
|
}
|
|
602
|
-
async function M(
|
|
603
|
-
var
|
|
604
|
-
const v = W(
|
|
602
|
+
async function M(p, h) {
|
|
603
|
+
var S, b;
|
|
604
|
+
const v = W(p), D = _(v);
|
|
605
605
|
await Promise.all(
|
|
606
|
-
D.map((
|
|
606
|
+
D.map((E) => r.asyncLoaders.get(E)).filter((E) => !!E).map((E) => ne(E))
|
|
607
607
|
);
|
|
608
608
|
const w = a.activePath;
|
|
609
|
-
w !== v && ((
|
|
609
|
+
w !== v && ((S = o == null ? void 0 : o.trackPageLeave) == null || S.call(o, w, w, v)), a.fromPath = w, a.toPath = v, a.activePath = v, h && T(v, h), (b = o == null ? void 0 : o.trackPageEnter) == null || b.call(o, v, w, v);
|
|
610
610
|
}
|
|
611
|
-
function
|
|
612
|
-
const v =
|
|
611
|
+
function T(p, h) {
|
|
612
|
+
const v = _(p).at(-1);
|
|
613
613
|
if (!v) return;
|
|
614
614
|
const D = a.routeAttrs.get(v);
|
|
615
|
-
a.routeAttrs.set(v, { ...D, ...
|
|
615
|
+
a.routeAttrs.set(v, { ...D, ...h });
|
|
616
616
|
}
|
|
617
|
-
function
|
|
618
|
-
const v = a.routeAttrs.get(
|
|
619
|
-
a.routeAttrs.set(
|
|
617
|
+
function I(p, h) {
|
|
618
|
+
const v = a.routeAttrs.get(p);
|
|
619
|
+
a.routeAttrs.set(p, { ...v, ...h });
|
|
620
620
|
}
|
|
621
|
-
function g(
|
|
622
|
-
return a.routeAttrs.get(
|
|
621
|
+
function g(p) {
|
|
622
|
+
return a.routeAttrs.get(p);
|
|
623
623
|
}
|
|
624
|
-
async function p
|
|
625
|
-
if (!
|
|
626
|
-
if (typeof
|
|
627
|
-
L(Math.abs(
|
|
624
|
+
async function y(p, h) {
|
|
625
|
+
if (!p && p !== 0) return;
|
|
626
|
+
if (typeof p == "number" && p < 0) {
|
|
627
|
+
L(Math.abs(p), h);
|
|
628
628
|
return;
|
|
629
629
|
}
|
|
630
|
-
const v =
|
|
630
|
+
const v = p.toString();
|
|
631
631
|
if (v.startsWith("/")) {
|
|
632
|
-
const
|
|
633
|
-
if (
|
|
634
|
-
if (
|
|
635
|
-
L(1,
|
|
632
|
+
const b = _(v), E = _(a.activePath);
|
|
633
|
+
if (b.length < E.length && b.every(($, se) => E[se] === $)) {
|
|
634
|
+
if (E.length - b.length === 1)
|
|
635
|
+
L(1, h);
|
|
636
636
|
else {
|
|
637
|
-
const se =
|
|
638
|
-
for (let re =
|
|
639
|
-
a.routeAttrs.delete(
|
|
640
|
-
a.activePath =
|
|
637
|
+
const se = E.slice(0, b.length + 1), Ne = K(se);
|
|
638
|
+
for (let re = b.length + 1; re < E.length; re++)
|
|
639
|
+
a.routeAttrs.delete(E[re]);
|
|
640
|
+
a.activePath = Ne, await k(), L(1, h);
|
|
641
641
|
}
|
|
642
642
|
return;
|
|
643
643
|
}
|
|
644
|
-
const
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
(a.routeKeys.get(
|
|
648
|
-
), await M(v,
|
|
644
|
+
const G = b.at(-1);
|
|
645
|
+
G && E.at(-1) === G && a.routeKeys.set(
|
|
646
|
+
G,
|
|
647
|
+
(a.routeKeys.get(G) || 0) + 1
|
|
648
|
+
), await M(v, h);
|
|
649
649
|
return;
|
|
650
650
|
}
|
|
651
|
-
const D =
|
|
651
|
+
const D = _(a.activePath), w = D.indexOf(v);
|
|
652
652
|
if (w !== -1) {
|
|
653
|
-
const
|
|
654
|
-
if (
|
|
655
|
-
L(1,
|
|
656
|
-
else if (
|
|
657
|
-
const
|
|
658
|
-
for (let
|
|
659
|
-
a.routeAttrs.delete(D[
|
|
660
|
-
a.activePath = O, await k(), L(1,
|
|
653
|
+
const b = D.length - (w + 1);
|
|
654
|
+
if (b === 1)
|
|
655
|
+
L(1, h);
|
|
656
|
+
else if (b > 1) {
|
|
657
|
+
const E = D.slice(0, w + 2), O = K(E);
|
|
658
|
+
for (let G = w + 2; G < D.length; G++)
|
|
659
|
+
a.routeAttrs.delete(D[G]);
|
|
660
|
+
a.activePath = O, await k(), L(1, h);
|
|
661
661
|
} else
|
|
662
662
|
a.routeKeys.set(v, (a.routeKeys.get(v) || 0) + 1), await M(
|
|
663
663
|
K(D.slice(0, w + 1)),
|
|
664
|
-
|
|
664
|
+
h
|
|
665
665
|
);
|
|
666
666
|
return;
|
|
667
667
|
}
|
|
668
|
-
const
|
|
669
|
-
await M(
|
|
668
|
+
const S = K([...D, v]);
|
|
669
|
+
await M(S, h);
|
|
670
670
|
}
|
|
671
|
-
function
|
|
672
|
-
if (typeof
|
|
673
|
-
const w =
|
|
674
|
-
return
|
|
671
|
+
function s(p) {
|
|
672
|
+
if (typeof p == "number" && p < 0) {
|
|
673
|
+
const w = _(a.activePath), S = Math.min(Math.abs(p), w.length - 1);
|
|
674
|
+
return S <= 0 ? a.activePath : K(w.slice(0, -S));
|
|
675
675
|
}
|
|
676
|
-
const
|
|
677
|
-
if (
|
|
678
|
-
const v =
|
|
679
|
-
return D !== -1 ? K(v.slice(0, D + 1)) : K([...v,
|
|
676
|
+
const h = p.toString();
|
|
677
|
+
if (h.startsWith("/")) return W(h);
|
|
678
|
+
const v = _(a.activePath), D = v.indexOf(h);
|
|
679
|
+
return D !== -1 ? K(v.slice(0, D + 1)) : K([...v, h]);
|
|
680
680
|
}
|
|
681
|
-
const
|
|
682
|
-
async function
|
|
681
|
+
const f = { getRoute: (p) => r.routes.get(p) };
|
|
682
|
+
async function A(p, h) {
|
|
683
683
|
var v;
|
|
684
|
-
if (!
|
|
685
|
-
|
|
684
|
+
if (!u.value) {
|
|
685
|
+
u.value = !0;
|
|
686
686
|
try {
|
|
687
|
-
const D = (((v = t.beforeEach) == null ? void 0 : v.length) ?? 0) > 0, w =
|
|
688
|
-
if ((D || w) &&
|
|
689
|
-
const
|
|
690
|
-
if (!await
|
|
691
|
-
|
|
687
|
+
const D = (((v = t.beforeEach) == null ? void 0 : v.length) ?? 0) > 0, w = r.routes.size > 0;
|
|
688
|
+
if ((D || w) && p) {
|
|
689
|
+
const E = s(p), O = W(a.activePath);
|
|
690
|
+
if (!await Se(E, O, t, f)) {
|
|
691
|
+
u.value = !1;
|
|
692
692
|
return;
|
|
693
693
|
}
|
|
694
694
|
}
|
|
695
|
+
const S = W(a.activePath);
|
|
696
|
+
await y(p, h);
|
|
695
697
|
const b = W(a.activePath);
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
h == null || h.record(E, y), He(E, b, t.afterEach), s.preloadAdjacent(B(a.activePath)), u.schedule(() => {
|
|
699
|
-
f.value = !1;
|
|
698
|
+
d == null || d.record(b, h), qe(b, S, t.afterEach), r.preloadAdjacent(_(a.activePath)), c.schedule(() => {
|
|
699
|
+
u.value = !1;
|
|
700
700
|
}, i);
|
|
701
701
|
} catch (D) {
|
|
702
|
-
throw
|
|
702
|
+
throw u.value = !1, D;
|
|
703
703
|
}
|
|
704
704
|
}
|
|
705
705
|
}
|
|
706
|
-
const
|
|
707
|
-
const
|
|
708
|
-
if (v.length <
|
|
709
|
-
const w =
|
|
710
|
-
await
|
|
706
|
+
const d = l.enabled ? Je(l, async (p) => {
|
|
707
|
+
const h = _(a.activePath), v = _(p);
|
|
708
|
+
if (v.length < h.length && v.every((w, S) => h[S] === w)) {
|
|
709
|
+
const w = h.length - v.length;
|
|
710
|
+
await A(-w);
|
|
711
711
|
} else
|
|
712
|
-
await
|
|
712
|
+
await A(p);
|
|
713
713
|
}) : void 0;
|
|
714
|
-
|
|
715
|
-
const
|
|
714
|
+
d && d.record(W(n));
|
|
715
|
+
const P = Ze({
|
|
716
716
|
getActivePath: () => a.activePath,
|
|
717
|
-
pushCore:
|
|
718
|
-
runGuards: (
|
|
719
|
-
scheduleUnlock: () =>
|
|
720
|
-
|
|
717
|
+
pushCore: y,
|
|
718
|
+
runGuards: (p, h) => Se(p, h, t, f),
|
|
719
|
+
scheduleUnlock: () => c.schedule(() => {
|
|
720
|
+
u.value = !1;
|
|
721
721
|
}, i),
|
|
722
722
|
lock: () => {
|
|
723
|
-
|
|
723
|
+
u.value = !0;
|
|
724
724
|
},
|
|
725
725
|
unlock: () => {
|
|
726
|
-
|
|
726
|
+
u.value = !1;
|
|
727
727
|
},
|
|
728
|
-
isLocked: () =>
|
|
728
|
+
isLocked: () => u.value,
|
|
729
729
|
stepDelay: i
|
|
730
730
|
});
|
|
731
731
|
return {
|
|
732
|
-
activePath:
|
|
733
|
-
fromPath:
|
|
734
|
-
toPath:
|
|
735
|
-
activePage:
|
|
736
|
-
fromPage:
|
|
737
|
-
toPage:
|
|
738
|
-
isNavigating:
|
|
732
|
+
activePath: C(() => a.activePath),
|
|
733
|
+
fromPath: C(() => a.fromPath),
|
|
734
|
+
toPath: C(() => a.toPath),
|
|
735
|
+
activePage: C(() => H(a.activePath)),
|
|
736
|
+
fromPage: C(() => H(a.fromPath)),
|
|
737
|
+
toPage: C(() => H(a.toPath)),
|
|
738
|
+
isNavigating: C(() => u.value),
|
|
739
739
|
resolveRoutes: R,
|
|
740
|
-
push:
|
|
741
|
-
stepWisePush:
|
|
742
|
-
stepWiseBack:
|
|
743
|
-
registerRoute:
|
|
744
|
-
registerRoutes:
|
|
745
|
-
updateRouteAttrs:
|
|
740
|
+
push: A,
|
|
741
|
+
stepWisePush: P.stepWisePush,
|
|
742
|
+
stepWiseBack: P.stepWiseBack,
|
|
743
|
+
registerRoute: r.registerRoute,
|
|
744
|
+
registerRoutes: r.registerRoutes,
|
|
745
|
+
updateRouteAttrs: I,
|
|
746
746
|
getRouteAttrs: g,
|
|
747
|
-
preloadRoute:
|
|
748
|
-
routes:
|
|
749
|
-
history:
|
|
750
|
-
cleanup:
|
|
747
|
+
preloadRoute: r.preloadRoute,
|
|
748
|
+
routes: r.routes,
|
|
749
|
+
history: d,
|
|
750
|
+
cleanup: c.cleanup
|
|
751
751
|
};
|
|
752
752
|
}
|
|
753
|
-
const
|
|
753
|
+
const F = () => {
|
|
754
754
|
};
|
|
755
|
-
function
|
|
755
|
+
function et(e) {
|
|
756
756
|
return {
|
|
757
|
-
trackPageEnter: (e == null ? void 0 : e.trackPageEnter) ??
|
|
758
|
-
trackPageLeave: (e == null ? void 0 : e.trackPageLeave) ??
|
|
759
|
-
trackDialogEnter: (e == null ? void 0 : e.trackDialogEnter) ??
|
|
760
|
-
trackDialogLeave: (e == null ? void 0 : e.trackDialogLeave) ??
|
|
761
|
-
trackGuiEnter: (e == null ? void 0 : e.trackGuiEnter) ??
|
|
762
|
-
trackGuiLeave: (e == null ? void 0 : e.trackGuiLeave) ??
|
|
763
|
-
cleanupAllSessions: (e == null ? void 0 : e.cleanupAllSessions) ??
|
|
757
|
+
trackPageEnter: (e == null ? void 0 : e.trackPageEnter) ?? F,
|
|
758
|
+
trackPageLeave: (e == null ? void 0 : e.trackPageLeave) ?? F,
|
|
759
|
+
trackDialogEnter: (e == null ? void 0 : e.trackDialogEnter) ?? F,
|
|
760
|
+
trackDialogLeave: (e == null ? void 0 : e.trackDialogLeave) ?? F,
|
|
761
|
+
trackGuiEnter: (e == null ? void 0 : e.trackGuiEnter) ?? F,
|
|
762
|
+
trackGuiLeave: (e == null ? void 0 : e.trackGuiLeave) ?? F,
|
|
763
|
+
cleanupAllSessions: (e == null ? void 0 : e.cleanupAllSessions) ?? F
|
|
764
764
|
};
|
|
765
765
|
}
|
|
766
|
-
function
|
|
767
|
-
const o =
|
|
766
|
+
function tt(e) {
|
|
767
|
+
const o = et(e.tracker), n = ke(
|
|
768
768
|
{
|
|
769
769
|
defaultPath: e.defaultPath,
|
|
770
770
|
stepDelay: e.stepDelay,
|
|
@@ -772,16 +772,16 @@ function et(e) {
|
|
|
772
772
|
history: e.history
|
|
773
773
|
},
|
|
774
774
|
o
|
|
775
|
-
), i =
|
|
775
|
+
), i = je(o), t = Xe(
|
|
776
776
|
{
|
|
777
777
|
defaultControlName: e.defaultControlName,
|
|
778
778
|
onboardingControlName: e.onboardingControlName
|
|
779
779
|
},
|
|
780
780
|
o
|
|
781
|
-
),
|
|
781
|
+
), l = e.volumeRef ? Ye({
|
|
782
782
|
volumeRef: e.volumeRef,
|
|
783
783
|
defaultBgm: e.defaultBgm
|
|
784
|
-
}) : null,
|
|
784
|
+
}) : null, c = {
|
|
785
785
|
// Navigation
|
|
786
786
|
activePath: n.activePath,
|
|
787
787
|
fromPath: n.fromPath,
|
|
@@ -791,14 +791,14 @@ function et(e) {
|
|
|
791
791
|
toPage: n.toPage,
|
|
792
792
|
isNavigating: n.isNavigating,
|
|
793
793
|
resolveRoutes: n.resolveRoutes,
|
|
794
|
-
push: async (a,
|
|
795
|
-
await n.push(a,
|
|
794
|
+
push: async (a, m) => {
|
|
795
|
+
await n.push(a, m), l && l.updateBackgroundMusic(n.activePath.value, n.routes);
|
|
796
796
|
},
|
|
797
|
-
stepWisePush: async (a,
|
|
798
|
-
await n.stepWisePush(a,
|
|
797
|
+
stepWisePush: async (a, m) => {
|
|
798
|
+
await n.stepWisePush(a, m), l && l.updateBackgroundMusic(n.activePath.value, n.routes);
|
|
799
799
|
},
|
|
800
800
|
stepWiseBack: async (a) => {
|
|
801
|
-
await n.stepWiseBack(a),
|
|
801
|
+
await n.stepWiseBack(a), l && l.updateBackgroundMusic(n.activePath.value, n.routes);
|
|
802
802
|
},
|
|
803
803
|
registerRoute: n.registerRoute,
|
|
804
804
|
registerRoutes: n.registerRoutes,
|
|
@@ -835,64 +835,64 @@ function et(e) {
|
|
|
835
835
|
getControlAttrs: t.getControlAttrs,
|
|
836
836
|
updateControlAttrs: t.updateControlAttrs,
|
|
837
837
|
// Serialization
|
|
838
|
-
serialize: () =>
|
|
839
|
-
restore: (a) => xe(
|
|
838
|
+
serialize: () => Ve(c),
|
|
839
|
+
restore: (a) => xe(c, a),
|
|
840
840
|
// Audio (conditional — only if volumeRef provided in config)
|
|
841
|
-
...
|
|
842
|
-
playSound:
|
|
843
|
-
stopSound:
|
|
844
|
-
pauseSound:
|
|
845
|
-
resumeSound:
|
|
846
|
-
updateBackgroundMusic:
|
|
841
|
+
...l ? {
|
|
842
|
+
playSound: l.playSound,
|
|
843
|
+
stopSound: l.stopSound,
|
|
844
|
+
pauseSound: l.pauseSound,
|
|
845
|
+
resumeSound: l.resumeSound,
|
|
846
|
+
updateBackgroundMusic: l.updateBackgroundMusic
|
|
847
847
|
} : {}
|
|
848
|
-
},
|
|
849
|
-
return X(n.activePage, (a,
|
|
850
|
-
if (!
|
|
848
|
+
}, r = H(e.defaultPath);
|
|
849
|
+
return X(n.activePage, (a, m) => {
|
|
850
|
+
if (!m) return;
|
|
851
851
|
const R = t.currentControl.value;
|
|
852
|
-
|
|
853
|
-
}),
|
|
854
|
-
a && !
|
|
852
|
+
m === r && a !== r && o.trackGuiLeave(R), a === r && m !== r && o.trackGuiEnter(R);
|
|
853
|
+
}), l && e.defaultBgm && e.bgmStartRef && X(e.bgmStartRef, (a) => {
|
|
854
|
+
a && !l.isStarted() && l.playSoundSync(e.defaultBgm, !0);
|
|
855
855
|
}, { flush: "sync" }), q(async () => {
|
|
856
856
|
await k(), t.toggleControl(e.defaultControlName, !0), o.trackPageEnter(
|
|
857
857
|
n.activePath.value,
|
|
858
858
|
void 0,
|
|
859
859
|
n.activePath.value
|
|
860
|
-
),
|
|
860
|
+
), l && document.addEventListener("visibilitychange", l.handleVisibilityChange), ze(c);
|
|
861
861
|
}), he(() => {
|
|
862
|
-
o.cleanupAllSessions(), n.cleanup(), i.cleanup(), t.cleanup(),
|
|
863
|
-
}), N(Me,
|
|
862
|
+
o.cleanupAllSessions(), n.cleanup(), i.cleanup(), t.cleanup(), l && (document.removeEventListener("visibilitychange", l.handleVisibilityChange), l.cleanup());
|
|
863
|
+
}), N(Me, c), V(de, null) || N(de, c), c;
|
|
864
864
|
}
|
|
865
865
|
function J(e) {
|
|
866
|
-
const o = e != null && e.root ? de : Me, n =
|
|
866
|
+
const o = e != null && e.root ? de : Me, n = V(o);
|
|
867
867
|
if (!n)
|
|
868
868
|
throw new Error(
|
|
869
869
|
e != null && e.root ? "[vue-micro-router] useMicroRouter({ root: true }) failed — no root <MicroRouterView> found." : "[vue-micro-router] useMicroRouter() must be called inside <MicroRouterView>. Did you forget to wrap your app with <MicroRouterView>?"
|
|
870
870
|
);
|
|
871
871
|
return n;
|
|
872
872
|
}
|
|
873
|
-
function
|
|
874
|
-
const o =
|
|
873
|
+
function yt(e) {
|
|
874
|
+
const o = V(ae), n = V(ie);
|
|
875
875
|
!o && !e && console.warn(
|
|
876
876
|
"[vue-micro-router] useMicroState() called without provider and no defaults. Ensure component is inside <RoutePage>, <MicroDialog>, or <MicroControlWrapper>."
|
|
877
877
|
);
|
|
878
878
|
const i = (o == null ? void 0 : o()) ?? {}, t = e ? { ...e } : {};
|
|
879
|
-
for (const
|
|
880
|
-
t[
|
|
881
|
-
const
|
|
879
|
+
for (const r of Object.keys(i))
|
|
880
|
+
t[r] = i[r];
|
|
881
|
+
const l = pe(t);
|
|
882
882
|
n && X(
|
|
883
|
-
|
|
884
|
-
(
|
|
883
|
+
l,
|
|
884
|
+
(r) => n({ ...r }),
|
|
885
885
|
{ deep: !0, flush: "post" }
|
|
886
886
|
);
|
|
887
|
-
const
|
|
888
|
-
return new Proxy(
|
|
889
|
-
get(
|
|
890
|
-
return typeof
|
|
887
|
+
const c = Oe(l);
|
|
888
|
+
return new Proxy(c, {
|
|
889
|
+
get(r, u, a) {
|
|
890
|
+
return typeof u == "string" && !(u in r) && (r[u] = Ke(l, u)), Reflect.get(r, u, a);
|
|
891
891
|
}
|
|
892
892
|
});
|
|
893
893
|
}
|
|
894
|
-
function
|
|
895
|
-
const o =
|
|
894
|
+
function Pt(e) {
|
|
895
|
+
const o = V(Le);
|
|
896
896
|
if (!o) {
|
|
897
897
|
console.warn(
|
|
898
898
|
"[vue-micro-router] useRouteLifecycle() must be called inside a route component rendered by <MicroRouterView>."
|
|
@@ -905,13 +905,13 @@ function pt(e) {
|
|
|
905
905
|
var t;
|
|
906
906
|
return (t = e.onRouteEnter) == null ? void 0 : t.call(e);
|
|
907
907
|
}), X(n, (t) => {
|
|
908
|
-
var
|
|
909
|
-
const
|
|
910
|
-
|
|
908
|
+
var c, r;
|
|
909
|
+
const l = t === o;
|
|
910
|
+
l && !i ? (c = e.onRouteEnter) == null || c.call(e) : !l && i && ((r = e.onRouteLeave) == null || r.call(e)), i = l;
|
|
911
911
|
});
|
|
912
912
|
}
|
|
913
|
-
function
|
|
914
|
-
const o =
|
|
913
|
+
function wt(e) {
|
|
914
|
+
const o = V(Te);
|
|
915
915
|
if (!o) {
|
|
916
916
|
console.warn(
|
|
917
917
|
"[vue-micro-router] useDialogLifecycle() must be called inside a dialog component rendered by <MicroDialog>."
|
|
@@ -924,13 +924,13 @@ function ht(e) {
|
|
|
924
924
|
var t;
|
|
925
925
|
return (t = e.onDialogEnter) == null ? void 0 : t.call(e);
|
|
926
926
|
}), X(n, (t) => {
|
|
927
|
-
var
|
|
928
|
-
const
|
|
929
|
-
|
|
927
|
+
var c, r;
|
|
928
|
+
const l = t === o;
|
|
929
|
+
l && !i ? (c = e.onDialogEnter) == null || c.call(e) : !l && i && ((r = e.onDialogLeave) == null || r.call(e)), i = l;
|
|
930
930
|
});
|
|
931
931
|
}
|
|
932
|
-
function
|
|
933
|
-
const o =
|
|
932
|
+
function Dt(e) {
|
|
933
|
+
const o = V(Ie);
|
|
934
934
|
if (!o) {
|
|
935
935
|
console.warn(
|
|
936
936
|
"[vue-micro-router] useControlLifecycle() must be called inside a control component rendered by <MicroControlWrapper>."
|
|
@@ -943,105 +943,118 @@ function yt(e) {
|
|
|
943
943
|
var t;
|
|
944
944
|
return (t = e.onControlEnter) == null ? void 0 : t.call(e);
|
|
945
945
|
}), X(n, (t) => {
|
|
946
|
-
var
|
|
947
|
-
const
|
|
948
|
-
|
|
946
|
+
var c, r;
|
|
947
|
+
const l = t === o;
|
|
948
|
+
l && !i ? (c = e.onControlEnter) == null || c.call(e) : !l && i && ((r = e.onControlLeave) == null || r.call(e)), i = l;
|
|
949
949
|
});
|
|
950
950
|
}
|
|
951
|
-
function
|
|
951
|
+
function nt(e, o) {
|
|
952
952
|
if (!e.enabled) return;
|
|
953
953
|
const n = e.edgeWidth ?? 20, i = e.threshold ?? 0.3, t = e.velocityThreshold ?? 0.5;
|
|
954
|
-
let
|
|
954
|
+
let l = 0, c = 0, r = 0, u = !1, a = null, m = null;
|
|
955
955
|
function R() {
|
|
956
|
-
const
|
|
957
|
-
return
|
|
956
|
+
const s = o.containerRef.value;
|
|
957
|
+
return s ? "$el" in s ? s.$el : s : null;
|
|
958
958
|
}
|
|
959
959
|
function L() {
|
|
960
|
-
const
|
|
961
|
-
if (!
|
|
962
|
-
const
|
|
963
|
-
return
|
|
964
|
-
current:
|
|
965
|
-
previous:
|
|
960
|
+
const s = R();
|
|
961
|
+
if (!s) return { current: null, previous: null };
|
|
962
|
+
const f = s.querySelectorAll(".route-page");
|
|
963
|
+
return f.length < 2 ? { current: f[f.length - 1] ?? null, previous: null } : {
|
|
964
|
+
current: f[f.length - 1],
|
|
965
|
+
previous: f[f.length - 2]
|
|
966
966
|
};
|
|
967
967
|
}
|
|
968
|
-
function M(
|
|
969
|
-
var
|
|
970
|
-
if (!o.canGoBack() ||
|
|
971
|
-
const { current:
|
|
972
|
-
if (!
|
|
973
|
-
|
|
974
|
-
const
|
|
975
|
-
(
|
|
968
|
+
function M(s) {
|
|
969
|
+
var P;
|
|
970
|
+
if (!o.canGoBack() || s.clientX > n) return;
|
|
971
|
+
const { current: f, previous: A } = L();
|
|
972
|
+
if (!f) return;
|
|
973
|
+
u = !0, l = s.clientX, c = s.clientY, r = Date.now(), a = f, m = A;
|
|
974
|
+
const d = R();
|
|
975
|
+
(P = d == null ? void 0 : d.setPointerCapture) == null || P.call(d, s.pointerId), a.style.willChange = "transform", m && (m.style.willChange = "transform", m.style.transition = "none"), a.style.transition = "none";
|
|
976
976
|
}
|
|
977
|
-
function
|
|
978
|
-
if (!
|
|
979
|
-
const
|
|
980
|
-
if (Math.abs(
|
|
977
|
+
function T(s) {
|
|
978
|
+
if (!u || !a) return;
|
|
979
|
+
const f = Math.max(0, s.clientX - l);
|
|
980
|
+
if (Math.abs(s.clientY - c) > f * 1.5) {
|
|
981
981
|
g();
|
|
982
982
|
return;
|
|
983
983
|
}
|
|
984
|
-
const
|
|
985
|
-
if (a.style.transform = `translateX(${
|
|
986
|
-
const
|
|
987
|
-
|
|
984
|
+
const d = f / window.innerWidth;
|
|
985
|
+
if (a.style.transform = `translateX(${f}px)`, m) {
|
|
986
|
+
const P = -20 + 20 * d;
|
|
987
|
+
m.style.transform = `translateX(${P}%)`;
|
|
988
988
|
}
|
|
989
989
|
}
|
|
990
|
-
function
|
|
991
|
-
if (!
|
|
990
|
+
function I(s) {
|
|
991
|
+
if (!u || !a) return;
|
|
992
992
|
if (!a.isConnected) {
|
|
993
|
-
|
|
993
|
+
y(), u = !1;
|
|
994
994
|
return;
|
|
995
995
|
}
|
|
996
|
-
const
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
}, 200)) : (a.style.transition = "transform 0.2s ease-out", a.style.transform = "translateX(0)",
|
|
996
|
+
const f = s.clientX - l, A = Date.now() - r, d = f / A;
|
|
997
|
+
f / window.innerWidth > i || d > t ? (a.style.transition = "transform 0.2s ease-out", a.style.transform = "translateX(100%)", m && (m.style.transition = "transform 0.2s ease-out", m.style.transform = "translateX(0)"), setTimeout(() => {
|
|
998
|
+
y(), o.goBack();
|
|
999
|
+
}, 200)) : (a.style.transition = "transform 0.2s ease-out", a.style.transform = "translateX(0)", m && (m.style.transition = "transform 0.2s ease-out", m.style.transform = "translateX(-20%)"), setTimeout(y, 200)), u = !1;
|
|
1000
1000
|
}
|
|
1001
1001
|
function g() {
|
|
1002
|
-
|
|
1002
|
+
u && (a && (a.style.transition = "transform 0.15s ease-out", a.style.transform = "translateX(0)"), m && (m.style.transition = "transform 0.15s ease-out", m.style.transform = "translateX(-20%)"), setTimeout(y, 150), u = !1);
|
|
1003
1003
|
}
|
|
1004
|
-
function
|
|
1005
|
-
a && (a.style.willChange = "", a.style.transition = "", a.style.transform = ""),
|
|
1004
|
+
function y() {
|
|
1005
|
+
a && (a.style.willChange = "", a.style.transition = "", a.style.transform = ""), m && (m.style.willChange = "", m.style.transition = "", m.style.transform = ""), a = null, m = null;
|
|
1006
1006
|
}
|
|
1007
1007
|
q(() => {
|
|
1008
|
-
const
|
|
1009
|
-
|
|
1008
|
+
const s = R();
|
|
1009
|
+
s != null && s.addEventListener && (s.addEventListener("pointerdown", M, { passive: !0 }), s.addEventListener("pointermove", T, { passive: !0 }), s.addEventListener("pointerup", I, { passive: !0 }), s.addEventListener("pointercancel", g, { passive: !0 }));
|
|
1010
1010
|
}), he(() => {
|
|
1011
|
-
const
|
|
1012
|
-
|
|
1011
|
+
const s = R();
|
|
1012
|
+
s != null && s.removeEventListener && (s.removeEventListener("pointerdown", M), s.removeEventListener("pointermove", T), s.removeEventListener("pointerup", I), s.removeEventListener("pointercancel", g));
|
|
1013
1013
|
});
|
|
1014
1014
|
}
|
|
1015
|
-
function
|
|
1015
|
+
function At(e) {
|
|
1016
1016
|
return { ...e };
|
|
1017
1017
|
}
|
|
1018
|
-
function
|
|
1018
|
+
function ot(e, o) {
|
|
1019
1019
|
var n, i, t;
|
|
1020
|
-
for (const
|
|
1021
|
-
(n =
|
|
1020
|
+
for (const l of e)
|
|
1021
|
+
(n = l.routes) != null && n.length && o.registerRoutes(l.routes), (i = l.dialogs) != null && i.length && o.registerDialogs(l.dialogs), (t = l.controls) != null && t.length && o.registerControls(l.controls);
|
|
1022
1022
|
}
|
|
1023
|
-
const
|
|
1023
|
+
const at = /* @__PURE__ */ oe({
|
|
1024
1024
|
__name: "MicroControlWrapper",
|
|
1025
1025
|
props: {
|
|
1026
1026
|
control: {}
|
|
1027
1027
|
},
|
|
1028
1028
|
setup(e) {
|
|
1029
1029
|
const o = e, { getControlAttrs: n, updateControlAttrs: i } = J();
|
|
1030
|
-
return N(
|
|
1030
|
+
return N(Ie, o.control.name), N(ae, () => n(o.control.name)), N(ie, (t) => {
|
|
1031
1031
|
i(o.control.name, t);
|
|
1032
|
-
}), (t,
|
|
1032
|
+
}), (t, l) => (B(), z(ye(e.control.component), Pe({
|
|
1033
1033
|
key: e.control.componentKey || 0
|
|
1034
1034
|
}, e.control.attrs), null, 16));
|
|
1035
1035
|
}
|
|
1036
1036
|
});
|
|
1037
|
-
let Z = 0,
|
|
1038
|
-
function at() {
|
|
1039
|
-
Z === 0 && (Ge = document.body.style.overflow, document.body.style.overflow = "hidden"), Z++;
|
|
1040
|
-
}
|
|
1037
|
+
let Z = 0, Be = "";
|
|
1041
1038
|
function it() {
|
|
1042
|
-
Z
|
|
1039
|
+
Z === 0 && (Be = document.body.style.overflow, document.body.style.overflow = "hidden"), Z++;
|
|
1040
|
+
}
|
|
1041
|
+
function st() {
|
|
1042
|
+
Z = Math.max(0, Z - 1), Z === 0 && (document.body.style.overflow = Be);
|
|
1043
|
+
}
|
|
1044
|
+
const rt = /* @__PURE__ */ new Set(["A", "BUTTON", "INPUT", "SELECT", "TEXTAREA"]);
|
|
1045
|
+
function lt(e) {
|
|
1046
|
+
return !(!rt.has(e.tagName) && !e.hasAttribute("tabindex") || e.tagName === "A" && !e.hasAttribute("href") || e.offsetParent === null || e.getAttribute("aria-hidden") === "true" || e.getAttribute("tabindex") === "-1" || e.hasAttribute("disabled") || e instanceof HTMLInputElement && e.type === "hidden");
|
|
1047
|
+
}
|
|
1048
|
+
function Ge(e) {
|
|
1049
|
+
return Array.from(
|
|
1050
|
+
e.querySelectorAll("*")
|
|
1051
|
+
).filter(lt);
|
|
1052
|
+
}
|
|
1053
|
+
function ct(e) {
|
|
1054
|
+
const o = Ge(e);
|
|
1055
|
+
return o.find((n) => n.hasAttribute("autofocus")) ?? o[0] ?? e;
|
|
1043
1056
|
}
|
|
1044
|
-
const
|
|
1057
|
+
const ut = /* @__PURE__ */ oe({
|
|
1045
1058
|
__name: "MicroDialog",
|
|
1046
1059
|
props: {
|
|
1047
1060
|
dialog: {},
|
|
@@ -1049,113 +1062,124 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
|
|
|
1049
1062
|
},
|
|
1050
1063
|
emits: ["close"],
|
|
1051
1064
|
setup(e, { emit: o }) {
|
|
1052
|
-
const n = e, i = o, { getDialogAttrs: t, updateDialogAttrs:
|
|
1053
|
-
let
|
|
1054
|
-
const
|
|
1055
|
-
function
|
|
1056
|
-
return
|
|
1057
|
-
s.value.querySelectorAll(st)
|
|
1058
|
-
).filter((r) => r.offsetParent !== null) : [];
|
|
1065
|
+
const n = e, i = o, { getDialogAttrs: t, updateDialogAttrs: l } = J();
|
|
1066
|
+
let c = !1, r = 0;
|
|
1067
|
+
const u = ee(null), a = ee(null), m = C(() => n.dialog.transition ?? "scale"), R = C(() => n.dialog.transitionDuration != null ? n.dialog.transitionDuration : m.value === "slide" ? 500 : 300), L = C(() => n.dialog.position ?? "standard"), M = C(() => n.dialog.seamless ?? !1);
|
|
1068
|
+
function T() {
|
|
1069
|
+
return u.value ? Ge(u.value) : [];
|
|
1059
1070
|
}
|
|
1060
|
-
function
|
|
1061
|
-
var
|
|
1062
|
-
if (
|
|
1071
|
+
function I(d) {
|
|
1072
|
+
var w, S;
|
|
1073
|
+
if (d.key === "Escape") {
|
|
1063
1074
|
if (n.dialog.persistent) return;
|
|
1064
|
-
|
|
1075
|
+
d.preventDefault(), d.stopPropagation(), i("close", n.dialog.path);
|
|
1065
1076
|
return;
|
|
1066
1077
|
}
|
|
1067
|
-
if (
|
|
1068
|
-
const P =
|
|
1078
|
+
if (d.key !== "Tab") return;
|
|
1079
|
+
const P = T();
|
|
1069
1080
|
if (P.length === 0) {
|
|
1070
|
-
|
|
1081
|
+
d.preventDefault(), (w = u.value) == null || w.focus();
|
|
1071
1082
|
return;
|
|
1072
1083
|
}
|
|
1073
|
-
const
|
|
1074
|
-
|
|
1084
|
+
const p = P[0], h = P[P.length - 1], v = document.activeElement, D = !!((S = u.value) != null && S.contains(v));
|
|
1085
|
+
d.shiftKey ? (!D || v === p) && (d.preventDefault(), h.focus()) : (!D || v === h) && (d.preventDefault(), p.focus());
|
|
1075
1086
|
}
|
|
1076
|
-
function
|
|
1077
|
-
n.dialog.persistent ||
|
|
1087
|
+
function g(d) {
|
|
1088
|
+
n.dialog.persistent || d.target === d.currentTarget && i("close", n.dialog.path);
|
|
1078
1089
|
}
|
|
1079
|
-
function
|
|
1080
|
-
if (!n.dialog.focusInput || !
|
|
1081
|
-
|
|
1090
|
+
function y(d) {
|
|
1091
|
+
if (!n.dialog.focusInput || !u.value) {
|
|
1092
|
+
d();
|
|
1082
1093
|
return;
|
|
1083
1094
|
}
|
|
1084
1095
|
const P = document.createElement("input");
|
|
1085
|
-
P.style.cssText = "position:fixed;opacity:0;height:0;width:0;top:-100px;",
|
|
1086
|
-
P.remove(),
|
|
1096
|
+
P.style.cssText = "position:fixed;opacity:0;height:0;width:0;top:-100px;", u.value.appendChild(P), P.focus(), setTimeout(() => {
|
|
1097
|
+
P.remove(), d();
|
|
1087
1098
|
}, 50);
|
|
1088
1099
|
}
|
|
1089
|
-
function
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1100
|
+
function s(d) {
|
|
1101
|
+
const P = ++r;
|
|
1102
|
+
k(() => {
|
|
1103
|
+
if (!u.value || !n.dialog.activated || P !== r) return;
|
|
1104
|
+
const p = () => {
|
|
1105
|
+
!u.value || !n.dialog.activated || P !== r || ct(u.value).focus();
|
|
1106
|
+
};
|
|
1107
|
+
if (d) {
|
|
1108
|
+
y(p);
|
|
1109
|
+
return;
|
|
1110
|
+
}
|
|
1111
|
+
p();
|
|
1112
|
+
});
|
|
1113
|
+
}
|
|
1114
|
+
function f() {
|
|
1115
|
+
if (c) {
|
|
1116
|
+
s(n.dialog.focusInput ?? !1);
|
|
1117
|
+
return;
|
|
1118
|
+
}
|
|
1119
|
+
c = !0, a.value = document.activeElement, it(), s(n.dialog.focusInput ?? !1);
|
|
1096
1120
|
}
|
|
1097
|
-
function
|
|
1098
|
-
var
|
|
1099
|
-
if (!
|
|
1100
|
-
|
|
1101
|
-
const
|
|
1102
|
-
|
|
1103
|
-
const P = document.activeElement,
|
|
1104
|
-
|
|
1121
|
+
function A() {
|
|
1122
|
+
var v;
|
|
1123
|
+
if (!c) return;
|
|
1124
|
+
r++, c = !1, st();
|
|
1125
|
+
const d = a.value;
|
|
1126
|
+
a.value = null;
|
|
1127
|
+
const P = document.activeElement, p = !!((v = u.value) != null && v.contains(P)), h = !P || P === document.body;
|
|
1128
|
+
d && typeof d.focus == "function" && document.contains(d) && (p || h) && d.focus();
|
|
1105
1129
|
}
|
|
1106
|
-
return N(Te, n.dialog.path), N(ae, () => t(n.dialog.path)), N(ie, (
|
|
1107
|
-
|
|
1130
|
+
return N(Te, n.dialog.path), N(ae, () => t(n.dialog.path)), N(ie, (d) => {
|
|
1131
|
+
l(n.dialog.path, d);
|
|
1108
1132
|
}), X(
|
|
1109
1133
|
() => n.dialog.activated,
|
|
1110
|
-
(
|
|
1111
|
-
|
|
1134
|
+
(d) => {
|
|
1135
|
+
d && f();
|
|
1112
1136
|
}
|
|
1113
1137
|
), X(
|
|
1114
1138
|
() => n.dialog.closing,
|
|
1115
|
-
(
|
|
1116
|
-
!
|
|
1139
|
+
(d) => {
|
|
1140
|
+
!d && !n.dialog.activated && c && A();
|
|
1117
1141
|
}
|
|
1118
1142
|
), q(() => {
|
|
1119
|
-
n.dialog.activated &&
|
|
1143
|
+
n.dialog.activated && f();
|
|
1120
1144
|
}), he(() => {
|
|
1121
|
-
|
|
1122
|
-
}), (
|
|
1145
|
+
c && A();
|
|
1146
|
+
}), (d, P) => (B(), z(We, { to: "body" }, [
|
|
1123
1147
|
j("div", {
|
|
1124
1148
|
class: Q(["micro-dialog-portal", [
|
|
1125
|
-
`micro-dialog--${
|
|
1149
|
+
`micro-dialog--${L.value}`,
|
|
1126
1150
|
e.dialog.fullscreen && "micro-dialog--fullscreen",
|
|
1127
|
-
|
|
1151
|
+
M.value && "micro-dialog--seamless"
|
|
1128
1152
|
]]),
|
|
1129
1153
|
style: be({
|
|
1130
1154
|
zIndex: 100 + e.stackIndex,
|
|
1131
|
-
"--dialog-duration": `${
|
|
1155
|
+
"--dialog-duration": `${R.value}ms`
|
|
1132
1156
|
}),
|
|
1133
|
-
onClick: le(
|
|
1157
|
+
onClick: le(g, ["self"])
|
|
1134
1158
|
}, [
|
|
1135
|
-
|
|
1159
|
+
M.value ? $e("", !0) : (B(), x("div", {
|
|
1136
1160
|
key: 0,
|
|
1137
1161
|
class: Q(["micro-dialog-backdrop", e.dialog.closing && "micro-dialog-backdrop--closing"])
|
|
1138
1162
|
}, null, 2)),
|
|
1139
1163
|
j("div", {
|
|
1140
1164
|
ref_key: "wrapperRef",
|
|
1141
|
-
ref:
|
|
1165
|
+
ref: u,
|
|
1142
1166
|
role: "dialog",
|
|
1143
1167
|
"aria-modal": "true",
|
|
1144
1168
|
tabindex: "-1",
|
|
1145
1169
|
class: Q(["micro-dialog", [
|
|
1146
|
-
`dialog-transition-${
|
|
1170
|
+
`dialog-transition-${m.value}`,
|
|
1147
1171
|
e.dialog.closing && "micro-dialog--closing"
|
|
1148
1172
|
]]),
|
|
1149
|
-
onClick: le(
|
|
1150
|
-
onKeydown:
|
|
1173
|
+
onClick: le(g, ["self"]),
|
|
1174
|
+
onKeydown: I
|
|
1151
1175
|
}, [
|
|
1152
1176
|
j("div", {
|
|
1153
1177
|
class: "micro-dialog__content",
|
|
1154
1178
|
onClick: P[0] || (P[0] = le(() => {
|
|
1155
1179
|
}, ["stop"]))
|
|
1156
1180
|
}, [
|
|
1157
|
-
we(
|
|
1158
|
-
(
|
|
1181
|
+
we(d.$slots, "default"),
|
|
1182
|
+
(B(), z(ye(e.dialog.component), Pe({
|
|
1159
1183
|
key: e.dialog.componentKey
|
|
1160
1184
|
}, e.dialog.attrs), null, 16))
|
|
1161
1185
|
])
|
|
@@ -1163,7 +1187,7 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
|
|
|
1163
1187
|
], 6)
|
|
1164
1188
|
]));
|
|
1165
1189
|
}
|
|
1166
|
-
}),
|
|
1190
|
+
}), ft = { class: "route-page" }, gt = { class: "route-page__body" }, dt = /* @__PURE__ */ oe({
|
|
1167
1191
|
__name: "RoutePage",
|
|
1168
1192
|
props: {
|
|
1169
1193
|
routePath: {}
|
|
@@ -1174,17 +1198,17 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
|
|
|
1174
1198
|
const n = o.routePath;
|
|
1175
1199
|
N(Le, n);
|
|
1176
1200
|
const { updateRouteAttrs: i, getRouteAttrs: t } = J();
|
|
1177
|
-
N(ae, () => t(n)), N(ie, (
|
|
1178
|
-
i(n,
|
|
1201
|
+
N(ae, () => t(n)), N(ie, (l) => {
|
|
1202
|
+
i(n, l);
|
|
1179
1203
|
});
|
|
1180
1204
|
}
|
|
1181
|
-
return (n, i) => (
|
|
1182
|
-
j("div",
|
|
1205
|
+
return (n, i) => (B(), x("div", ft, [
|
|
1206
|
+
j("div", gt, [
|
|
1183
1207
|
we(n.$slots, "default")
|
|
1184
1208
|
])
|
|
1185
1209
|
]));
|
|
1186
1210
|
}
|
|
1187
|
-
}),
|
|
1211
|
+
}), vt = { class: "micro-router-content-layer" }, Ct = /* @__PURE__ */ oe({
|
|
1188
1212
|
__name: "MicroRouterView",
|
|
1189
1213
|
props: {
|
|
1190
1214
|
config: {},
|
|
@@ -1192,84 +1216,84 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
|
|
|
1192
1216
|
nested: { type: Boolean }
|
|
1193
1217
|
},
|
|
1194
1218
|
setup(e) {
|
|
1195
|
-
var
|
|
1196
|
-
const o = e, n =
|
|
1197
|
-
(
|
|
1219
|
+
var y, s;
|
|
1220
|
+
const o = e, n = tt(o.config);
|
|
1221
|
+
(y = o.plugins) != null && y.length && ot(o.plugins, n);
|
|
1198
1222
|
const {
|
|
1199
1223
|
resolveRoutes: i,
|
|
1200
1224
|
resolveDialogs: t,
|
|
1201
|
-
resolveControls:
|
|
1202
|
-
fromPath:
|
|
1203
|
-
toPath:
|
|
1204
|
-
isNavigating:
|
|
1225
|
+
resolveControls: l,
|
|
1226
|
+
fromPath: c,
|
|
1227
|
+
toPath: r,
|
|
1228
|
+
isNavigating: u,
|
|
1205
1229
|
closeDialog: a
|
|
1206
|
-
} = n,
|
|
1207
|
-
const
|
|
1208
|
-
return
|
|
1209
|
-
}), L =
|
|
1210
|
-
const
|
|
1211
|
-
return (
|
|
1212
|
-
}),
|
|
1213
|
-
const
|
|
1214
|
-
return
|
|
1215
|
-
}), g =
|
|
1230
|
+
} = n, m = ee(null), R = C(() => {
|
|
1231
|
+
const f = c.value.split("/").filter(Boolean), A = new Set(r.value.split("/").filter(Boolean));
|
|
1232
|
+
return f.some((d) => A.has(d));
|
|
1233
|
+
}), L = C(() => l.value.length > 0), M = C(() => {
|
|
1234
|
+
const f = i.value.at(-1);
|
|
1235
|
+
return (f == null ? void 0 : f.transition) ?? "slide";
|
|
1236
|
+
}), T = C(() => M.value === "none" ? "" : M.value === "fade" ? "page-fade" : "page-slide"), I = C(() => {
|
|
1237
|
+
const f = i.value.at(-1);
|
|
1238
|
+
return f != null && f.transitionDuration ? f.transitionDuration : M.value === "fade" ? 300 : 500;
|
|
1239
|
+
}), g = C(
|
|
1216
1240
|
() => R.value && M.value !== "none"
|
|
1217
1241
|
);
|
|
1218
|
-
return (
|
|
1219
|
-
containerRef:
|
|
1242
|
+
return (s = o.config.gesture) != null && s.enabled && nt(o.config.gesture, {
|
|
1243
|
+
containerRef: m,
|
|
1220
1244
|
goBack: () => n.push(-1),
|
|
1221
1245
|
canGoBack: () => i.value.length > 1
|
|
1222
|
-
}), (
|
|
1223
|
-
Re(
|
|
1246
|
+
}), (f, A) => (B(), x(te, null, [
|
|
1247
|
+
Re(Ee, {
|
|
1224
1248
|
ref_key: "pageContainerRef",
|
|
1225
|
-
ref:
|
|
1226
|
-
name:
|
|
1249
|
+
ref: m,
|
|
1250
|
+
name: T.value,
|
|
1227
1251
|
css: g.value
|
|
1228
1252
|
}, {
|
|
1229
1253
|
default: ce(() => [
|
|
1230
|
-
(
|
|
1231
|
-
key:
|
|
1232
|
-
"route-path":
|
|
1254
|
+
(B(!0), x(te, null, ue(Y(i), (d, P) => (B(), z(dt, {
|
|
1255
|
+
key: d.key || d.path,
|
|
1256
|
+
"route-path": d.path,
|
|
1233
1257
|
class: Q({
|
|
1234
|
-
deactivate: Y(i).length > 1 &&
|
|
1235
|
-
"micro-router--navigating": Y(
|
|
1258
|
+
deactivate: Y(i).length > 1 && P !== Y(i).length - 1,
|
|
1259
|
+
"micro-router--navigating": Y(u)
|
|
1236
1260
|
}),
|
|
1237
1261
|
style: be({
|
|
1238
|
-
transition: g.value ? `transform ${
|
|
1239
|
-
zIndex: 10 +
|
|
1262
|
+
transition: g.value ? `transform ${I.value}ms cubic-bezier(0.65, 0, 0.35, 1), opacity ${I.value}ms ease` : "none",
|
|
1263
|
+
zIndex: 10 + P,
|
|
1240
1264
|
"--mr-page-height": e.nested ? "100%" : "100dvh"
|
|
1241
1265
|
})
|
|
1242
1266
|
}, {
|
|
1243
1267
|
default: ce(() => [
|
|
1244
|
-
(
|
|
1245
|
-
key:
|
|
1246
|
-
}, { ref_for: !0 }, Y(n).getRouteAttrs(
|
|
1268
|
+
(B(), z(ye(d.component), Pe({
|
|
1269
|
+
key: d.componentKey
|
|
1270
|
+
}, { ref_for: !0 }, Y(n).getRouteAttrs(d.path)), null, 16))
|
|
1247
1271
|
]),
|
|
1248
1272
|
_: 2
|
|
1249
1273
|
}, 1032, ["route-path", "class", "style"]))), 128))
|
|
1250
1274
|
]),
|
|
1251
1275
|
_: 1
|
|
1252
1276
|
}, 8, ["name", "css"]),
|
|
1253
|
-
j("div",
|
|
1254
|
-
we(
|
|
1277
|
+
j("div", vt, [
|
|
1278
|
+
we(f.$slots, "default")
|
|
1255
1279
|
]),
|
|
1256
1280
|
j("div", {
|
|
1257
1281
|
class: Q(["micro-router-gui-layer", { "gui-visible": L.value }])
|
|
1258
1282
|
}, [
|
|
1259
|
-
Re(
|
|
1283
|
+
Re(Ee, { name: "control-fade" }, {
|
|
1260
1284
|
default: ce(() => [
|
|
1261
|
-
(
|
|
1262
|
-
key:
|
|
1263
|
-
control:
|
|
1285
|
+
(B(!0), x(te, null, ue(Y(l), (d) => (B(), z(at, {
|
|
1286
|
+
key: d.name + "-" + (d.componentKey || 0),
|
|
1287
|
+
control: d
|
|
1264
1288
|
}, null, 8, ["control"]))), 128))
|
|
1265
1289
|
]),
|
|
1266
1290
|
_: 1
|
|
1267
1291
|
})
|
|
1268
1292
|
], 2),
|
|
1269
|
-
(
|
|
1270
|
-
key: "dialog-" +
|
|
1271
|
-
dialog:
|
|
1272
|
-
"stack-index":
|
|
1293
|
+
(B(!0), x(te, null, ue(Y(t), (d, P) => (B(), z(ut, {
|
|
1294
|
+
key: "dialog-" + d.path,
|
|
1295
|
+
dialog: d,
|
|
1296
|
+
"stack-index": P,
|
|
1273
1297
|
onClose: Y(a)
|
|
1274
1298
|
}, null, 8, ["dialog", "stack-index", "onClose"]))), 128))
|
|
1275
1299
|
], 64));
|
|
@@ -1278,34 +1302,34 @@ const st = 'button:not([disabled]), [href], input:not([disabled]), select:not([d
|
|
|
1278
1302
|
export {
|
|
1279
1303
|
ae as MICRO_ATTRS_READ_KEY,
|
|
1280
1304
|
ie as MICRO_ATTRS_WRITE_KEY,
|
|
1281
|
-
|
|
1305
|
+
Ie as MICRO_CONTROL_NAME_KEY,
|
|
1282
1306
|
Te as MICRO_DIALOG_PATH_KEY,
|
|
1283
1307
|
Me as MICRO_ROUTER_KEY,
|
|
1284
1308
|
de as MICRO_ROUTER_ROOT_KEY,
|
|
1285
1309
|
Le as MICRO_ROUTE_PATH_KEY,
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1310
|
+
at as MicroControlWrapper,
|
|
1311
|
+
ut as MicroDialogComponent,
|
|
1312
|
+
Ct as MicroRouterView,
|
|
1313
|
+
dt as RoutePage,
|
|
1314
|
+
Ue as STEP_DELAY,
|
|
1291
1315
|
K as buildPathFromSegments,
|
|
1292
|
-
|
|
1293
|
-
|
|
1316
|
+
ht as createRouterKey,
|
|
1317
|
+
At as defineFeaturePlugin,
|
|
1294
1318
|
H as getLastSegment,
|
|
1295
1319
|
De as isAsyncLoader,
|
|
1296
1320
|
W as normalizePath,
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1321
|
+
_ as parsePathSegments,
|
|
1322
|
+
ot as registerFeaturePlugins,
|
|
1323
|
+
Ae as safeMarkRaw,
|
|
1324
|
+
Dt as useControlLifecycle,
|
|
1325
|
+
Xe as useControlManager,
|
|
1326
|
+
wt as useDialogLifecycle,
|
|
1327
|
+
je as useDialogManager,
|
|
1328
|
+
nt as useGestureNavigation,
|
|
1329
|
+
tt as useGlobalMicroRouter,
|
|
1306
1330
|
J as useMicroRouter,
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1331
|
+
yt as useMicroState,
|
|
1332
|
+
ke as useNavigation,
|
|
1333
|
+
et as usePageTracker,
|
|
1334
|
+
Pt as useRouteLifecycle
|
|
1311
1335
|
};
|