@flemo/core 1.16.1 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +144 -89
- package/dist/screen/animStartAnchor.d.ts +6 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export { SKIP_ANIMATION_ATTR, type TransitionEngine, type TransitionEngineDeps,
|
|
|
40
40
|
export { default as createSwipeController } from './core/engine/createSwipeController';
|
|
41
41
|
export { type SwipeController, type SwipeControllerConfig, type SwipeControllerElements, type SharedBarPresenceLike } from './core/engine/createSwipeController';
|
|
42
42
|
export { default as computeBarRiding, type BarRidingInput } from './screen/computeBarRiding';
|
|
43
|
-
export { animHoldKey, scheduleAnimHoldRelease, eagerlyDecodeImages, ANIM_HOLD_RELEASE_BACKSTOP_MS, type AnimHoldInput } from './screen/animStartAnchor';
|
|
43
|
+
export { animHoldKey, scheduleAnimHoldRelease, createAnimHoldCoordinator, eagerlyDecodeImages, ANIM_HOLD_RELEASE_BACKSTOP_MS, type AnimHoldInput, type AnimHoldCoordinator } from './screen/animStartAnchor';
|
|
44
44
|
export { default as observeBarHeight } from './screen/observeBarHeight';
|
|
45
45
|
export { default as observeViewportScrollHeight } from './screen/observeViewportScrollHeight';
|
|
46
46
|
export type { RegisterTransition, TransitionName, TransitionVariant, TransitionVariantValue, TransitionOptions, BaseTransition, Transition, SwipeInfo, SwipeAnimate } from './transition/typing';
|
package/dist/index.mjs
CHANGED
|
@@ -496,7 +496,7 @@ function te(e) {
|
|
|
496
496
|
}
|
|
497
497
|
//#endregion
|
|
498
498
|
//#region src/history/memoryHistoryDriver.ts
|
|
499
|
-
function
|
|
499
|
+
function O(e) {
|
|
500
500
|
let t = [{
|
|
501
501
|
state: e?.state ?? null,
|
|
502
502
|
url: e?.url ?? "/"
|
|
@@ -538,7 +538,7 @@ function ne(e) {
|
|
|
538
538
|
}
|
|
539
539
|
//#endregion
|
|
540
540
|
//#region src/navigate/store.ts
|
|
541
|
-
function
|
|
541
|
+
function k() {
|
|
542
542
|
return e((e) => ({
|
|
543
543
|
status: "IDLE",
|
|
544
544
|
transitionTaskId: null,
|
|
@@ -548,11 +548,11 @@ function re() {
|
|
|
548
548
|
}
|
|
549
549
|
//#endregion
|
|
550
550
|
//#region src/navigate/createNavigationController.ts
|
|
551
|
-
var
|
|
551
|
+
var A = (e, t, n) => {
|
|
552
552
|
let { regexp: r } = i(e);
|
|
553
553
|
for (let e = t - 1; e >= 0; e--) if (r.test(n[e].pathname)) return t - e;
|
|
554
554
|
return -1;
|
|
555
|
-
},
|
|
555
|
+
}, ne = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.trunc(e)) : t, re = async (e, t, n, r) => {
|
|
556
556
|
let i, a = new Promise((t) => {
|
|
557
557
|
i = e.subscribe(() => t(!0));
|
|
558
558
|
}), o = new Promise((e) => setTimeout(() => e(!1), 200));
|
|
@@ -586,10 +586,10 @@ function ie(e) {
|
|
|
586
586
|
}
|
|
587
587
|
let o = c(), { index: d, histories: f, addHistory: g, popHistories: _ } = t.history.getState(), v = (() => {
|
|
588
588
|
if (u?.until != null) {
|
|
589
|
-
let e =
|
|
589
|
+
let e = A(u.until, d, f);
|
|
590
590
|
return e < 0 ? 0 : e;
|
|
591
591
|
}
|
|
592
|
-
return Math.min(
|
|
592
|
+
return Math.min(ne(u?.skip, 0), Math.max(0, d));
|
|
593
593
|
})(), { setStatus: y, setTransitionTaskId: b } = t.navigate.getState();
|
|
594
594
|
y("PUSHING"), b(h);
|
|
595
595
|
let { pathname: x, toPathname: S } = n(e, l ?? {}), C = {
|
|
@@ -616,7 +616,7 @@ function ie(e) {
|
|
|
616
616
|
return g({
|
|
617
617
|
...C,
|
|
618
618
|
frameIndex: T + 1
|
|
619
|
-
}), await
|
|
619
|
+
}), await re(r, i, v, () => {
|
|
620
620
|
s(), r.pushState({
|
|
621
621
|
id: h,
|
|
622
622
|
index: T + 1,
|
|
@@ -646,10 +646,10 @@ function ie(e) {
|
|
|
646
646
|
}
|
|
647
647
|
let o = c(), { index: d, histories: f, addHistory: g, replaceHistory: _, popHistories: v } = t.history.getState(), y = (() => {
|
|
648
648
|
if (u?.until != null) {
|
|
649
|
-
let e =
|
|
649
|
+
let e = A(u.until, d, f);
|
|
650
650
|
return e < 0 ? 0 : e + 1;
|
|
651
651
|
}
|
|
652
|
-
return Math.min(
|
|
652
|
+
return Math.min(ne(u?.skip, 0) + 1, d + 1);
|
|
653
653
|
})();
|
|
654
654
|
if (y <= 0) {
|
|
655
655
|
a.abort();
|
|
@@ -681,7 +681,7 @@ function ie(e) {
|
|
|
681
681
|
return v(y - 1), g({
|
|
682
682
|
...w,
|
|
683
683
|
frameIndex: E
|
|
684
|
-
}), y <= d ? await
|
|
684
|
+
}), y <= d ? await re(r, i, y, () => {
|
|
685
685
|
s(), r.pushState({
|
|
686
686
|
id: h,
|
|
687
687
|
index: E,
|
|
@@ -690,7 +690,7 @@ function ie(e) {
|
|
|
690
690
|
transitionName: p,
|
|
691
691
|
layoutId: m
|
|
692
692
|
}, S);
|
|
693
|
-
}) : await
|
|
693
|
+
}) : await re(r, i, d, () => {
|
|
694
694
|
s(), r.replaceState({
|
|
695
695
|
id: h,
|
|
696
696
|
index: E,
|
|
@@ -746,10 +746,10 @@ function ie(e) {
|
|
|
746
746
|
pop: async (e) => {
|
|
747
747
|
await d((t, n) => {
|
|
748
748
|
if (e?.until != null) {
|
|
749
|
-
let r =
|
|
749
|
+
let r = A(e.until, t, n);
|
|
750
750
|
return r < 0 ? 0 : r;
|
|
751
751
|
}
|
|
752
|
-
let r =
|
|
752
|
+
let r = ne(e?.skip, 1);
|
|
753
753
|
return r <= 0 ? 0 : Math.min(r, t);
|
|
754
754
|
}, e?.transitionName);
|
|
755
755
|
}
|
|
@@ -903,7 +903,7 @@ function me(e) {
|
|
|
903
903
|
index: 0,
|
|
904
904
|
histories: [p]
|
|
905
905
|
}), e.hostedScope;
|
|
906
|
-
let m = a ?
|
|
906
|
+
let m = a ? O({
|
|
907
907
|
state: {
|
|
908
908
|
id: p.id,
|
|
909
909
|
index: 0,
|
|
@@ -915,7 +915,7 @@ function me(e) {
|
|
|
915
915
|
url: p.pathname
|
|
916
916
|
}) : o, h = a ? fe : g(), _ = {
|
|
917
917
|
history: s([p], 0),
|
|
918
|
-
navigate:
|
|
918
|
+
navigate: k(),
|
|
919
919
|
transition: le(i),
|
|
920
920
|
screen: de(),
|
|
921
921
|
driver: m,
|
|
@@ -1401,17 +1401,17 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1401
1401
|
"POPPING-false": "PUSHING-false",
|
|
1402
1402
|
"COMPLETED-true": "self",
|
|
1403
1403
|
"COMPLETED-false": "self"
|
|
1404
|
-
}, Ae = Object.keys(I),
|
|
1404
|
+
}, Ae = Object.keys(I), je = (e) => {
|
|
1405
1405
|
if (!e) return 0;
|
|
1406
1406
|
let t = e.duration;
|
|
1407
1407
|
return typeof t == "number" && t >= 0 ? t : 0;
|
|
1408
|
-
},
|
|
1408
|
+
}, L = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, Me = (e, t) => {
|
|
1409
1409
|
let n = I[t];
|
|
1410
1410
|
return n === "self" ? null : n === "initial" ? e.initial : e.variants[n].value;
|
|
1411
|
-
},
|
|
1412
|
-
let n =
|
|
1411
|
+
}, R = (e, t) => {
|
|
1412
|
+
let n = Me(e, t);
|
|
1413
1413
|
if (n === null) return null;
|
|
1414
|
-
let r = e.variants[t], i =
|
|
1414
|
+
let r = e.variants[t], i = je(r.options), a = L(r.options);
|
|
1415
1415
|
return i <= 0 && a <= 0 ? null : {
|
|
1416
1416
|
from: n,
|
|
1417
1417
|
to: r.value,
|
|
@@ -1419,7 +1419,7 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1419
1419
|
delay: a,
|
|
1420
1420
|
ease: r.options?.ease
|
|
1421
1421
|
};
|
|
1422
|
-
},
|
|
1422
|
+
}, Ne = Ae, Pe = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), Fe = (e) => typeof e == "object" && !!e && !Array.isArray(e), Ie = new Set(/* @__PURE__ */ "opacity.scale.scaleX.scaleY.scaleZ.aspectRatio.columnCount.columns.flex.flexGrow.flexShrink.fontWeight.gridArea.gridColumn.gridColumnEnd.gridColumnStart.gridRow.gridRowEnd.gridRowStart.lineHeight.lineClamp.order.orphans.tabSize.widows.zIndex.zoom.fillOpacity.floodOpacity.stopOpacity.strokeOpacity.strokeDasharray.strokeDashoffset.strokeMiterlimit.strokeWidth".split(".")), Le = (e, t) => t.startsWith("--") || Ie.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, Re = (e, t) => typeof t == "number" ? Le(t, e) : typeof t == "string" ? t : "", z = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), ze = new Set([
|
|
1423
1423
|
"x",
|
|
1424
1424
|
"y",
|
|
1425
1425
|
"z",
|
|
@@ -1446,14 +1446,14 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1446
1446
|
}
|
|
1447
1447
|
}, Ge = (e) => {
|
|
1448
1448
|
let t = /* @__PURE__ */ new Map(), n = !1, r = /* @__PURE__ */ new Set(), i = (e) => {
|
|
1449
|
-
if (!
|
|
1449
|
+
if (!Fe(e)) return;
|
|
1450
1450
|
let n = [];
|
|
1451
1451
|
for (let r of Object.keys(e)) {
|
|
1452
|
-
let i = e[r], a =
|
|
1452
|
+
let i = e[r], a = Re(r, i);
|
|
1453
1453
|
if (a !== "") if (ze.has(r)) n.push(`${r}:${a}`);
|
|
1454
1454
|
else {
|
|
1455
|
-
let e = t.get(
|
|
1456
|
-
e.add(a), t.set(
|
|
1455
|
+
let e = t.get(z(r)) ?? /* @__PURE__ */ new Set();
|
|
1456
|
+
e.add(a), t.set(z(r), e);
|
|
1457
1457
|
}
|
|
1458
1458
|
}
|
|
1459
1459
|
r.add(n.sort().join("|"));
|
|
@@ -1464,12 +1464,12 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1464
1464
|
let a = Array.from(t.entries()).filter(([, e]) => e.size > 1).map(([e]) => e);
|
|
1465
1465
|
return n && a.push("transform"), a;
|
|
1466
1466
|
}, B = (e) => {
|
|
1467
|
-
if (!
|
|
1467
|
+
if (!Fe(e)) return [];
|
|
1468
1468
|
let t = [], n = !0, r = [];
|
|
1469
1469
|
for (let i of Object.keys(e)) {
|
|
1470
|
-
let a = e[i], o =
|
|
1470
|
+
let a = e[i], o = Re(i, a);
|
|
1471
1471
|
o !== "" && (ze.has(i) ? (t.push(We(i, o)), Ue(i, a) || (n = !1)) : r.push({
|
|
1472
|
-
property:
|
|
1472
|
+
property: z(i),
|
|
1473
1473
|
value: o
|
|
1474
1474
|
}));
|
|
1475
1475
|
}
|
|
@@ -1499,8 +1499,8 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1499
1499
|
}, Ye = (e, t) => {
|
|
1500
1500
|
let [n, r] = t.split("-");
|
|
1501
1501
|
return `[data-flemo-part-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
|
|
1502
|
-
}, Xe = (e, t, n) => `flemo-${e}-${
|
|
1503
|
-
let o = B(r), s = B(i.value), c =
|
|
1502
|
+
}, Xe = (e, t, n) => `flemo-${e}-${Pe(t)}-${n}`, Ze = (e, t, n, r, i, a) => {
|
|
1503
|
+
let o = B(r), s = B(i.value), c = je(i.options), l = L(i.options), u = H(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${Je(t, n)}` : d;
|
|
1504
1504
|
if (s.length === 0 && o.length === 0) return "";
|
|
1505
1505
|
if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${V(s)}\n animation: none;\n}`;
|
|
1506
1506
|
let p = Xe(e, t, n), m = [
|
|
@@ -1544,7 +1544,7 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1544
1544
|
}
|
|
1545
1545
|
for (let e of t) {
|
|
1546
1546
|
let t = e.name;
|
|
1547
|
-
for (let n of
|
|
1547
|
+
for (let n of Ne) {
|
|
1548
1548
|
let i = e.variants[n], a = I[n];
|
|
1549
1549
|
if (a === "self") {
|
|
1550
1550
|
r.push($e(qe, t, n, i));
|
|
@@ -1556,7 +1556,7 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1556
1556
|
}
|
|
1557
1557
|
for (let e of n) {
|
|
1558
1558
|
let t = e.name;
|
|
1559
|
-
for (let n of
|
|
1559
|
+
for (let n of Ne) {
|
|
1560
1560
|
let i = e.variants[n], a = I[n];
|
|
1561
1561
|
if (a === "self") {
|
|
1562
1562
|
r.push($e(Ye, t, n, i));
|
|
@@ -1579,7 +1579,7 @@ var F = /* @__PURE__ */ new Map(), I = {
|
|
|
1579
1579
|
].join("\n"), nt = (e, t) => {
|
|
1580
1580
|
let n = I[t];
|
|
1581
1581
|
if (n === "self") return !1;
|
|
1582
|
-
let r = e.variants[t], i =
|
|
1582
|
+
let r = e.variants[t], i = je(r.options), a = L(r.options);
|
|
1583
1583
|
if (i <= 0 && a <= 0) return !1;
|
|
1584
1584
|
let o = B(n === "initial" ? e.initial : e.variants[n].value), s = B(r.value);
|
|
1585
1585
|
return o.length > 0 || s.length > 0;
|
|
@@ -2098,29 +2098,30 @@ Y.onFrameGap = (e) => {
|
|
|
2098
2098
|
};
|
|
2099
2099
|
//#endregion
|
|
2100
2100
|
//#region src/core/engine/types.ts
|
|
2101
|
-
var X = "data-flemo-skip-animation", Z = () => {}, Gt = "data-flemo-part-name",
|
|
2101
|
+
var X = "data-flemo-skip-animation", Z = () => {}, Gt = "data-flemo-part-name", Q = (e) => {
|
|
2102
2102
|
let t = e.parentElement ?? e;
|
|
2103
2103
|
return Array.from(t.querySelectorAll(`[${Gt}]`)).filter((n) => {
|
|
2104
2104
|
let r = n.closest("[data-flemo-screen]");
|
|
2105
2105
|
return !r || r === e || !t.contains(r);
|
|
2106
2106
|
});
|
|
2107
|
-
},
|
|
2107
|
+
}, Kt = (e, t) => {
|
|
2108
2108
|
let [n, r] = t.split("-");
|
|
2109
|
-
return
|
|
2109
|
+
return Q(e).filter((e) => e.getAttribute("data-flemo-status") === n && e.getAttribute("data-flemo-active") === r);
|
|
2110
2110
|
};
|
|
2111
|
-
function
|
|
2112
|
-
|
|
2113
|
-
|
|
2111
|
+
function qt(e) {
|
|
2112
|
+
let t = /* @__PURE__ */ new Set();
|
|
2113
|
+
return { driveScreenLifecycle: (n) => {
|
|
2114
|
+
let { getElements: r, transitionName: i, prevTransitionName: a, status: s, isActive: c, animHoldReleased: l } = n, u = s === "PUSHING" || s === "POPPING" || s === "REPLACING", d = (t, n, a) => {
|
|
2114
2115
|
let s = e.getTransitionTaskId();
|
|
2115
2116
|
if (!s || o.pendingTaskIds.some((e) => e !== s) || !U.playerAllowed()) return null;
|
|
2116
|
-
let { scope: c, decorator: l, bars: u } =
|
|
2117
|
+
let { scope: c, decorator: l, bars: u } = r();
|
|
2117
2118
|
if (!c) return null;
|
|
2118
|
-
let d = we(
|
|
2119
|
+
let d = we(i), f = R(d, t);
|
|
2119
2120
|
if (!f) return null;
|
|
2120
2121
|
let p = [], m = Y.join(s, {
|
|
2121
2122
|
element: c,
|
|
2122
2123
|
motion: f,
|
|
2123
|
-
role:
|
|
2124
|
+
role: n,
|
|
2124
2125
|
onComplete: a
|
|
2125
2126
|
});
|
|
2126
2127
|
if (!m) return null;
|
|
@@ -2135,7 +2136,7 @@ function Jt(e) {
|
|
|
2135
2136
|
t && p.push(t);
|
|
2136
2137
|
}
|
|
2137
2138
|
if (l && d.decoratorName) {
|
|
2138
|
-
let e = P.get(d.decoratorName), n = e ?
|
|
2139
|
+
let e = P.get(d.decoratorName), n = e ? R(e, t) : null;
|
|
2139
2140
|
if (n) {
|
|
2140
2141
|
let e = Y.join(s, {
|
|
2141
2142
|
element: l,
|
|
@@ -2145,8 +2146,8 @@ function Jt(e) {
|
|
|
2145
2146
|
e && p.push(e);
|
|
2146
2147
|
}
|
|
2147
2148
|
}
|
|
2148
|
-
for (let e of
|
|
2149
|
-
let n = F.get(e.getAttribute(Gt)), r = n ?
|
|
2149
|
+
for (let e of Kt(c, t)) {
|
|
2150
|
+
let n = F.get(e.getAttribute(Gt)), r = n ? R(n, t) : null;
|
|
2150
2151
|
if (!r) continue;
|
|
2151
2152
|
let i = Y.join(s, {
|
|
2152
2153
|
element: e,
|
|
@@ -2157,68 +2158,82 @@ function Jt(e) {
|
|
|
2157
2158
|
}
|
|
2158
2159
|
return () => p.forEach((e) => e());
|
|
2159
2160
|
};
|
|
2160
|
-
if (!
|
|
2161
|
-
if (
|
|
2162
|
-
let { scope: e, decorator: t, bars:
|
|
2161
|
+
if (!c) {
|
|
2162
|
+
if (s === "COMPLETED") {
|
|
2163
|
+
let { scope: e, decorator: t, bars: n } = r();
|
|
2163
2164
|
if (e) {
|
|
2164
2165
|
K(e);
|
|
2165
|
-
for (let t of
|
|
2166
|
+
for (let t of Q(e)) K(t);
|
|
2166
2167
|
}
|
|
2167
2168
|
t && K(t);
|
|
2168
|
-
for (let e of
|
|
2169
|
+
for (let e of n ?? []) e && K(e);
|
|
2169
2170
|
return Z;
|
|
2170
2171
|
}
|
|
2171
|
-
if (
|
|
2172
|
-
let e =
|
|
2172
|
+
if (s === "REPLACING" && a !== i && e.setReplaceTransitionStatus("PENDING"), u && l) {
|
|
2173
|
+
let e = d(`${s}-false`, "passive");
|
|
2173
2174
|
if (e) return e;
|
|
2174
2175
|
}
|
|
2175
2176
|
return Z;
|
|
2176
2177
|
}
|
|
2177
|
-
if (
|
|
2178
|
+
if (s === "COMPLETED") {
|
|
2178
2179
|
e.setDragStatus("IDLE"), e.setReplaceTransitionStatus("IDLE");
|
|
2179
|
-
let { scope: t, decorator:
|
|
2180
|
+
let { scope: t, decorator: n, bars: i } = r();
|
|
2180
2181
|
if (t) {
|
|
2181
2182
|
K(t), t.removeAttribute(X);
|
|
2182
|
-
for (let e of
|
|
2183
|
+
for (let e of Q(t)) K(e);
|
|
2183
2184
|
}
|
|
2184
|
-
|
|
2185
|
+
n && (K(n), n.removeAttribute(X));
|
|
2185
2186
|
for (let e of i ?? []) e && (K(e), e.style.removeProperty("will-change"));
|
|
2186
2187
|
return Z;
|
|
2187
2188
|
}
|
|
2188
|
-
if (
|
|
2189
|
-
let { scope:
|
|
2190
|
-
if (!
|
|
2191
|
-
let
|
|
2189
|
+
if (s === "IDLE") return Z;
|
|
2190
|
+
let { scope: f } = r();
|
|
2191
|
+
if (!f) return Z;
|
|
2192
|
+
let p = () => {
|
|
2192
2193
|
let t = e.getTransitionTaskId();
|
|
2193
2194
|
t && o.resolveTask(t);
|
|
2194
|
-
},
|
|
2195
|
-
if (!(!
|
|
2196
|
-
let
|
|
2197
|
-
|
|
2195
|
+
}, m = we(i), h = `${s}-true`, g = f.getAttribute(X) === "true";
|
|
2196
|
+
if (!(!g && nt(m, h))) return queueMicrotask(p), Z;
|
|
2197
|
+
let _ = R(m, h), v = !g && !!_, y = Xe("screen", i, h), b, x = () => {
|
|
2198
|
+
b !== void 0 && (clearTimeout(b), b = void 0);
|
|
2199
|
+
}, S = (e) => {
|
|
2200
|
+
e.target === f && e.animationName === y && (f.removeEventListener("animationend", S), x(), p());
|
|
2198
2201
|
};
|
|
2199
|
-
|
|
2200
|
-
let
|
|
2201
|
-
|
|
2202
|
-
|
|
2202
|
+
f.addEventListener("animationend", S);
|
|
2203
|
+
let C = v && l ? d(h, "active", p) : null, w = e.getTransitionTaskId(), T = (_.delay + _.duration) * 1e3, E = T + 1500, D = w ? setTimeout(() => void o.resolveTask(w), E) : void 0, ee = T + 250, te = () => {
|
|
2204
|
+
x(), b = setTimeout(O, ee);
|
|
2205
|
+
}, O = () => {
|
|
2206
|
+
if (x(), w) {
|
|
2207
|
+
if (e.getTransitionTaskId() === w && f.isConnected && f.getAttribute("data-flemo-skip-animation") !== "true" && nt(m, h) && !t.has(w)) {
|
|
2208
|
+
t.add(w), f.style.animation = "none", f.offsetWidth, f.style.removeProperty("animation"), te();
|
|
2209
|
+
return;
|
|
2210
|
+
}
|
|
2211
|
+
p();
|
|
2212
|
+
}
|
|
2213
|
+
}, k = (e) => {
|
|
2214
|
+
e.target === f && e.animationName === y && O();
|
|
2215
|
+
}, A = !C && l;
|
|
2216
|
+
return A && (f.addEventListener("animationcancel", k), te()), () => {
|
|
2217
|
+
D !== void 0 && clearTimeout(D), f.removeEventListener("animationend", S), A && f.removeEventListener("animationcancel", k), x(), C?.();
|
|
2203
2218
|
};
|
|
2204
2219
|
} };
|
|
2205
2220
|
}
|
|
2206
2221
|
//#endregion
|
|
2207
2222
|
//#region src/utils/findScrollable.ts
|
|
2208
|
-
function
|
|
2209
|
-
let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o =
|
|
2223
|
+
function Jt(e, t) {
|
|
2224
|
+
let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = Yt(e);
|
|
2210
2225
|
if (!o) return {
|
|
2211
2226
|
element: null,
|
|
2212
2227
|
hasMarker: !1
|
|
2213
2228
|
};
|
|
2214
2229
|
let s = o.closest?.(r);
|
|
2215
|
-
if (s instanceof HTMLElement &&
|
|
2230
|
+
if (s instanceof HTMLElement && $(s, n) && (!a || Xt(s, n))) return {
|
|
2216
2231
|
element: s,
|
|
2217
2232
|
hasMarker: !0
|
|
2218
2233
|
};
|
|
2219
2234
|
let c = o, l = 0;
|
|
2220
2235
|
for (; c && l < i;) {
|
|
2221
|
-
if (
|
|
2236
|
+
if ($(c, n) && (!a || Xt(c, n))) return {
|
|
2222
2237
|
element: c,
|
|
2223
2238
|
hasMarker: !1
|
|
2224
2239
|
};
|
|
@@ -2229,7 +2244,7 @@ function Yt(e, t) {
|
|
|
2229
2244
|
hasMarker: !1
|
|
2230
2245
|
};
|
|
2231
2246
|
}
|
|
2232
|
-
function
|
|
2247
|
+
function Yt(e) {
|
|
2233
2248
|
if (!e) return null;
|
|
2234
2249
|
let t = e, n = typeof t.composedPath == "function" ? t.composedPath() : void 0;
|
|
2235
2250
|
if (n && n.length) {
|
|
@@ -2237,11 +2252,11 @@ function Xt(e) {
|
|
|
2237
2252
|
}
|
|
2238
2253
|
return e instanceof HTMLElement ? e : null;
|
|
2239
2254
|
}
|
|
2240
|
-
function
|
|
2255
|
+
function $(e, t) {
|
|
2241
2256
|
return t === "y" ? e.scrollHeight - e.clientHeight > 1 : e.scrollWidth - e.clientWidth > 1;
|
|
2242
2257
|
}
|
|
2243
|
-
function
|
|
2244
|
-
if (
|
|
2258
|
+
function Xt(e, t) {
|
|
2259
|
+
if (!$(e, t) || typeof window > "u") return !1;
|
|
2245
2260
|
let n = window.getComputedStyle(e), r = t === "y" ? n.overflowY : n.overflowX;
|
|
2246
2261
|
return r === "auto" || r === "scroll" || r === "overlay";
|
|
2247
2262
|
}
|
|
@@ -2425,10 +2440,10 @@ function Qt(e) {
|
|
|
2425
2440
|
};
|
|
2426
2441
|
return {
|
|
2427
2442
|
pointerDown: (t) => {
|
|
2428
|
-
e.isReadyForDrag() && (f =
|
|
2443
|
+
e.isReadyForDrag() && (f = Jt(t.target, {
|
|
2429
2444
|
direction: "x",
|
|
2430
2445
|
verifyByScroll: !0
|
|
2431
|
-
}), p =
|
|
2446
|
+
}), p = Jt(t.target, {
|
|
2432
2447
|
direction: "y",
|
|
2433
2448
|
verifyByScroll: !0
|
|
2434
2449
|
}), m = t.clientX, h = t.clientY, (!f.element && !p.element || f.element || p.element) && (a = !0));
|
|
@@ -2481,7 +2496,7 @@ function an(e) {
|
|
|
2481
2496
|
function on(e, t = {}) {
|
|
2482
2497
|
let n = !1, r = 0, i = [], a = () => {
|
|
2483
2498
|
let r = t.scope;
|
|
2484
|
-
if (!r || typeof r.querySelectorAll != "function") {
|
|
2499
|
+
if (t.decodeWait === !1 || !r || typeof r.querySelectorAll != "function") {
|
|
2485
2500
|
e();
|
|
2486
2501
|
return;
|
|
2487
2502
|
}
|
|
@@ -2504,14 +2519,54 @@ function on(e, t = {}) {
|
|
|
2504
2519
|
i.push(requestAnimationFrame(() => o(e - 1)));
|
|
2505
2520
|
}, s = requestAnimationFrame(() => {
|
|
2506
2521
|
r = requestAnimationFrame(() => o(t.extraFrames ?? 0));
|
|
2507
|
-
})
|
|
2522
|
+
});
|
|
2523
|
+
return () => {
|
|
2524
|
+
n = !0, cancelAnimationFrame(s), r && cancelAnimationFrame(r), i.forEach((e) => cancelAnimationFrame(e));
|
|
2525
|
+
};
|
|
2526
|
+
}
|
|
2527
|
+
function sn(e, t = {}) {
|
|
2528
|
+
let n = on(e, t), r = setTimeout(e, 300);
|
|
2508
2529
|
return () => {
|
|
2509
|
-
n
|
|
2530
|
+
n(), clearTimeout(r);
|
|
2510
2531
|
};
|
|
2511
2532
|
}
|
|
2533
|
+
function cn() {
|
|
2534
|
+
let e = /* @__PURE__ */ new Map(), t = (t, n) => {
|
|
2535
|
+
clearTimeout(n.backstop), e.delete(t);
|
|
2536
|
+
let r = [...n.members];
|
|
2537
|
+
n.members.clear();
|
|
2538
|
+
for (let e of r) e.cancelReadiness(), e.release();
|
|
2539
|
+
}, n = (e) => [...e.members].every((e) => e.ready);
|
|
2540
|
+
return { join: (r, i, a) => {
|
|
2541
|
+
let o = e.get(r);
|
|
2542
|
+
if (!o) {
|
|
2543
|
+
let n = {
|
|
2544
|
+
members: /* @__PURE__ */ new Set(),
|
|
2545
|
+
backstop: setTimeout(() => t(r, n), 300)
|
|
2546
|
+
};
|
|
2547
|
+
e.set(r, n), o = n;
|
|
2548
|
+
}
|
|
2549
|
+
let s = o, c = {
|
|
2550
|
+
release: i,
|
|
2551
|
+
ready: !1,
|
|
2552
|
+
cancelReadiness: on(() => {
|
|
2553
|
+
c.ready = !0, n(s) && t(r, s);
|
|
2554
|
+
}, a)
|
|
2555
|
+
};
|
|
2556
|
+
return s.members.add(c), () => {
|
|
2557
|
+
if (s.members.has(c)) {
|
|
2558
|
+
if (c.cancelReadiness(), s.members.delete(c), s.members.size === 0) {
|
|
2559
|
+
clearTimeout(s.backstop), e.delete(r);
|
|
2560
|
+
return;
|
|
2561
|
+
}
|
|
2562
|
+
n(s) && t(r, s);
|
|
2563
|
+
}
|
|
2564
|
+
};
|
|
2565
|
+
} };
|
|
2566
|
+
}
|
|
2512
2567
|
//#endregion
|
|
2513
2568
|
//#region src/screen/observeBarHeight.ts
|
|
2514
|
-
function
|
|
2569
|
+
function ln(e, t) {
|
|
2515
2570
|
e.offsetHeight > 0 && t(e.offsetHeight);
|
|
2516
2571
|
let n = new ResizeObserver(([e]) => {
|
|
2517
2572
|
e.contentRect.height > 0 && t(e.contentRect.height);
|
|
@@ -2522,14 +2577,14 @@ function sn(e, t) {
|
|
|
2522
2577
|
}
|
|
2523
2578
|
//#endregion
|
|
2524
2579
|
//#region src/screen/observeViewportScrollHeight.ts
|
|
2525
|
-
var
|
|
2526
|
-
function
|
|
2580
|
+
var un = 0;
|
|
2581
|
+
function dn(e) {
|
|
2527
2582
|
let t = 0, n = () => {
|
|
2528
2583
|
cancelAnimationFrame(t), t = requestAnimationFrame(() => {
|
|
2529
2584
|
let t = document.documentElement.scrollHeight - (window.visualViewport?.height || 0);
|
|
2530
2585
|
t = t < 0 ? 0 : t;
|
|
2531
|
-
let n = t -
|
|
2532
|
-
n = n < 0 ? 0 : n,
|
|
2586
|
+
let n = t - un;
|
|
2587
|
+
n = n < 0 ? 0 : n, un ||= t, e(t, n);
|
|
2533
2588
|
});
|
|
2534
2589
|
};
|
|
2535
2590
|
return window.visualViewport?.addEventListener("resize", n), window.visualViewport?.addEventListener("scroll", n), () => {
|
|
@@ -2538,7 +2593,7 @@ function ln(e) {
|
|
|
2538
2593
|
}
|
|
2539
2594
|
//#endregion
|
|
2540
2595
|
//#region src/utils/isOpaqueColor.ts
|
|
2541
|
-
function
|
|
2596
|
+
function fn(e) {
|
|
2542
2597
|
let t = e.trim().toLowerCase();
|
|
2543
2598
|
if (t === "transparent" || t === "") return !1;
|
|
2544
2599
|
if (t.match(/^rgb\(\s*\d+[\s,]+\d+[\s,]+\d+\s*\)$/)) return !0;
|
|
@@ -2549,7 +2604,7 @@ function un(e) {
|
|
|
2549
2604
|
}
|
|
2550
2605
|
//#endregion
|
|
2551
2606
|
//#region src/utils/buildRoutePath.ts
|
|
2552
|
-
function
|
|
2607
|
+
function pn(e, n) {
|
|
2553
2608
|
let i = n ?? {}, a = t(e)(Object.fromEntries(Object.entries(i).map(([e, t]) => [e, String(t)]))), o = (typeof e == "string" ? r(e) : e).tokens.filter((e) => e.type === "param").map((e) => e.name), s = Object.fromEntries(Object.entries(i).filter(([e]) => !o.includes(e))), c = new URLSearchParams(s).toString();
|
|
2554
2609
|
return {
|
|
2555
2610
|
pathname: `${a}${c ? `?${c}` : ""}`,
|
|
@@ -2557,4 +2612,4 @@ function dn(e, n) {
|
|
|
2557
2612
|
};
|
|
2558
2613
|
}
|
|
2559
2614
|
//#endregion
|
|
2560
|
-
export { tn as ANIM_HOLD_RELEASE_BACKSTOP_MS, X as SKIP_ANIMATION_ATTR, o as TaskManger, en as animHoldKey, q as animateInline, Xe as animationName, oe as appendParamsQuery, it as applyTransitionStyles,
|
|
2615
|
+
export { tn as ANIM_HOLD_RELEASE_BACKSTOP_MS, X as SKIP_ANIMATION_ATTR, o as TaskManger, en as animHoldKey, q as animateInline, Xe as animationName, oe as appendParamsQuery, it as applyTransitionStyles, pn as buildRoutePath, Xt as canProgrammaticallyScroll, K as clearInlineAnimation, Ge as collectAnimatedProperties, et as compileTransitionStyles, $t as computeBarRiding, ge as computeScreenFreeze, y as consumeSelfInducedPop, cn as createAnimHoldCoordinator, h as createBrowserHistoryDriver, Te as createDecorator, s as createHistoryStore, b as createHistorySync, O as createMemoryHistoryDriver, k as createNavigateStore, ie as createNavigationController, Oe as createPartTransition, Ee as createRawDecorator, ke as createRawPartTransition, _e as createRawTransition, me as createRouterScope, he as createScreenSelector, de as createScreenStore, g as createSelfPopGuard, se as createStepController, Qt as createSwipeController, j as createTransition, qt as createTransitionEngine, le as createTransitionStore, ye as cupertino, P as decoratorMap, an as eagerlyDecodeImages, H as easingToCss, ee as ensureScopeHistorySync, f as ensureWindowHistoryState, dt as enteringInitialStyle, Jt as findScrollable, c as getMatchedPathPattern, l as getParams, fn as isOpaqueColor, d as isServer, xe as layout, v as markSelfInducedPop, ue as matchesPathname, Se as material, Ce as none, ln as observeBarHeight, dn as observeViewportScrollHeight, $ as overflowsAxis, De as overlay, F as partTransitionMap, ae as readStepParams, ut as registerTransitionDefinitions, te as releaseScopeHistorySync, we as resolveTransition, sn as scheduleAnimHoldRelease, u as seedInitialHistory, p as seedRouterEntry, ce as subscribeStepParamsRestore, B as targetToDecls, M as transitionMap, nt as variantHasAnimation };
|
|
@@ -12,5 +12,11 @@ export declare function eagerlyDecodeImages(scope: HTMLElement | null): void;
|
|
|
12
12
|
export interface AnimHoldReleaseOptions {
|
|
13
13
|
extraFrames?: number;
|
|
14
14
|
scope?: HTMLElement | null;
|
|
15
|
+
decodeWait?: boolean;
|
|
15
16
|
}
|
|
17
|
+
export declare function scheduleAnimHoldReadiness(onReady: () => void, options?: AnimHoldReleaseOptions): () => void;
|
|
16
18
|
export declare function scheduleAnimHoldRelease(release: () => void, options?: AnimHoldReleaseOptions): () => void;
|
|
19
|
+
export interface AnimHoldCoordinator {
|
|
20
|
+
join(key: string, release: () => void, options?: AnimHoldReleaseOptions): () => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function createAnimHoldCoordinator(): AnimHoldCoordinator;
|
package/package.json
CHANGED