@flemo/core 1.8.0 → 1.10.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/core/__tests__/taskManagerBranches.test.d.ts +1 -0
- package/dist/core/engine/__tests__/createSwipeController.gestures.test.d.ts +1 -0
- package/dist/core/engine/__tests__/createTransitionEngine.branches.test.d.ts +1 -0
- package/dist/history/__tests__/historyDriverBranches.test.d.ts +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.mjs +213 -147
- package/dist/navigate/createStepController.d.ts +1 -0
- package/dist/screen/__tests__/screenSurfaces.test.d.ts +1 -0
- package/dist/screen/animStartAnchor.d.ts +7 -1
- package/dist/screen/store.d.ts +6 -0
- package/dist/transition/__tests__/coverageBranches.test.d.ts +6 -0
- package/dist/transition/__tests__/presetSwipeCallbacks.test.d.ts +1 -0
- package/dist/transition/resolveTransition.d.ts +2 -0
- package/dist/utils/__tests__/findScrollableEvent.test.d.ts +1 -0
- package/dist/utils/__tests__/isOpaqueColor.test.d.ts +1 -0
- package/dist/utils/isOpaqueColor.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -8,14 +8,15 @@ export { default as createMemoryHistoryDriver } from './history/memoryHistoryDri
|
|
|
8
8
|
export { default as createNavigateStore, type NavigateStatus, type NavigateStore, type NavigateStoreApi } from './navigate/store';
|
|
9
9
|
export { markSelfInducedPop, consumeSelfInducedPop, createSelfPopGuard, type SelfPopGuard } from './navigate/selfPopGuard';
|
|
10
10
|
export { default as createNavigationController, type NavigationControllerDeps, type DistanceOptions, type NavigateOptions, type PopOptions } from './navigate/createNavigationController';
|
|
11
|
-
export { default as createStepController, readStepParams, appendParamsQuery, type StepControllerDeps } from './navigate/createStepController';
|
|
11
|
+
export { default as createStepController, readStepParams, appendParamsQuery, subscribeStepParamsRestore, type StepControllerDeps } from './navigate/createStepController';
|
|
12
12
|
export { default as createRouterScope, type FlemoStores, type CreateRouterScopeInput } from './core/createRouterScope';
|
|
13
|
-
export { default as createScreenStore, type ScreenStore, type ScreenStoreApi, type SharedBarPresence } from './screen/store';
|
|
13
|
+
export { default as createScreenStore, type ScreenStore, type ScreenStoreApi, type SharedBarPresence, type ScreenSurface } from './screen/store';
|
|
14
14
|
export { default as createScreenSelector, type ScreenSelection } from './screen/createScreenSelector';
|
|
15
15
|
export { default as computeScreenFreeze, type ScreenFreezeInput } from './screen/computeScreenFreeze';
|
|
16
16
|
export { default as createTransition } from './transition/createTransition';
|
|
17
17
|
export { default as createRawTransition } from './transition/createRawTransition';
|
|
18
18
|
export { transitionMap } from './transition/transition';
|
|
19
|
+
export { default as resolveTransition } from './transition/resolveTransition';
|
|
19
20
|
export { default as createTransitionStore, type TransitionStore, type TransitionStoreApi } from './transition/store';
|
|
20
21
|
export { default as createDecorator } from './transition/decorator/createDecorator';
|
|
21
22
|
export { default as createRawDecorator } from './transition/decorator/createRawDecorator';
|
|
@@ -38,7 +39,7 @@ export { SKIP_ANIMATION_ATTR, type TransitionEngine, type TransitionEngineDeps,
|
|
|
38
39
|
export { default as createSwipeController } from './core/engine/createSwipeController';
|
|
39
40
|
export { type SwipeController, type SwipeControllerConfig, type SwipeControllerElements, type SharedBarPresenceLike } from './core/engine/createSwipeController';
|
|
40
41
|
export { default as computeBarRiding, type BarRidingInput } from './screen/computeBarRiding';
|
|
41
|
-
export { animHoldKey, scheduleAnimHoldRelease, ANIM_HOLD_RELEASE_BACKSTOP_MS, type AnimHoldInput } from './screen/animStartAnchor';
|
|
42
|
+
export { animHoldKey, scheduleAnimHoldRelease, eagerlyDecodeImages, ANIM_HOLD_RELEASE_BACKSTOP_MS, type AnimHoldInput } from './screen/animStartAnchor';
|
|
42
43
|
export { default as observeBarHeight } from './screen/observeBarHeight';
|
|
43
44
|
export { default as observeViewportScrollHeight } from './screen/observeViewportScrollHeight';
|
|
44
45
|
export type { RegisterTransition, TransitionName, TransitionVariant, TransitionVariantValue, TransitionOptions, BaseTransition, Transition, SwipeInfo, SwipeAnimate } from './transition/typing';
|
|
@@ -48,5 +49,6 @@ export { default as isServer } from './utils/isServer';
|
|
|
48
49
|
export { default as getParams } from './utils/getParams';
|
|
49
50
|
export { default as getMatchedPathPattern } from './utils/getMatchedPathPattern';
|
|
50
51
|
export { default as matchesPathname } from './utils/matchesPathname';
|
|
52
|
+
export { default as isOpaqueColor } from './utils/isOpaqueColor';
|
|
51
53
|
export { default as buildRoutePath } from './utils/buildRoutePath';
|
|
52
54
|
export { default as findScrollable, overflowsAxis, canProgrammaticallyScroll } from './utils/findScrollable';
|
package/dist/index.mjs
CHANGED
|
@@ -633,9 +633,17 @@ function ne(e) {
|
|
|
633
633
|
}
|
|
634
634
|
};
|
|
635
635
|
}
|
|
636
|
+
function re(e, t) {
|
|
637
|
+
return e.subscribe((e) => {
|
|
638
|
+
let n = e.state;
|
|
639
|
+
n?.step && a.addTask(async () => {
|
|
640
|
+
t(n.params ?? {});
|
|
641
|
+
});
|
|
642
|
+
});
|
|
643
|
+
}
|
|
636
644
|
//#endregion
|
|
637
645
|
//#region src/transition/store.ts
|
|
638
|
-
function
|
|
646
|
+
function T(t = "cupertino") {
|
|
639
647
|
return e((e) => ({
|
|
640
648
|
defaultTransitionName: t,
|
|
641
649
|
setDefaultTransitionName: (t) => e({ defaultTransitionName: t })
|
|
@@ -643,11 +651,12 @@ function re(t = "cupertino") {
|
|
|
643
651
|
}
|
|
644
652
|
//#endregion
|
|
645
653
|
//#region src/screen/store.ts
|
|
646
|
-
function
|
|
654
|
+
function E() {
|
|
647
655
|
return e((e) => ({
|
|
648
656
|
dragStatus: "IDLE",
|
|
649
657
|
replaceTransitionStatus: "IDLE",
|
|
650
658
|
sharedBars: {},
|
|
659
|
+
screenSurfaces: {},
|
|
651
660
|
setDragStatus: (t) => e({ dragStatus: t }),
|
|
652
661
|
setReplaceTransitionStatus: (t) => e({ replaceTransitionStatus: t }),
|
|
653
662
|
registerSharedBars: (t, n) => e((e) => ({ sharedBars: {
|
|
@@ -657,6 +666,17 @@ function T() {
|
|
|
657
666
|
unregisterSharedBars: (t) => e((e) => {
|
|
658
667
|
let n = { ...e.sharedBars };
|
|
659
668
|
return delete n[t], { sharedBars: n };
|
|
669
|
+
}),
|
|
670
|
+
registerScreenSurface: (t, n) => e((e) => {
|
|
671
|
+
let r = e.screenSurfaces[t];
|
|
672
|
+
return r && r.opaqueBackground === n.opaqueBackground ? e : { screenSurfaces: {
|
|
673
|
+
...e.screenSurfaces,
|
|
674
|
+
[t]: n
|
|
675
|
+
} };
|
|
676
|
+
}),
|
|
677
|
+
unregisterScreenSurface: (t) => e((e) => {
|
|
678
|
+
let n = { ...e.screenSurfaces };
|
|
679
|
+
return delete n[t], { screenSurfaces: n };
|
|
660
680
|
})
|
|
661
681
|
}));
|
|
662
682
|
}
|
|
@@ -686,8 +706,8 @@ function ae(e) {
|
|
|
686
706
|
return {
|
|
687
707
|
history: o([c], 0),
|
|
688
708
|
navigate: b(),
|
|
689
|
-
transition:
|
|
690
|
-
screen:
|
|
709
|
+
transition: T(i),
|
|
710
|
+
screen: E(),
|
|
691
711
|
driver: u,
|
|
692
712
|
markSelfInduced: d.mark,
|
|
693
713
|
consume: d.consume
|
|
@@ -714,7 +734,7 @@ function se(e) {
|
|
|
714
734
|
}
|
|
715
735
|
//#endregion
|
|
716
736
|
//#region src/transition/createTransition.ts
|
|
717
|
-
function
|
|
737
|
+
function D({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
|
|
718
738
|
return {
|
|
719
739
|
name: e,
|
|
720
740
|
initial: t,
|
|
@@ -759,7 +779,7 @@ function ce({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
|
|
|
759
779
|
var le = (e, t, n) => {
|
|
760
780
|
let [r, i] = t, [a, o] = n;
|
|
761
781
|
return i === r ? a : a + (e - r) / (i - r) * (o - a);
|
|
762
|
-
}, ue =
|
|
782
|
+
}, ue = D({
|
|
763
783
|
name: "cupertino",
|
|
764
784
|
initial: { x: "100%" },
|
|
765
785
|
idle: {
|
|
@@ -846,7 +866,7 @@ var le = (e, t, n) => {
|
|
|
846
866
|
}), de = (e, t, n) => {
|
|
847
867
|
let [r, i] = t, [a, o] = n;
|
|
848
868
|
return i === r ? a : a + (e - r) / (i - r) * (o - a);
|
|
849
|
-
}, fe =
|
|
869
|
+
}, fe = D({
|
|
850
870
|
name: "layout",
|
|
851
871
|
initial: { opacity: .97 },
|
|
852
872
|
idle: {
|
|
@@ -891,7 +911,7 @@ var le = (e, t, n) => {
|
|
|
891
911
|
}, { duration: .3 })]), c;
|
|
892
912
|
}
|
|
893
913
|
}
|
|
894
|
-
}),
|
|
914
|
+
}), O = D({
|
|
895
915
|
name: "material",
|
|
896
916
|
initial: { y: "100%" },
|
|
897
917
|
idle: {
|
|
@@ -999,7 +1019,7 @@ var le = (e, t, n) => {
|
|
|
999
1019
|
})]), c;
|
|
1000
1020
|
}
|
|
1001
1021
|
}
|
|
1002
|
-
}),
|
|
1022
|
+
}), pe = D({
|
|
1003
1023
|
name: "none",
|
|
1004
1024
|
initial: {},
|
|
1005
1025
|
idle: {
|
|
@@ -1022,15 +1042,20 @@ var le = (e, t, n) => {
|
|
|
1022
1042
|
value: {},
|
|
1023
1043
|
options: { duration: 0 }
|
|
1024
1044
|
}
|
|
1025
|
-
}),
|
|
1026
|
-
["none",
|
|
1045
|
+
}), k = new Map([
|
|
1046
|
+
["none", pe],
|
|
1027
1047
|
["cupertino", ue],
|
|
1028
|
-
["material",
|
|
1048
|
+
["material", O],
|
|
1029
1049
|
["layout", fe]
|
|
1030
1050
|
]);
|
|
1031
1051
|
//#endregion
|
|
1052
|
+
//#region src/transition/resolveTransition.ts
|
|
1053
|
+
function A(e) {
|
|
1054
|
+
return k.get(e) ?? k.get("none");
|
|
1055
|
+
}
|
|
1056
|
+
//#endregion
|
|
1032
1057
|
//#region src/transition/decorator/createDecorator.ts
|
|
1033
|
-
function
|
|
1058
|
+
function me({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
1034
1059
|
return {
|
|
1035
1060
|
name: e,
|
|
1036
1061
|
initial: t,
|
|
@@ -1051,7 +1076,7 @@ function he({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
|
1051
1076
|
}
|
|
1052
1077
|
//#endregion
|
|
1053
1078
|
//#region src/transition/decorator/createRawDecorator.ts
|
|
1054
|
-
function
|
|
1079
|
+
function he({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
|
|
1055
1080
|
return {
|
|
1056
1081
|
name: e,
|
|
1057
1082
|
initial: t,
|
|
@@ -1072,30 +1097,30 @@ function ge({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
|
|
|
1072
1097
|
}
|
|
1073
1098
|
//#endregion
|
|
1074
1099
|
//#region src/transition/decorator/overlay.ts
|
|
1075
|
-
var
|
|
1100
|
+
var j = "rgba(0, 0, 0, 0.3)", M = me({
|
|
1076
1101
|
name: "overlay",
|
|
1077
1102
|
initial: {
|
|
1078
1103
|
opacity: 0,
|
|
1079
|
-
backgroundColor:
|
|
1104
|
+
backgroundColor: j
|
|
1080
1105
|
},
|
|
1081
1106
|
idle: {
|
|
1082
1107
|
value: {
|
|
1083
1108
|
opacity: 0,
|
|
1084
|
-
backgroundColor:
|
|
1109
|
+
backgroundColor: j
|
|
1085
1110
|
},
|
|
1086
1111
|
options: { duration: 0 }
|
|
1087
1112
|
},
|
|
1088
1113
|
enter: {
|
|
1089
1114
|
value: {
|
|
1090
1115
|
opacity: 1,
|
|
1091
|
-
backgroundColor:
|
|
1116
|
+
backgroundColor: j
|
|
1092
1117
|
},
|
|
1093
1118
|
options: { duration: .7 }
|
|
1094
1119
|
},
|
|
1095
1120
|
exit: {
|
|
1096
1121
|
value: {
|
|
1097
1122
|
opacity: 0,
|
|
1098
|
-
backgroundColor:
|
|
1123
|
+
backgroundColor: j
|
|
1099
1124
|
},
|
|
1100
1125
|
options: { duration: .6 }
|
|
1101
1126
|
},
|
|
@@ -1104,10 +1129,10 @@ var O = "rgba(0, 0, 0, 0.3)", _e = he({
|
|
|
1104
1129
|
onSwipe: (e, t, { animate: n, prevDecorator: r }) => n(r, { opacity: Math.max(0, 1 - t / 100) }, { duration: 0 }),
|
|
1105
1130
|
onSwipeEnd: (e, { animate: t, prevDecorator: n }) => t(n, { opacity: +!e }, { duration: .3 })
|
|
1106
1131
|
}
|
|
1107
|
-
}),
|
|
1132
|
+
}), N = new Map([["overlay", M]]);
|
|
1108
1133
|
//#endregion
|
|
1109
1134
|
//#region src/transition/partTransition/createPartTransition.ts
|
|
1110
|
-
function
|
|
1135
|
+
function ge({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
1111
1136
|
return {
|
|
1112
1137
|
name: e,
|
|
1113
1138
|
initial: t,
|
|
@@ -1128,7 +1153,7 @@ function ve({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
|
1128
1153
|
}
|
|
1129
1154
|
//#endregion
|
|
1130
1155
|
//#region src/transition/partTransition/createRawPartTransition.ts
|
|
1131
|
-
function
|
|
1156
|
+
function _e({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
|
|
1132
1157
|
return {
|
|
1133
1158
|
name: e,
|
|
1134
1159
|
initial: t,
|
|
@@ -1149,7 +1174,7 @@ function ye({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
|
|
|
1149
1174
|
}
|
|
1150
1175
|
//#endregion
|
|
1151
1176
|
//#region src/transition/partTransition/partTransition.ts
|
|
1152
|
-
var
|
|
1177
|
+
var P = /* @__PURE__ */ new Map(), F = {
|
|
1153
1178
|
"IDLE-true": "self",
|
|
1154
1179
|
"IDLE-false": "self",
|
|
1155
1180
|
"PUSHING-true": "initial",
|
|
@@ -1160,7 +1185,7 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1160
1185
|
"POPPING-false": "PUSHING-false",
|
|
1161
1186
|
"COMPLETED-true": "self",
|
|
1162
1187
|
"COMPLETED-false": "self"
|
|
1163
|
-
},
|
|
1188
|
+
}, ve = Object.keys(F), ye = ve, be = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), xe = (e) => typeof e == "object" && !!e && !Array.isArray(e), Se = 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(".")), Ce = (e, t) => t.startsWith("--") || Se.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, we = (e, t) => typeof t == "number" ? Ce(t, e) : typeof t == "string" ? t : "", Te = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Ee = new Set([
|
|
1164
1189
|
"x",
|
|
1165
1190
|
"y",
|
|
1166
1191
|
"z",
|
|
@@ -1171,7 +1196,7 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1171
1196
|
"rotateX",
|
|
1172
1197
|
"rotateY",
|
|
1173
1198
|
"rotateZ"
|
|
1174
|
-
]),
|
|
1199
|
+
]), De = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, Oe = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, ke = /^1(\.0+)?$/, Ae = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 ? !0 : typeof t == "string" ? ke.test(t.trim()) : !1 : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 ? !0 : typeof t == "string" ? Oe.test(t.trim()) : !1 : t === 0 ? !0 : typeof t == "string" ? De.test(t.trim()) : !1, je = (e, t) => {
|
|
1175
1200
|
switch (e) {
|
|
1176
1201
|
case "x": return `translateX(${t})`;
|
|
1177
1202
|
case "y": return `translateY(${t})`;
|
|
@@ -1185,23 +1210,23 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1185
1210
|
case "rotateY": return `rotateY(${t})`;
|
|
1186
1211
|
default: return "";
|
|
1187
1212
|
}
|
|
1188
|
-
},
|
|
1213
|
+
}, Me = (e) => {
|
|
1189
1214
|
let t = /* @__PURE__ */ new Set(), n = !1, r = (e) => {
|
|
1190
|
-
if (
|
|
1215
|
+
if (xe(e)) for (let r of Object.keys(e)) {
|
|
1191
1216
|
let i = e[r];
|
|
1192
|
-
|
|
1217
|
+
we(r, i) !== "" && (Ee.has(r) ? n = !0 : t.add(Te(r)));
|
|
1193
1218
|
}
|
|
1194
1219
|
};
|
|
1195
1220
|
r(e.initial);
|
|
1196
1221
|
for (let t of Object.values(e.variants)) r(t.value);
|
|
1197
1222
|
return n && t.add("transform"), Array.from(t);
|
|
1198
|
-
},
|
|
1199
|
-
if (!
|
|
1223
|
+
}, I = (e) => {
|
|
1224
|
+
if (!xe(e)) return [];
|
|
1200
1225
|
let t = [], n = !0, r = [];
|
|
1201
1226
|
for (let i of Object.keys(e)) {
|
|
1202
|
-
let a = e[i], o =
|
|
1203
|
-
o !== "" && (
|
|
1204
|
-
property:
|
|
1227
|
+
let a = e[i], o = we(i, a);
|
|
1228
|
+
o !== "" && (Ee.has(i) ? (t.push(je(i, o)), Ae(i, a) || (n = !1)) : r.push({
|
|
1229
|
+
property: Te(i),
|
|
1205
1230
|
value: o
|
|
1206
1231
|
}));
|
|
1207
1232
|
}
|
|
@@ -1209,7 +1234,7 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1209
1234
|
property: "transform",
|
|
1210
1235
|
value: n ? "none" : t.join(" ")
|
|
1211
1236
|
}), r;
|
|
1212
|
-
},
|
|
1237
|
+
}, L = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), R = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
|
|
1213
1238
|
linear: "linear",
|
|
1214
1239
|
easeIn: "ease-in",
|
|
1215
1240
|
easeOut: "ease-out",
|
|
@@ -1219,11 +1244,11 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1219
1244
|
backIn: "cubic-bezier(0.31, 0.01, 0.66, -0.59)",
|
|
1220
1245
|
backOut: "cubic-bezier(0.33, 1.53, 0.69, 0.99)",
|
|
1221
1246
|
anticipate: "cubic-bezier(0.36, 0, 0.66, -0.56)"
|
|
1222
|
-
}[e] ?? "ease" : "ease",
|
|
1247
|
+
}[e] ?? "ease" : "ease", z = (e) => {
|
|
1223
1248
|
if (!e) return 0;
|
|
1224
1249
|
let t = e.duration;
|
|
1225
1250
|
return typeof t == "number" && t >= 0 ? t : 0;
|
|
1226
|
-
},
|
|
1251
|
+
}, B = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, V = (e, t) => {
|
|
1227
1252
|
let [n, r] = t.split("-");
|
|
1228
1253
|
return `[data-flemo-screen][data-flemo-transition="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
|
|
1229
1254
|
}, Ne = (e, t) => {
|
|
@@ -1235,17 +1260,17 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1235
1260
|
}, Fe = (e, t) => {
|
|
1236
1261
|
let [n, r] = t.split("-");
|
|
1237
1262
|
return `[data-flemo-part-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
|
|
1238
|
-
},
|
|
1239
|
-
let o =
|
|
1263
|
+
}, H = (e, t, n) => `flemo-${e}-${be(t)}-${n}`, U = (e, t, n, r, i, a) => {
|
|
1264
|
+
let o = I(r), s = I(i.value), c = z(i.options), l = B(i.options), u = R(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${Pe(t, n)}` : d;
|
|
1240
1265
|
if (s.length === 0 && o.length === 0) return "";
|
|
1241
|
-
if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${
|
|
1242
|
-
let p =
|
|
1266
|
+
if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${L(s)}\n animation: none;\n}`;
|
|
1267
|
+
let p = H(e, t, n), m = [
|
|
1243
1268
|
`@keyframes ${p} {`,
|
|
1244
1269
|
" from {",
|
|
1245
|
-
|
|
1270
|
+
L(o).replace(/^/gm, " "),
|
|
1246
1271
|
" }",
|
|
1247
1272
|
" to {",
|
|
1248
|
-
|
|
1273
|
+
L(s).replace(/^/gm, " "),
|
|
1249
1274
|
" }",
|
|
1250
1275
|
"}"
|
|
1251
1276
|
].join("\n"), h = [
|
|
@@ -1255,83 +1280,90 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1255
1280
|
l > 0 ? `${l}s` : null,
|
|
1256
1281
|
"both"
|
|
1257
1282
|
].filter(Boolean).join(" "), g = Array.from(new Set([...o.map((e) => e.property), ...s.map((e) => e.property)])), _ = g.length > 0 ? ` will-change: ${g.join(", ")};\n` : "", v = n.split("-")[0];
|
|
1258
|
-
return `${m}\n${`${f} {\n animation: ${h};\n${_}${v === "PUSHING" || v === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}`;
|
|
1259
|
-
},
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1283
|
+
return `${m}\n${`${f} {\n animation: ${h};\n${_}${v === "PUSHING" || v === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}${e === "screen" && n.endsWith("-false") && Ie(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park"] {\n animation: none;\n${L(s)}\n}` : ""}`;
|
|
1284
|
+
}, Ie = (e) => {
|
|
1285
|
+
if (!e) return !1;
|
|
1286
|
+
if (e.opacity === 0) return !0;
|
|
1287
|
+
let t = (e) => typeof e == "string" && e.trim().endsWith("%") && Math.abs(parseFloat(e)) >= 100;
|
|
1288
|
+
return t(e.x) || t(e.y);
|
|
1289
|
+
}, W = (e, t, n, r) => {
|
|
1290
|
+
let i = I(r.value);
|
|
1291
|
+
return i.length === 0 ? "" : `${e(t, n)} {\n${L(i)}\n}`;
|
|
1292
|
+
}, Le = (e, t, n = []) => {
|
|
1263
1293
|
let r = [];
|
|
1264
1294
|
for (let t of e) {
|
|
1265
1295
|
let e = t.name;
|
|
1266
|
-
for (let n of
|
|
1267
|
-
let i = t.variants[n], a =
|
|
1296
|
+
for (let n of ve) {
|
|
1297
|
+
let i = t.variants[n], a = F[n];
|
|
1268
1298
|
if (a === "self") {
|
|
1269
|
-
r.push(
|
|
1299
|
+
r.push(W(V, e, n, i));
|
|
1270
1300
|
continue;
|
|
1271
1301
|
}
|
|
1272
1302
|
let o = a === "initial" ? t.initial : t.variants[a].value;
|
|
1273
|
-
r.push(
|
|
1303
|
+
r.push(U("screen", e, n, o, i, V));
|
|
1274
1304
|
}
|
|
1275
1305
|
}
|
|
1276
1306
|
for (let e of t) {
|
|
1277
1307
|
let t = e.name;
|
|
1278
|
-
for (let n of
|
|
1279
|
-
let i = e.variants[n], a =
|
|
1308
|
+
for (let n of ye) {
|
|
1309
|
+
let i = e.variants[n], a = F[n];
|
|
1280
1310
|
if (a === "self") {
|
|
1281
|
-
r.push(
|
|
1311
|
+
r.push(W(Ne, t, n, i));
|
|
1282
1312
|
continue;
|
|
1283
1313
|
}
|
|
1284
1314
|
let o = a === "initial" ? e.initial : e.variants[a].value;
|
|
1285
|
-
r.push(
|
|
1315
|
+
r.push(U("decorator", t, n, o, i, Ne));
|
|
1286
1316
|
}
|
|
1287
1317
|
}
|
|
1288
1318
|
for (let e of n) {
|
|
1289
1319
|
let t = e.name;
|
|
1290
|
-
for (let n of
|
|
1291
|
-
let i = e.variants[n], a =
|
|
1320
|
+
for (let n of ye) {
|
|
1321
|
+
let i = e.variants[n], a = F[n];
|
|
1292
1322
|
if (a === "self") {
|
|
1293
|
-
r.push(
|
|
1323
|
+
r.push(W(Fe, t, n, i));
|
|
1294
1324
|
continue;
|
|
1295
1325
|
}
|
|
1296
1326
|
let o = a === "initial" ? e.initial : e.variants[a].value;
|
|
1297
|
-
r.push(
|
|
1327
|
+
r.push(U("part", t, n, o, i, Fe));
|
|
1298
1328
|
}
|
|
1299
1329
|
}
|
|
1300
|
-
return [...r.filter((e) => e.length > 0),
|
|
1301
|
-
},
|
|
1330
|
+
return [...r.filter((e) => e.length > 0), Re].join("\n\n");
|
|
1331
|
+
}, Re = [
|
|
1302
1332
|
"[data-flemo-anim-hold=\"true\"],",
|
|
1303
|
-
"[data-flemo-anim-hold=\"
|
|
1333
|
+
"[data-flemo-anim-hold=\"park\"],",
|
|
1334
|
+
"[data-flemo-anim-hold=\"true\"] [data-flemo-part-name],",
|
|
1335
|
+
"[data-flemo-anim-hold=\"park\"] [data-flemo-part-name] {",
|
|
1304
1336
|
" animation-play-state: paused !important;",
|
|
1305
1337
|
"}"
|
|
1306
|
-
].join("\n"),
|
|
1307
|
-
let n =
|
|
1338
|
+
].join("\n"), ze = (e, t) => {
|
|
1339
|
+
let n = F[t];
|
|
1308
1340
|
if (n === "self") return !1;
|
|
1309
|
-
let r = e.variants[t], i =
|
|
1341
|
+
let r = e.variants[t], i = z(r.options), a = B(r.options);
|
|
1310
1342
|
if (i <= 0 && a <= 0) return !1;
|
|
1311
|
-
let o =
|
|
1343
|
+
let o = I(n === "initial" ? e.initial : e.variants[n].value), s = I(r.value);
|
|
1312
1344
|
return o.length > 0 || s.length > 0;
|
|
1313
|
-
},
|
|
1314
|
-
function
|
|
1345
|
+
}, Be = "data-flemo";
|
|
1346
|
+
function G() {
|
|
1315
1347
|
if (u()) return;
|
|
1316
|
-
let e =
|
|
1317
|
-
t || (t = document.createElement("style"), t.setAttribute(
|
|
1348
|
+
let e = Le(k.values(), N.values(), P.values()), t = document.head.querySelector(`style[${Be}]`);
|
|
1349
|
+
t || (t = document.createElement("style"), t.setAttribute(Be, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
|
|
1318
1350
|
}
|
|
1319
1351
|
//#endregion
|
|
1320
1352
|
//#region src/transition/registerTransitionDefinitions.ts
|
|
1321
|
-
function
|
|
1322
|
-
for (let t of e)
|
|
1323
|
-
for (let e of t)
|
|
1324
|
-
for (let e of n)
|
|
1325
|
-
return
|
|
1326
|
-
for (let t of e)
|
|
1327
|
-
for (let e of t)
|
|
1328
|
-
for (let e of n)
|
|
1329
|
-
|
|
1353
|
+
function Ve(e, t, n = []) {
|
|
1354
|
+
for (let t of e) k.set(t.name, t);
|
|
1355
|
+
for (let e of t) N.set(e.name, e);
|
|
1356
|
+
for (let e of n) P.set(e.name, e);
|
|
1357
|
+
return G(), () => {
|
|
1358
|
+
for (let t of e) k.delete(t.name);
|
|
1359
|
+
for (let e of t) N.delete(e.name);
|
|
1360
|
+
for (let e of n) P.delete(e.name);
|
|
1361
|
+
G();
|
|
1330
1362
|
};
|
|
1331
1363
|
}
|
|
1332
1364
|
//#endregion
|
|
1333
1365
|
//#region src/transition/enteringInitialStyle.ts
|
|
1334
|
-
function
|
|
1366
|
+
function He(e) {
|
|
1335
1367
|
let { initial: t, isActive: n, status: r } = e;
|
|
1336
1368
|
if (!n || r !== "PUSHING" && r !== "REPLACING") return {};
|
|
1337
1369
|
let i = {};
|
|
@@ -1339,35 +1371,35 @@ function Ve(e) {
|
|
|
1339
1371
|
}
|
|
1340
1372
|
//#endregion
|
|
1341
1373
|
//#region src/transition/animateInline.ts
|
|
1342
|
-
var
|
|
1343
|
-
let n =
|
|
1344
|
-
n || (n = /* @__PURE__ */ new Set(),
|
|
1345
|
-
},
|
|
1374
|
+
var Ue = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, K = /* @__PURE__ */ new WeakMap(), We = (e, t) => {
|
|
1375
|
+
let n = K.get(e);
|
|
1376
|
+
n || (n = /* @__PURE__ */ new Set(), K.set(e, n)), n.add(t);
|
|
1377
|
+
}, q = (e, t) => {
|
|
1346
1378
|
if (e.style.transition = "", t) {
|
|
1347
|
-
let n =
|
|
1379
|
+
let n = K.get(e);
|
|
1348
1380
|
for (let r of t) e.style.removeProperty(r), n?.delete(r);
|
|
1349
1381
|
return;
|
|
1350
1382
|
}
|
|
1351
|
-
let n =
|
|
1383
|
+
let n = K.get(e);
|
|
1352
1384
|
if (n && n.size > 0) {
|
|
1353
1385
|
for (let t of n) e.style.removeProperty(t);
|
|
1354
1386
|
n.clear();
|
|
1355
1387
|
return;
|
|
1356
1388
|
}
|
|
1357
1389
|
e.style.removeProperty("transform"), e.style.removeProperty("opacity");
|
|
1358
|
-
},
|
|
1359
|
-
if (!
|
|
1360
|
-
let r = e, i =
|
|
1390
|
+
}, J = (e, t, n = {}) => {
|
|
1391
|
+
if (!Ue(e)) return Promise.resolve();
|
|
1392
|
+
let r = e, i = I(t);
|
|
1361
1393
|
if (i.length === 0) return Promise.resolve();
|
|
1362
|
-
let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s =
|
|
1394
|
+
let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s = R(n.ease);
|
|
1363
1395
|
if (a <= 0 && o <= 0) {
|
|
1364
1396
|
r.style.transition = "none";
|
|
1365
|
-
for (let e of i) r.style.setProperty(e.property, e.value),
|
|
1397
|
+
for (let e of i) r.style.setProperty(e.property, e.value), We(r, e.property);
|
|
1366
1398
|
return Promise.resolve();
|
|
1367
1399
|
}
|
|
1368
1400
|
let c = i.map((e) => `${e.property} ${a}s ${s} ${o}s`).join(", ");
|
|
1369
1401
|
r.style.transition = c, r.offsetWidth;
|
|
1370
|
-
for (let e of i) r.style.setProperty(e.property, e.value),
|
|
1402
|
+
for (let e of i) r.style.setProperty(e.property, e.value), We(r, e.property);
|
|
1371
1403
|
return new Promise((e) => {
|
|
1372
1404
|
let t = !1, n = () => {
|
|
1373
1405
|
t || (t = !0, r.removeEventListener("transitionend", i), e());
|
|
@@ -1376,27 +1408,27 @@ var He = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, W = /* @__
|
|
|
1376
1408
|
};
|
|
1377
1409
|
r.addEventListener("transitionend", i), setTimeout(n, (a + o) * 1e3 + 60);
|
|
1378
1410
|
});
|
|
1379
|
-
},
|
|
1380
|
-
function
|
|
1411
|
+
}, Y = "data-flemo-skip-animation", X = () => {};
|
|
1412
|
+
function Ge(e) {
|
|
1381
1413
|
return { driveScreenLifecycle: (t) => {
|
|
1382
1414
|
let { getElements: n, transitionName: r, prevTransitionName: i, status: o, isActive: s } = t;
|
|
1383
|
-
if (!s) return o === "REPLACING" && i !== r && e.setReplaceTransitionStatus("PENDING"),
|
|
1415
|
+
if (!s) return o === "REPLACING" && i !== r && e.setReplaceTransitionStatus("PENDING"), X;
|
|
1384
1416
|
if (o === "COMPLETED") {
|
|
1385
1417
|
e.setDragStatus("IDLE"), e.setReplaceTransitionStatus("IDLE");
|
|
1386
1418
|
let { scope: t, decorator: r, bars: i } = n();
|
|
1387
|
-
t && (
|
|
1388
|
-
for (let e of i ?? []) e && (
|
|
1389
|
-
return
|
|
1419
|
+
t && (q(t), t.removeAttribute(Y)), r && (q(r), r.removeAttribute(Y));
|
|
1420
|
+
for (let e of i ?? []) e && (q(e), e.style.removeProperty("will-change"));
|
|
1421
|
+
return X;
|
|
1390
1422
|
}
|
|
1391
|
-
if (o === "IDLE") return
|
|
1423
|
+
if (o === "IDLE") return X;
|
|
1392
1424
|
let { scope: c } = n();
|
|
1393
|
-
if (!c) return
|
|
1425
|
+
if (!c) return X;
|
|
1394
1426
|
let l = () => {
|
|
1395
1427
|
let t = e.getTransitionTaskId();
|
|
1396
1428
|
t && a.resolveTask(t);
|
|
1397
|
-
}, u =
|
|
1398
|
-
if (!(c.getAttribute("data-flemo-skip-animation") !== "true" &&
|
|
1399
|
-
let f =
|
|
1429
|
+
}, u = A(r), d = `${o}-true`;
|
|
1430
|
+
if (!(c.getAttribute("data-flemo-skip-animation") !== "true" && ze(u, d))) return queueMicrotask(l), X;
|
|
1431
|
+
let f = H("screen", r, d), p = (e) => {
|
|
1400
1432
|
e.target === c && e.animationName === f && (c.removeEventListener("animationend", p), l());
|
|
1401
1433
|
};
|
|
1402
1434
|
return c.addEventListener("animationend", p), () => {
|
|
@@ -1406,20 +1438,20 @@ function We(e) {
|
|
|
1406
1438
|
}
|
|
1407
1439
|
//#endregion
|
|
1408
1440
|
//#region src/utils/findScrollable.ts
|
|
1409
|
-
function
|
|
1410
|
-
let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o =
|
|
1441
|
+
function Z(e, t) {
|
|
1442
|
+
let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = Ke(e);
|
|
1411
1443
|
if (!o) return {
|
|
1412
1444
|
element: null,
|
|
1413
1445
|
hasMarker: !1
|
|
1414
1446
|
};
|
|
1415
1447
|
let s = o.closest?.(r);
|
|
1416
|
-
if (s instanceof HTMLElement &&
|
|
1448
|
+
if (s instanceof HTMLElement && Q(s, n) && (!a || $(s, n))) return {
|
|
1417
1449
|
element: s,
|
|
1418
1450
|
hasMarker: !0
|
|
1419
1451
|
};
|
|
1420
1452
|
let c = o, l = 0;
|
|
1421
1453
|
for (; c && l < i;) {
|
|
1422
|
-
if (
|
|
1454
|
+
if (Q(c, n) && (!a || $(c, n))) return {
|
|
1423
1455
|
element: c,
|
|
1424
1456
|
hasMarker: !1
|
|
1425
1457
|
};
|
|
@@ -1430,7 +1462,7 @@ function Y(e, t) {
|
|
|
1430
1462
|
hasMarker: !1
|
|
1431
1463
|
};
|
|
1432
1464
|
}
|
|
1433
|
-
function
|
|
1465
|
+
function Ke(e) {
|
|
1434
1466
|
if (!e) return null;
|
|
1435
1467
|
let t = e, n = typeof t.composedPath == "function" ? t.composedPath() : void 0;
|
|
1436
1468
|
if (n && n.length) {
|
|
@@ -1438,18 +1470,18 @@ function Ge(e) {
|
|
|
1438
1470
|
}
|
|
1439
1471
|
return e instanceof HTMLElement ? e : null;
|
|
1440
1472
|
}
|
|
1441
|
-
function
|
|
1473
|
+
function Q(e, t) {
|
|
1442
1474
|
return t === "y" ? e.scrollHeight - e.clientHeight > 1 : e.scrollWidth - e.clientWidth > 1;
|
|
1443
1475
|
}
|
|
1444
|
-
function
|
|
1445
|
-
if (!
|
|
1476
|
+
function $(e, t) {
|
|
1477
|
+
if (!Q(e, t) || typeof window > "u") return !1;
|
|
1446
1478
|
let n = window.getComputedStyle(e), r = t === "y" ? n.overflowY : n.overflowX;
|
|
1447
1479
|
return r === "auto" || r === "scroll" || r === "overlay";
|
|
1448
1480
|
}
|
|
1449
1481
|
//#endregion
|
|
1450
1482
|
//#region src/core/engine/createSwipeController.ts
|
|
1451
|
-
var
|
|
1452
|
-
function
|
|
1483
|
+
var qe = "data-flemo-skip-animation";
|
|
1484
|
+
function Je(e) {
|
|
1453
1485
|
let t = null, n = null, r = {
|
|
1454
1486
|
current: [],
|
|
1455
1487
|
prev: []
|
|
@@ -1495,9 +1527,9 @@ function Ke(e) {
|
|
|
1495
1527
|
y: e.clientY
|
|
1496
1528
|
}, u = t;
|
|
1497
1529
|
}, v = (n, i, a) => {
|
|
1498
|
-
let o =
|
|
1499
|
-
if (n === e.getElements().scope) for (let e of r.current)
|
|
1500
|
-
else if (n === t) for (let e of r.prev)
|
|
1530
|
+
let o = J(n, i, a);
|
|
1531
|
+
if (n === e.getElements().scope) for (let e of r.current) J(e, i, a);
|
|
1532
|
+
else if (n === t) for (let e of r.prev) J(e, i, a);
|
|
1501
1533
|
return o;
|
|
1502
1534
|
}, y = (t) => {
|
|
1503
1535
|
let n = e.getPartnerBars(), i = [], { sharedTopBar: a, sharedBottomBar: o } = e.getElements();
|
|
@@ -1511,12 +1543,12 @@ function Ke(e) {
|
|
|
1511
1543
|
current: i,
|
|
1512
1544
|
prev: s
|
|
1513
1545
|
};
|
|
1514
|
-
let c =
|
|
1546
|
+
let c = Me(e.getTransition()).join(", ");
|
|
1515
1547
|
for (let e of i) e.style.willChange = c;
|
|
1516
1548
|
for (let e of s) e.style.willChange = c;
|
|
1517
1549
|
}, b = () => {
|
|
1518
|
-
for (let e of r.current)
|
|
1519
|
-
for (let e of r.prev)
|
|
1550
|
+
for (let e of r.current) q(e), e.style.removeProperty("will-change");
|
|
1551
|
+
for (let e of r.prev) q(e), e.style.removeProperty("will-change");
|
|
1520
1552
|
r = {
|
|
1521
1553
|
current: [],
|
|
1522
1554
|
prev: []
|
|
@@ -1529,10 +1561,10 @@ function Ke(e) {
|
|
|
1529
1561
|
};
|
|
1530
1562
|
}, S = (e, t, n) => {
|
|
1531
1563
|
let r = (r, i) => {
|
|
1532
|
-
let a =
|
|
1564
|
+
let a = P.get(r.getAttribute("data-flemo-part-name"));
|
|
1533
1565
|
if (!a) return;
|
|
1534
1566
|
let o = {
|
|
1535
|
-
animate:
|
|
1567
|
+
animate: J,
|
|
1536
1568
|
element: r,
|
|
1537
1569
|
active: i
|
|
1538
1570
|
};
|
|
@@ -1541,7 +1573,7 @@ function Ke(e) {
|
|
|
1541
1573
|
for (let e of i.current) r(e, !0);
|
|
1542
1574
|
for (let e of i.prev) r(e, !1);
|
|
1543
1575
|
}, C = () => {
|
|
1544
|
-
for (let e of [...i.current, ...i.prev])
|
|
1576
|
+
for (let e of [...i.current, ...i.prev]) q(e);
|
|
1545
1577
|
i = {
|
|
1546
1578
|
current: [],
|
|
1547
1579
|
prev: []
|
|
@@ -1570,7 +1602,7 @@ function Ke(e) {
|
|
|
1570
1602
|
prevScreen: t,
|
|
1571
1603
|
onStart: (e) => {
|
|
1572
1604
|
m?.onSwipeStart?.(e, {
|
|
1573
|
-
animate:
|
|
1605
|
+
animate: J,
|
|
1574
1606
|
currentDecorator: f,
|
|
1575
1607
|
prevDecorator: n
|
|
1576
1608
|
}), S("start", e, 0);
|
|
@@ -1587,7 +1619,7 @@ function Ke(e) {
|
|
|
1587
1619
|
prevScreen: t,
|
|
1588
1620
|
onProgress: (e, t) => {
|
|
1589
1621
|
c?.onSwipe?.(e, t, {
|
|
1590
|
-
animate:
|
|
1622
|
+
animate: J,
|
|
1591
1623
|
currentDecorator: o,
|
|
1592
1624
|
prevDecorator: n
|
|
1593
1625
|
}), S("swipe", e, t);
|
|
@@ -1606,32 +1638,32 @@ function Ke(e) {
|
|
|
1606
1638
|
prevScreen: t,
|
|
1607
1639
|
onStart: (e) => {
|
|
1608
1640
|
u?.onSwipeEnd?.(e, {
|
|
1609
|
-
animate:
|
|
1641
|
+
animate: J,
|
|
1610
1642
|
currentDecorator: l,
|
|
1611
1643
|
prevDecorator: n
|
|
1612
1644
|
}), S("end", e, 0);
|
|
1613
1645
|
}
|
|
1614
1646
|
})) {
|
|
1615
|
-
c?.setAttribute(
|
|
1647
|
+
c?.setAttribute(qe, "true"), l?.setAttribute(qe, "true");
|
|
1616
1648
|
for (let e of r.current) e.style.removeProperty("will-change");
|
|
1617
|
-
for (let e of r.prev)
|
|
1649
|
+
for (let e of r.prev) q(e), e.style.removeProperty("will-change");
|
|
1618
1650
|
r = {
|
|
1619
1651
|
current: [],
|
|
1620
1652
|
prev: []
|
|
1621
1653
|
};
|
|
1622
|
-
for (let e of i.prev)
|
|
1654
|
+
for (let e of i.prev) q(e);
|
|
1623
1655
|
i = {
|
|
1624
1656
|
current: [],
|
|
1625
1657
|
prev: []
|
|
1626
1658
|
}, e.back();
|
|
1627
|
-
} else c &&
|
|
1659
|
+
} else c && q(c), t && q(t), l && q(l), n && q(n), b(), C(), e.setDragStatus("IDLE");
|
|
1628
1660
|
};
|
|
1629
1661
|
return {
|
|
1630
1662
|
pointerDown: (t) => {
|
|
1631
|
-
e.isReadyForDrag() && (f =
|
|
1663
|
+
e.isReadyForDrag() && (f = Z(t.target, {
|
|
1632
1664
|
direction: "x",
|
|
1633
1665
|
verifyByScroll: !0
|
|
1634
|
-
}), p =
|
|
1666
|
+
}), p = Z(t.target, {
|
|
1635
1667
|
direction: "y",
|
|
1636
1668
|
verifyByScroll: !0
|
|
1637
1669
|
}), m = t.clientX, h = t.clientY, (!f.element && !p.element || f.element || p.element) && (a = !0));
|
|
@@ -1660,7 +1692,7 @@ function Ke(e) {
|
|
|
1660
1692
|
}
|
|
1661
1693
|
//#endregion
|
|
1662
1694
|
//#region src/screen/computeBarRiding.ts
|
|
1663
|
-
function
|
|
1695
|
+
function Ye(e) {
|
|
1664
1696
|
return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? {
|
|
1665
1697
|
app: !1,
|
|
1666
1698
|
nav: !1
|
|
@@ -1671,21 +1703,44 @@ function qe(e) {
|
|
|
1671
1703
|
}
|
|
1672
1704
|
//#endregion
|
|
1673
1705
|
//#region src/screen/animStartAnchor.ts
|
|
1674
|
-
function
|
|
1706
|
+
function Xe(e) {
|
|
1675
1707
|
return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? null : `${e.status}:${e.transitionName}`;
|
|
1676
1708
|
}
|
|
1677
|
-
var
|
|
1678
|
-
function
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1709
|
+
var Ze = 300, Qe = 20;
|
|
1710
|
+
function $e(e) {
|
|
1711
|
+
return Array.from(e.querySelectorAll("img")).filter((e) => e.complete && typeof e.decode == "function").slice(0, Qe);
|
|
1712
|
+
}
|
|
1713
|
+
function et(e) {
|
|
1714
|
+
if (!(!e || typeof e.querySelectorAll != "function")) for (let t of $e(e)) t.decode().catch(() => {});
|
|
1715
|
+
}
|
|
1716
|
+
function tt(e, t = {}) {
|
|
1717
|
+
let n = !1, r = 0, i = () => {
|
|
1718
|
+
let r = t.scope;
|
|
1719
|
+
if (!r || typeof r.querySelectorAll != "function") {
|
|
1720
|
+
e();
|
|
1721
|
+
return;
|
|
1722
|
+
}
|
|
1723
|
+
let i = $e(r);
|
|
1724
|
+
if (i.length === 0) {
|
|
1725
|
+
e();
|
|
1726
|
+
return;
|
|
1727
|
+
}
|
|
1728
|
+
let a = Promise.allSettled(i.map((e) => e.decode())), o = new Promise((e) => {
|
|
1729
|
+
setTimeout(e, 150);
|
|
1730
|
+
});
|
|
1731
|
+
Promise.race([a, o]).then(() => {
|
|
1732
|
+
n || e();
|
|
1733
|
+
});
|
|
1734
|
+
}, a = requestAnimationFrame(() => {
|
|
1735
|
+
r = requestAnimationFrame(i);
|
|
1736
|
+
}), o = setTimeout(e, 300);
|
|
1682
1737
|
return () => {
|
|
1683
|
-
cancelAnimationFrame(
|
|
1738
|
+
n = !0, cancelAnimationFrame(a), r && cancelAnimationFrame(r), clearTimeout(o);
|
|
1684
1739
|
};
|
|
1685
1740
|
}
|
|
1686
1741
|
//#endregion
|
|
1687
1742
|
//#region src/screen/observeBarHeight.ts
|
|
1688
|
-
function
|
|
1743
|
+
function nt(e, t) {
|
|
1689
1744
|
e.offsetHeight > 0 && t(e.offsetHeight);
|
|
1690
1745
|
let n = new ResizeObserver(([e]) => {
|
|
1691
1746
|
e.contentRect.height > 0 && t(e.contentRect.height);
|
|
@@ -1696,14 +1751,14 @@ function Ze(e, t) {
|
|
|
1696
1751
|
}
|
|
1697
1752
|
//#endregion
|
|
1698
1753
|
//#region src/screen/observeViewportScrollHeight.ts
|
|
1699
|
-
var
|
|
1700
|
-
function
|
|
1754
|
+
var rt = 0;
|
|
1755
|
+
function it(e) {
|
|
1701
1756
|
let t = 0, n = () => {
|
|
1702
1757
|
cancelAnimationFrame(t), t = requestAnimationFrame(() => {
|
|
1703
1758
|
let t = document.documentElement.scrollHeight - (window.visualViewport?.height || 0);
|
|
1704
1759
|
t = t < 0 ? 0 : t;
|
|
1705
|
-
let n = t -
|
|
1706
|
-
n = n < 0 ? 0 : n,
|
|
1760
|
+
let n = t - rt;
|
|
1761
|
+
n = n < 0 ? 0 : n, rt ||= t, e(t, n);
|
|
1707
1762
|
});
|
|
1708
1763
|
};
|
|
1709
1764
|
return window.visualViewport?.addEventListener("resize", n), window.visualViewport?.addEventListener("scroll", n), () => {
|
|
@@ -1712,12 +1767,23 @@ function Qe(e) {
|
|
|
1712
1767
|
}
|
|
1713
1768
|
//#endregion
|
|
1714
1769
|
//#region src/utils/matchesPathname.ts
|
|
1715
|
-
function
|
|
1770
|
+
function at(e, t) {
|
|
1716
1771
|
return i(e).regexp.test(t);
|
|
1717
1772
|
}
|
|
1718
1773
|
//#endregion
|
|
1774
|
+
//#region src/utils/isOpaqueColor.ts
|
|
1775
|
+
function ot(e) {
|
|
1776
|
+
let t = e.trim().toLowerCase();
|
|
1777
|
+
if (t === "transparent" || t === "") return !1;
|
|
1778
|
+
if (t.match(/^rgb\(\s*\d+[\s,]+\d+[\s,]+\d+\s*\)$/)) return !0;
|
|
1779
|
+
let n = t.match(/^rgba\(\s*\d+[\s,]+\d+[\s,]+\d+[\s,/]+([\d.]+)\s*\)$/);
|
|
1780
|
+
if (n) return parseFloat(n[1]) >= 1;
|
|
1781
|
+
let r = t.match(/\/\s*([\d.]+%?)\s*\)$/);
|
|
1782
|
+
return r ? (r[1].endsWith("%") ? parseFloat(r[1]) / 100 : parseFloat(r[1])) >= 1 : !!(t.startsWith("rgb(") || t.startsWith("color("));
|
|
1783
|
+
}
|
|
1784
|
+
//#endregion
|
|
1719
1785
|
//#region src/utils/buildRoutePath.ts
|
|
1720
|
-
function
|
|
1786
|
+
function st(e, n) {
|
|
1721
1787
|
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();
|
|
1722
1788
|
return {
|
|
1723
1789
|
pathname: `${a}${c ? `?${c}` : ""}`,
|
|
@@ -1725,4 +1791,4 @@ function et(e, n) {
|
|
|
1725
1791
|
};
|
|
1726
1792
|
}
|
|
1727
1793
|
//#endregion
|
|
1728
|
-
export {
|
|
1794
|
+
export { Ze as ANIM_HOLD_RELEASE_BACKSTOP_MS, Y as SKIP_ANIMATION_ATTR, a as TaskManger, Xe as animHoldKey, J as animateInline, H as animationName, te as appendParamsQuery, G as applyTransitionStyles, st as buildRoutePath, $ as canProgrammaticallyScroll, q as clearInlineAnimation, Me as collectAnimatedProperties, Le as compileTransitionStyles, Ye as computeBarRiding, se as computeScreenFreeze, _ as consumeSelfInducedPop, p as createBrowserHistoryDriver, me as createDecorator, o as createHistoryStore, v as createHistorySync, y as createMemoryHistoryDriver, b as createNavigateStore, w as createNavigationController, ge as createPartTransition, he as createRawDecorator, _e as createRawPartTransition, ce as createRawTransition, ae as createRouterScope, oe as createScreenSelector, E as createScreenStore, m as createSelfPopGuard, ne as createStepController, Je as createSwipeController, D as createTransition, Ge as createTransitionEngine, T as createTransitionStore, ue as cupertino, N as decoratorMap, et as eagerlyDecodeImages, R as easingToCss, d as ensureWindowHistoryState, He as enteringInitialStyle, Z as findScrollable, s as getMatchedPathPattern, c as getParams, ot as isOpaqueColor, u as isServer, fe as layout, g as markSelfInducedPop, at as matchesPathname, O as material, pe as none, nt as observeBarHeight, it as observeViewportScrollHeight, Q as overflowsAxis, M as overlay, P as partTransitionMap, ee as readStepParams, Ve as registerTransitionDefinitions, A as resolveTransition, tt as scheduleAnimHoldRelease, l as seedInitialHistory, re as subscribeStepParamsRestore, I as targetToDecls, k as transitionMap, ze as variantHasAnimation };
|
|
@@ -18,3 +18,4 @@ export default function createStepController(deps: StepControllerDeps): {
|
|
|
18
18
|
replaceStep: (params: object) => Promise<void>;
|
|
19
19
|
popStep: () => Promise<void>;
|
|
20
20
|
};
|
|
21
|
+
export declare function subscribeStepParamsRestore(driver: HistoryDriver, onParams: (params: object) => void): () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -6,4 +6,10 @@ export interface AnimHoldInput {
|
|
|
6
6
|
}
|
|
7
7
|
export declare function animHoldKey(input: AnimHoldInput): string | null;
|
|
8
8
|
export declare const ANIM_HOLD_RELEASE_BACKSTOP_MS = 300;
|
|
9
|
-
export declare
|
|
9
|
+
export declare const ANIM_HOLD_DECODE_CAP_MS = 150;
|
|
10
|
+
export declare function collectDecodableImages(scope: HTMLElement): HTMLImageElement[];
|
|
11
|
+
export declare function eagerlyDecodeImages(scope: HTMLElement | null): void;
|
|
12
|
+
export interface AnimHoldReleaseOptions {
|
|
13
|
+
scope?: HTMLElement | null;
|
|
14
|
+
}
|
|
15
|
+
export declare function scheduleAnimHoldRelease(release: () => void, options?: AnimHoldReleaseOptions): () => void;
|
package/dist/screen/store.d.ts
CHANGED
|
@@ -3,14 +3,20 @@ export interface SharedBarPresence {
|
|
|
3
3
|
topBar: boolean;
|
|
4
4
|
bottomBar: boolean;
|
|
5
5
|
}
|
|
6
|
+
export interface ScreenSurface {
|
|
7
|
+
opaqueBackground: boolean;
|
|
8
|
+
}
|
|
6
9
|
export interface ScreenStore {
|
|
7
10
|
dragStatus: "IDLE" | "PENDING";
|
|
8
11
|
replaceTransitionStatus: "IDLE" | "PENDING";
|
|
9
12
|
sharedBars: Record<string, SharedBarPresence>;
|
|
13
|
+
screenSurfaces: Record<string, ScreenSurface>;
|
|
10
14
|
setDragStatus: (dragStatus: "IDLE" | "PENDING") => void;
|
|
11
15
|
setReplaceTransitionStatus: (replaceTransitionStatus: "IDLE" | "PENDING") => void;
|
|
12
16
|
registerSharedBars: (id: string, presence: SharedBarPresence) => void;
|
|
13
17
|
unregisterSharedBars: (id: string) => void;
|
|
18
|
+
registerScreenSurface: (id: string, surface: ScreenSurface) => void;
|
|
19
|
+
unregisterScreenSurface: (id: string) => void;
|
|
14
20
|
}
|
|
15
21
|
export type ScreenStoreApi = StoreApi<ScreenStore>;
|
|
16
22
|
export default function createScreenStore(): ScreenStoreApi;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isOpaqueColor(cssColor: string): boolean;
|
package/package.json
CHANGED