@flemo/core 1.9.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/index.d.ts +3 -2
- package/dist/index.mjs +198 -145
- 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/utils/__tests__/isOpaqueColor.test.d.ts +1 -0
- package/dist/utils/isOpaqueColor.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { markSelfInducedPop, consumeSelfInducedPop, createSelfPopGuard, type Sel
|
|
|
10
10
|
export { default as createNavigationController, type NavigationControllerDeps, type DistanceOptions, type NavigateOptions, type PopOptions } from './navigate/createNavigationController';
|
|
11
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';
|
|
@@ -39,7 +39,7 @@ export { SKIP_ANIMATION_ATTR, type TransitionEngine, type TransitionEngineDeps,
|
|
|
39
39
|
export { default as createSwipeController } from './core/engine/createSwipeController';
|
|
40
40
|
export { type SwipeController, type SwipeControllerConfig, type SwipeControllerElements, type SharedBarPresenceLike } from './core/engine/createSwipeController';
|
|
41
41
|
export { default as computeBarRiding, type BarRidingInput } from './screen/computeBarRiding';
|
|
42
|
-
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';
|
|
43
43
|
export { default as observeBarHeight } from './screen/observeBarHeight';
|
|
44
44
|
export { default as observeViewportScrollHeight } from './screen/observeViewportScrollHeight';
|
|
45
45
|
export type { RegisterTransition, TransitionName, TransitionVariant, TransitionVariantValue, TransitionOptions, BaseTransition, Transition, SwipeInfo, SwipeAnimate } from './transition/typing';
|
|
@@ -49,5 +49,6 @@ export { default as isServer } from './utils/isServer';
|
|
|
49
49
|
export { default as getParams } from './utils/getParams';
|
|
50
50
|
export { default as getMatchedPathPattern } from './utils/getMatchedPathPattern';
|
|
51
51
|
export { default as matchesPathname } from './utils/matchesPathname';
|
|
52
|
+
export { default as isOpaqueColor } from './utils/isOpaqueColor';
|
|
52
53
|
export { default as buildRoutePath } from './utils/buildRoutePath';
|
|
53
54
|
export { default as findScrollable, overflowsAxis, canProgrammaticallyScroll } from './utils/findScrollable';
|
package/dist/index.mjs
CHANGED
|
@@ -643,7 +643,7 @@ function re(e, t) {
|
|
|
643
643
|
}
|
|
644
644
|
//#endregion
|
|
645
645
|
//#region src/transition/store.ts
|
|
646
|
-
function
|
|
646
|
+
function T(t = "cupertino") {
|
|
647
647
|
return e((e) => ({
|
|
648
648
|
defaultTransitionName: t,
|
|
649
649
|
setDefaultTransitionName: (t) => e({ defaultTransitionName: t })
|
|
@@ -651,11 +651,12 @@ function ie(t = "cupertino") {
|
|
|
651
651
|
}
|
|
652
652
|
//#endregion
|
|
653
653
|
//#region src/screen/store.ts
|
|
654
|
-
function
|
|
654
|
+
function E() {
|
|
655
655
|
return e((e) => ({
|
|
656
656
|
dragStatus: "IDLE",
|
|
657
657
|
replaceTransitionStatus: "IDLE",
|
|
658
658
|
sharedBars: {},
|
|
659
|
+
screenSurfaces: {},
|
|
659
660
|
setDragStatus: (t) => e({ dragStatus: t }),
|
|
660
661
|
setReplaceTransitionStatus: (t) => e({ replaceTransitionStatus: t }),
|
|
661
662
|
registerSharedBars: (t, n) => e((e) => ({ sharedBars: {
|
|
@@ -665,16 +666,27 @@ function ae() {
|
|
|
665
666
|
unregisterSharedBars: (t) => e((e) => {
|
|
666
667
|
let n = { ...e.sharedBars };
|
|
667
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 };
|
|
668
680
|
})
|
|
669
681
|
}));
|
|
670
682
|
}
|
|
671
683
|
//#endregion
|
|
672
684
|
//#region src/core/createRouterScope.ts
|
|
673
|
-
var
|
|
685
|
+
var ie = {
|
|
674
686
|
mark: () => {},
|
|
675
687
|
consume: () => !1
|
|
676
688
|
};
|
|
677
|
-
function
|
|
689
|
+
function ae(e) {
|
|
678
690
|
let { routePaths: t, pathname: n, search: r, defaultTransitionName: i, memory: a, browserDriver: s } = e, c = l(t, n, r, i);
|
|
679
691
|
if (e.hostedScope) return e.hostedScope.history.getState().index === -1 && e.hostedScope.history.setState({
|
|
680
692
|
index: 0,
|
|
@@ -690,12 +702,12 @@ function se(e) {
|
|
|
690
702
|
layoutId: c.layoutId
|
|
691
703
|
},
|
|
692
704
|
url: c.pathname
|
|
693
|
-
}) : s, d = a ?
|
|
705
|
+
}) : s, d = a ? ie : m();
|
|
694
706
|
return {
|
|
695
707
|
history: o([c], 0),
|
|
696
708
|
navigate: b(),
|
|
697
|
-
transition:
|
|
698
|
-
screen:
|
|
709
|
+
transition: T(i),
|
|
710
|
+
screen: E(),
|
|
699
711
|
driver: u,
|
|
700
712
|
markSelfInduced: d.mark,
|
|
701
713
|
consume: d.consume
|
|
@@ -703,7 +715,7 @@ function se(e) {
|
|
|
703
715
|
}
|
|
704
716
|
//#endregion
|
|
705
717
|
//#region src/screen/createScreenSelector.ts
|
|
706
|
-
function
|
|
718
|
+
function oe(e, t) {
|
|
707
719
|
return e.map((n, r) => ({
|
|
708
720
|
...n,
|
|
709
721
|
isActive: r === t,
|
|
@@ -716,13 +728,13 @@ function ce(e, t) {
|
|
|
716
728
|
}
|
|
717
729
|
//#endregion
|
|
718
730
|
//#region src/screen/computeScreenFreeze.ts
|
|
719
|
-
function
|
|
731
|
+
function se(e) {
|
|
720
732
|
let t = e.status === "COMPLETED" && e.dragStatus === "IDLE";
|
|
721
733
|
return !e.isActive && t || e.isPrev && e.index - 2 <= e.zIndex && e.replaceTransitionStatus === "IDLE" || e.isPrev && e.index - 2 > e.zIndex;
|
|
722
734
|
}
|
|
723
735
|
//#endregion
|
|
724
736
|
//#region src/transition/createTransition.ts
|
|
725
|
-
function
|
|
737
|
+
function D({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
|
|
726
738
|
return {
|
|
727
739
|
name: e,
|
|
728
740
|
initial: t,
|
|
@@ -743,7 +755,7 @@ function T({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exit
|
|
|
743
755
|
}
|
|
744
756
|
//#endregion
|
|
745
757
|
//#region src/transition/createRawTransition.ts
|
|
746
|
-
function
|
|
758
|
+
function ce({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnExit: l, completedOnEnter: u, options: d }) {
|
|
747
759
|
return {
|
|
748
760
|
name: e,
|
|
749
761
|
initial: t,
|
|
@@ -764,10 +776,10 @@ function ue({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
|
|
|
764
776
|
}
|
|
765
777
|
//#endregion
|
|
766
778
|
//#region src/transition/cupertino.ts
|
|
767
|
-
var
|
|
779
|
+
var le = (e, t, n) => {
|
|
768
780
|
let [r, i] = t, [a, o] = n;
|
|
769
781
|
return i === r ? a : a + (e - r) / (i - r) * (o - a);
|
|
770
|
-
},
|
|
782
|
+
}, ue = D({
|
|
771
783
|
name: "cupertino",
|
|
772
784
|
initial: { x: "100%" },
|
|
773
785
|
idle: {
|
|
@@ -827,7 +839,7 @@ var de = (e, t, n) => {
|
|
|
827
839
|
swipeDirection: "x",
|
|
828
840
|
onSwipeStart: async () => !0,
|
|
829
841
|
onSwipe: (e, t, { animate: n, currentScreen: r, prevScreen: i, onProgress: a }) => {
|
|
830
|
-
let { offset: o } = t, s = o.x, c =
|
|
842
|
+
let { offset: o } = t, s = o.x, c = le(s, [0, window.innerWidth], [0, 100]);
|
|
831
843
|
return a?.(!0, c), n(r, { x: Math.max(0, s) }, { duration: 0 }), n(i, { x: `${-30 + c * .3}%` }, { duration: 0 }), c;
|
|
832
844
|
},
|
|
833
845
|
onSwipeEnd: async (e, t, { animate: n, currentScreen: r, prevScreen: i, onStart: a }) => {
|
|
@@ -851,10 +863,10 @@ var de = (e, t, n) => {
|
|
|
851
863
|
})]), c;
|
|
852
864
|
}
|
|
853
865
|
}
|
|
854
|
-
}),
|
|
866
|
+
}), de = (e, t, n) => {
|
|
855
867
|
let [r, i] = t, [a, o] = n;
|
|
856
868
|
return i === r ? a : a + (e - r) / (i - r) * (o - a);
|
|
857
|
-
},
|
|
869
|
+
}, fe = D({
|
|
858
870
|
name: "layout",
|
|
859
871
|
initial: { opacity: .97 },
|
|
860
872
|
idle: {
|
|
@@ -882,7 +894,7 @@ var de = (e, t, n) => {
|
|
|
882
894
|
swipeDirection: "y",
|
|
883
895
|
onSwipeStart: async () => !0,
|
|
884
896
|
onSwipe: (e, t, { animate: n, currentScreen: r, onProgress: i }) => {
|
|
885
|
-
let { offset: a } = t, o = a.y, s = Math.max(0, Math.min(56, o)), c =
|
|
897
|
+
let { offset: a } = t, o = a.y, s = Math.max(0, Math.min(56, o)), c = de(s, [0, 56], [1, .96]), l = Math.max(0, o - 56), u = Math.min(1, l / 160), d = Math.sqrt(u) * 12, f = Math.max(0, s + d), p = Math.min(56, f);
|
|
886
898
|
return i?.(!0, 100), n(r, {
|
|
887
899
|
y: f,
|
|
888
900
|
opacity: c
|
|
@@ -899,7 +911,7 @@ var de = (e, t, n) => {
|
|
|
899
911
|
}, { duration: .3 })]), c;
|
|
900
912
|
}
|
|
901
913
|
}
|
|
902
|
-
}),
|
|
914
|
+
}), O = D({
|
|
903
915
|
name: "material",
|
|
904
916
|
initial: { y: "100%" },
|
|
905
917
|
idle: {
|
|
@@ -1007,7 +1019,7 @@ var de = (e, t, n) => {
|
|
|
1007
1019
|
})]), c;
|
|
1008
1020
|
}
|
|
1009
1021
|
}
|
|
1010
|
-
}),
|
|
1022
|
+
}), pe = D({
|
|
1011
1023
|
name: "none",
|
|
1012
1024
|
initial: {},
|
|
1013
1025
|
idle: {
|
|
@@ -1030,20 +1042,20 @@ var de = (e, t, n) => {
|
|
|
1030
1042
|
value: {},
|
|
1031
1043
|
options: { duration: 0 }
|
|
1032
1044
|
}
|
|
1033
|
-
}),
|
|
1034
|
-
["none",
|
|
1035
|
-
["cupertino",
|
|
1036
|
-
["material",
|
|
1037
|
-
["layout",
|
|
1045
|
+
}), k = new Map([
|
|
1046
|
+
["none", pe],
|
|
1047
|
+
["cupertino", ue],
|
|
1048
|
+
["material", O],
|
|
1049
|
+
["layout", fe]
|
|
1038
1050
|
]);
|
|
1039
1051
|
//#endregion
|
|
1040
1052
|
//#region src/transition/resolveTransition.ts
|
|
1041
|
-
function
|
|
1042
|
-
return
|
|
1053
|
+
function A(e) {
|
|
1054
|
+
return k.get(e) ?? k.get("none");
|
|
1043
1055
|
}
|
|
1044
1056
|
//#endregion
|
|
1045
1057
|
//#region src/transition/decorator/createDecorator.ts
|
|
1046
|
-
function
|
|
1058
|
+
function me({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
1047
1059
|
return {
|
|
1048
1060
|
name: e,
|
|
1049
1061
|
initial: t,
|
|
@@ -1064,7 +1076,7 @@ function _e({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
|
1064
1076
|
}
|
|
1065
1077
|
//#endregion
|
|
1066
1078
|
//#region src/transition/decorator/createRawDecorator.ts
|
|
1067
|
-
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 }) {
|
|
1068
1080
|
return {
|
|
1069
1081
|
name: e,
|
|
1070
1082
|
initial: t,
|
|
@@ -1085,30 +1097,30 @@ function ve({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
|
|
|
1085
1097
|
}
|
|
1086
1098
|
//#endregion
|
|
1087
1099
|
//#region src/transition/decorator/overlay.ts
|
|
1088
|
-
var
|
|
1100
|
+
var j = "rgba(0, 0, 0, 0.3)", M = me({
|
|
1089
1101
|
name: "overlay",
|
|
1090
1102
|
initial: {
|
|
1091
1103
|
opacity: 0,
|
|
1092
|
-
backgroundColor:
|
|
1104
|
+
backgroundColor: j
|
|
1093
1105
|
},
|
|
1094
1106
|
idle: {
|
|
1095
1107
|
value: {
|
|
1096
1108
|
opacity: 0,
|
|
1097
|
-
backgroundColor:
|
|
1109
|
+
backgroundColor: j
|
|
1098
1110
|
},
|
|
1099
1111
|
options: { duration: 0 }
|
|
1100
1112
|
},
|
|
1101
1113
|
enter: {
|
|
1102
1114
|
value: {
|
|
1103
1115
|
opacity: 1,
|
|
1104
|
-
backgroundColor:
|
|
1116
|
+
backgroundColor: j
|
|
1105
1117
|
},
|
|
1106
1118
|
options: { duration: .7 }
|
|
1107
1119
|
},
|
|
1108
1120
|
exit: {
|
|
1109
1121
|
value: {
|
|
1110
1122
|
opacity: 0,
|
|
1111
|
-
backgroundColor:
|
|
1123
|
+
backgroundColor: j
|
|
1112
1124
|
},
|
|
1113
1125
|
options: { duration: .6 }
|
|
1114
1126
|
},
|
|
@@ -1117,10 +1129,10 @@ var O = "rgba(0, 0, 0, 0.3)", ye = _e({
|
|
|
1117
1129
|
onSwipe: (e, t, { animate: n, prevDecorator: r }) => n(r, { opacity: Math.max(0, 1 - t / 100) }, { duration: 0 }),
|
|
1118
1130
|
onSwipeEnd: (e, { animate: t, prevDecorator: n }) => t(n, { opacity: +!e }, { duration: .3 })
|
|
1119
1131
|
}
|
|
1120
|
-
}),
|
|
1132
|
+
}), N = new Map([["overlay", M]]);
|
|
1121
1133
|
//#endregion
|
|
1122
1134
|
//#region src/transition/partTransition/createPartTransition.ts
|
|
1123
|
-
function
|
|
1135
|
+
function ge({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
1124
1136
|
return {
|
|
1125
1137
|
name: e,
|
|
1126
1138
|
initial: t,
|
|
@@ -1141,7 +1153,7 @@ function be({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
|
|
|
1141
1153
|
}
|
|
1142
1154
|
//#endregion
|
|
1143
1155
|
//#region src/transition/partTransition/createRawPartTransition.ts
|
|
1144
|
-
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 }) {
|
|
1145
1157
|
return {
|
|
1146
1158
|
name: e,
|
|
1147
1159
|
initial: t,
|
|
@@ -1162,7 +1174,7 @@ function xe({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
|
|
|
1162
1174
|
}
|
|
1163
1175
|
//#endregion
|
|
1164
1176
|
//#region src/transition/partTransition/partTransition.ts
|
|
1165
|
-
var
|
|
1177
|
+
var P = /* @__PURE__ */ new Map(), F = {
|
|
1166
1178
|
"IDLE-true": "self",
|
|
1167
1179
|
"IDLE-false": "self",
|
|
1168
1180
|
"PUSHING-true": "initial",
|
|
@@ -1173,7 +1185,7 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1173
1185
|
"POPPING-false": "PUSHING-false",
|
|
1174
1186
|
"COMPLETED-true": "self",
|
|
1175
1187
|
"COMPLETED-false": "self"
|
|
1176
|
-
},
|
|
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([
|
|
1177
1189
|
"x",
|
|
1178
1190
|
"y",
|
|
1179
1191
|
"z",
|
|
@@ -1184,7 +1196,7 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1184
1196
|
"rotateX",
|
|
1185
1197
|
"rotateY",
|
|
1186
1198
|
"rotateZ"
|
|
1187
|
-
]),
|
|
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) => {
|
|
1188
1200
|
switch (e) {
|
|
1189
1201
|
case "x": return `translateX(${t})`;
|
|
1190
1202
|
case "y": return `translateY(${t})`;
|
|
@@ -1198,23 +1210,23 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1198
1210
|
case "rotateY": return `rotateY(${t})`;
|
|
1199
1211
|
default: return "";
|
|
1200
1212
|
}
|
|
1201
|
-
},
|
|
1213
|
+
}, Me = (e) => {
|
|
1202
1214
|
let t = /* @__PURE__ */ new Set(), n = !1, r = (e) => {
|
|
1203
|
-
if (
|
|
1215
|
+
if (xe(e)) for (let r of Object.keys(e)) {
|
|
1204
1216
|
let i = e[r];
|
|
1205
|
-
|
|
1217
|
+
we(r, i) !== "" && (Ee.has(r) ? n = !0 : t.add(Te(r)));
|
|
1206
1218
|
}
|
|
1207
1219
|
};
|
|
1208
1220
|
r(e.initial);
|
|
1209
1221
|
for (let t of Object.values(e.variants)) r(t.value);
|
|
1210
1222
|
return n && t.add("transform"), Array.from(t);
|
|
1211
|
-
},
|
|
1212
|
-
if (!
|
|
1223
|
+
}, I = (e) => {
|
|
1224
|
+
if (!xe(e)) return [];
|
|
1213
1225
|
let t = [], n = !0, r = [];
|
|
1214
1226
|
for (let i of Object.keys(e)) {
|
|
1215
|
-
let a = e[i], o =
|
|
1216
|
-
o !== "" && (
|
|
1217
|
-
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),
|
|
1218
1230
|
value: o
|
|
1219
1231
|
}));
|
|
1220
1232
|
}
|
|
@@ -1222,7 +1234,7 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1222
1234
|
property: "transform",
|
|
1223
1235
|
value: n ? "none" : t.join(" ")
|
|
1224
1236
|
}), r;
|
|
1225
|
-
},
|
|
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" ? {
|
|
1226
1238
|
linear: "linear",
|
|
1227
1239
|
easeIn: "ease-in",
|
|
1228
1240
|
easeOut: "ease-out",
|
|
@@ -1232,33 +1244,33 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1232
1244
|
backIn: "cubic-bezier(0.31, 0.01, 0.66, -0.59)",
|
|
1233
1245
|
backOut: "cubic-bezier(0.33, 1.53, 0.69, 0.99)",
|
|
1234
1246
|
anticipate: "cubic-bezier(0.36, 0, 0.66, -0.56)"
|
|
1235
|
-
}[e] ?? "ease" : "ease",
|
|
1247
|
+
}[e] ?? "ease" : "ease", z = (e) => {
|
|
1236
1248
|
if (!e) return 0;
|
|
1237
1249
|
let t = e.duration;
|
|
1238
1250
|
return typeof t == "number" && t >= 0 ? t : 0;
|
|
1239
|
-
},
|
|
1251
|
+
}, B = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, V = (e, t) => {
|
|
1240
1252
|
let [n, r] = t.split("-");
|
|
1241
1253
|
return `[data-flemo-screen][data-flemo-transition="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
|
|
1242
|
-
},
|
|
1254
|
+
}, Ne = (e, t) => {
|
|
1243
1255
|
let [n, r] = t.split("-");
|
|
1244
1256
|
return `[data-flemo-decorator][data-flemo-decorator-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
|
|
1245
|
-
},
|
|
1257
|
+
}, Pe = (e, t) => {
|
|
1246
1258
|
let [n, r] = t.split("-");
|
|
1247
1259
|
return `[data-flemo-bar][data-flemo-bar-transition="${e}"][data-flemo-bar-status="${n}"][data-flemo-bar-active="${r}"][data-flemo-bar-riding="true"]`;
|
|
1248
|
-
},
|
|
1260
|
+
}, Fe = (e, t) => {
|
|
1249
1261
|
let [n, r] = t.split("-");
|
|
1250
1262
|
return `[data-flemo-part-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
|
|
1251
|
-
},
|
|
1252
|
-
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;
|
|
1253
1265
|
if (s.length === 0 && o.length === 0) return "";
|
|
1254
|
-
if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${
|
|
1255
|
-
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 = [
|
|
1256
1268
|
`@keyframes ${p} {`,
|
|
1257
1269
|
" from {",
|
|
1258
|
-
|
|
1270
|
+
L(o).replace(/^/gm, " "),
|
|
1259
1271
|
" }",
|
|
1260
1272
|
" to {",
|
|
1261
|
-
|
|
1273
|
+
L(s).replace(/^/gm, " "),
|
|
1262
1274
|
" }",
|
|
1263
1275
|
"}"
|
|
1264
1276
|
].join("\n"), h = [
|
|
@@ -1268,78 +1280,85 @@ var A = /* @__PURE__ */ new Map(), j = {
|
|
|
1268
1280
|
l > 0 ? `${l}s` : null,
|
|
1269
1281
|
"both"
|
|
1270
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];
|
|
1271
|
-
return `${m}\n${`${f} {\n animation: ${h};\n${_}${v === "PUSHING" || v === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}`;
|
|
1272
|
-
},
|
|
1273
|
-
|
|
1274
|
-
|
|
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}`;
|
|
1275
1292
|
}, Le = (e, t, n = []) => {
|
|
1276
1293
|
let r = [];
|
|
1277
1294
|
for (let t of e) {
|
|
1278
1295
|
let e = t.name;
|
|
1279
|
-
for (let n of
|
|
1280
|
-
let i = t.variants[n], a =
|
|
1296
|
+
for (let n of ve) {
|
|
1297
|
+
let i = t.variants[n], a = F[n];
|
|
1281
1298
|
if (a === "self") {
|
|
1282
|
-
r.push(
|
|
1299
|
+
r.push(W(V, e, n, i));
|
|
1283
1300
|
continue;
|
|
1284
1301
|
}
|
|
1285
1302
|
let o = a === "initial" ? t.initial : t.variants[a].value;
|
|
1286
|
-
r.push(
|
|
1303
|
+
r.push(U("screen", e, n, o, i, V));
|
|
1287
1304
|
}
|
|
1288
1305
|
}
|
|
1289
1306
|
for (let e of t) {
|
|
1290
1307
|
let t = e.name;
|
|
1291
|
-
for (let n of
|
|
1292
|
-
let i = e.variants[n], a =
|
|
1308
|
+
for (let n of ye) {
|
|
1309
|
+
let i = e.variants[n], a = F[n];
|
|
1293
1310
|
if (a === "self") {
|
|
1294
|
-
r.push(
|
|
1311
|
+
r.push(W(Ne, t, n, i));
|
|
1295
1312
|
continue;
|
|
1296
1313
|
}
|
|
1297
1314
|
let o = a === "initial" ? e.initial : e.variants[a].value;
|
|
1298
|
-
r.push(
|
|
1315
|
+
r.push(U("decorator", t, n, o, i, Ne));
|
|
1299
1316
|
}
|
|
1300
1317
|
}
|
|
1301
1318
|
for (let e of n) {
|
|
1302
1319
|
let t = e.name;
|
|
1303
|
-
for (let n of
|
|
1304
|
-
let i = e.variants[n], a =
|
|
1320
|
+
for (let n of ye) {
|
|
1321
|
+
let i = e.variants[n], a = F[n];
|
|
1305
1322
|
if (a === "self") {
|
|
1306
|
-
r.push(
|
|
1323
|
+
r.push(W(Fe, t, n, i));
|
|
1307
1324
|
continue;
|
|
1308
1325
|
}
|
|
1309
1326
|
let o = a === "initial" ? e.initial : e.variants[a].value;
|
|
1310
|
-
r.push(
|
|
1327
|
+
r.push(U("part", t, n, o, i, Fe));
|
|
1311
1328
|
}
|
|
1312
1329
|
}
|
|
1313
1330
|
return [...r.filter((e) => e.length > 0), Re].join("\n\n");
|
|
1314
1331
|
}, Re = [
|
|
1315
1332
|
"[data-flemo-anim-hold=\"true\"],",
|
|
1316
|
-
"[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] {",
|
|
1317
1336
|
" animation-play-state: paused !important;",
|
|
1318
1337
|
"}"
|
|
1319
1338
|
].join("\n"), ze = (e, t) => {
|
|
1320
|
-
let n =
|
|
1339
|
+
let n = F[t];
|
|
1321
1340
|
if (n === "self") return !1;
|
|
1322
|
-
let r = e.variants[t], i =
|
|
1341
|
+
let r = e.variants[t], i = z(r.options), a = B(r.options);
|
|
1323
1342
|
if (i <= 0 && a <= 0) return !1;
|
|
1324
|
-
let o =
|
|
1343
|
+
let o = I(n === "initial" ? e.initial : e.variants[n].value), s = I(r.value);
|
|
1325
1344
|
return o.length > 0 || s.length > 0;
|
|
1326
1345
|
}, Be = "data-flemo";
|
|
1327
|
-
function
|
|
1346
|
+
function G() {
|
|
1328
1347
|
if (u()) return;
|
|
1329
|
-
let e = Le(
|
|
1348
|
+
let e = Le(k.values(), N.values(), P.values()), t = document.head.querySelector(`style[${Be}]`);
|
|
1330
1349
|
t || (t = document.createElement("style"), t.setAttribute(Be, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
|
|
1331
1350
|
}
|
|
1332
1351
|
//#endregion
|
|
1333
1352
|
//#region src/transition/registerTransitionDefinitions.ts
|
|
1334
1353
|
function Ve(e, t, n = []) {
|
|
1335
|
-
for (let t of e)
|
|
1336
|
-
for (let e of t)
|
|
1337
|
-
for (let e of n)
|
|
1338
|
-
return
|
|
1339
|
-
for (let t of e)
|
|
1340
|
-
for (let e of t)
|
|
1341
|
-
for (let e of n)
|
|
1342
|
-
|
|
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();
|
|
1343
1362
|
};
|
|
1344
1363
|
}
|
|
1345
1364
|
//#endregion
|
|
@@ -1352,27 +1371,27 @@ function He(e) {
|
|
|
1352
1371
|
}
|
|
1353
1372
|
//#endregion
|
|
1354
1373
|
//#region src/transition/animateInline.ts
|
|
1355
|
-
var Ue = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement,
|
|
1356
|
-
let n =
|
|
1357
|
-
n || (n = /* @__PURE__ */ new Set(),
|
|
1358
|
-
},
|
|
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) => {
|
|
1359
1378
|
if (e.style.transition = "", t) {
|
|
1360
|
-
let n =
|
|
1379
|
+
let n = K.get(e);
|
|
1361
1380
|
for (let r of t) e.style.removeProperty(r), n?.delete(r);
|
|
1362
1381
|
return;
|
|
1363
1382
|
}
|
|
1364
|
-
let n =
|
|
1383
|
+
let n = K.get(e);
|
|
1365
1384
|
if (n && n.size > 0) {
|
|
1366
1385
|
for (let t of n) e.style.removeProperty(t);
|
|
1367
1386
|
n.clear();
|
|
1368
1387
|
return;
|
|
1369
1388
|
}
|
|
1370
1389
|
e.style.removeProperty("transform"), e.style.removeProperty("opacity");
|
|
1371
|
-
},
|
|
1390
|
+
}, J = (e, t, n = {}) => {
|
|
1372
1391
|
if (!Ue(e)) return Promise.resolve();
|
|
1373
|
-
let r = e, i =
|
|
1392
|
+
let r = e, i = I(t);
|
|
1374
1393
|
if (i.length === 0) return Promise.resolve();
|
|
1375
|
-
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);
|
|
1376
1395
|
if (a <= 0 && o <= 0) {
|
|
1377
1396
|
r.style.transition = "none";
|
|
1378
1397
|
for (let e of i) r.style.setProperty(e.property, e.value), We(r, e.property);
|
|
@@ -1389,27 +1408,27 @@ var Ue = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, G = /* @__
|
|
|
1389
1408
|
};
|
|
1390
1409
|
r.addEventListener("transitionend", i), setTimeout(n, (a + o) * 1e3 + 60);
|
|
1391
1410
|
});
|
|
1392
|
-
},
|
|
1411
|
+
}, Y = "data-flemo-skip-animation", X = () => {};
|
|
1393
1412
|
function Ge(e) {
|
|
1394
1413
|
return { driveScreenLifecycle: (t) => {
|
|
1395
1414
|
let { getElements: n, transitionName: r, prevTransitionName: i, status: o, isActive: s } = t;
|
|
1396
|
-
if (!s) return o === "REPLACING" && i !== r && e.setReplaceTransitionStatus("PENDING"),
|
|
1415
|
+
if (!s) return o === "REPLACING" && i !== r && e.setReplaceTransitionStatus("PENDING"), X;
|
|
1397
1416
|
if (o === "COMPLETED") {
|
|
1398
1417
|
e.setDragStatus("IDLE"), e.setReplaceTransitionStatus("IDLE");
|
|
1399
1418
|
let { scope: t, decorator: r, bars: i } = n();
|
|
1400
|
-
t && (
|
|
1401
|
-
for (let e of i ?? []) e && (
|
|
1402
|
-
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;
|
|
1403
1422
|
}
|
|
1404
|
-
if (o === "IDLE") return
|
|
1423
|
+
if (o === "IDLE") return X;
|
|
1405
1424
|
let { scope: c } = n();
|
|
1406
|
-
if (!c) return
|
|
1425
|
+
if (!c) return X;
|
|
1407
1426
|
let l = () => {
|
|
1408
1427
|
let t = e.getTransitionTaskId();
|
|
1409
1428
|
t && a.resolveTask(t);
|
|
1410
|
-
}, u =
|
|
1411
|
-
if (!(c.getAttribute("data-flemo-skip-animation") !== "true" && ze(u, d))) return queueMicrotask(l),
|
|
1412
|
-
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) => {
|
|
1413
1432
|
e.target === c && e.animationName === f && (c.removeEventListener("animationend", p), l());
|
|
1414
1433
|
};
|
|
1415
1434
|
return c.addEventListener("animationend", p), () => {
|
|
@@ -1419,20 +1438,20 @@ function Ge(e) {
|
|
|
1419
1438
|
}
|
|
1420
1439
|
//#endregion
|
|
1421
1440
|
//#region src/utils/findScrollable.ts
|
|
1422
|
-
function
|
|
1441
|
+
function Z(e, t) {
|
|
1423
1442
|
let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = Ke(e);
|
|
1424
1443
|
if (!o) return {
|
|
1425
1444
|
element: null,
|
|
1426
1445
|
hasMarker: !1
|
|
1427
1446
|
};
|
|
1428
1447
|
let s = o.closest?.(r);
|
|
1429
|
-
if (s instanceof HTMLElement &&
|
|
1448
|
+
if (s instanceof HTMLElement && Q(s, n) && (!a || $(s, n))) return {
|
|
1430
1449
|
element: s,
|
|
1431
1450
|
hasMarker: !0
|
|
1432
1451
|
};
|
|
1433
1452
|
let c = o, l = 0;
|
|
1434
1453
|
for (; c && l < i;) {
|
|
1435
|
-
if (
|
|
1454
|
+
if (Q(c, n) && (!a || $(c, n))) return {
|
|
1436
1455
|
element: c,
|
|
1437
1456
|
hasMarker: !1
|
|
1438
1457
|
};
|
|
@@ -1451,11 +1470,11 @@ function Ke(e) {
|
|
|
1451
1470
|
}
|
|
1452
1471
|
return e instanceof HTMLElement ? e : null;
|
|
1453
1472
|
}
|
|
1454
|
-
function
|
|
1473
|
+
function Q(e, t) {
|
|
1455
1474
|
return t === "y" ? e.scrollHeight - e.clientHeight > 1 : e.scrollWidth - e.clientWidth > 1;
|
|
1456
1475
|
}
|
|
1457
|
-
function
|
|
1458
|
-
if (!
|
|
1476
|
+
function $(e, t) {
|
|
1477
|
+
if (!Q(e, t) || typeof window > "u") return !1;
|
|
1459
1478
|
let n = window.getComputedStyle(e), r = t === "y" ? n.overflowY : n.overflowX;
|
|
1460
1479
|
return r === "auto" || r === "scroll" || r === "overlay";
|
|
1461
1480
|
}
|
|
@@ -1508,9 +1527,9 @@ function Je(e) {
|
|
|
1508
1527
|
y: e.clientY
|
|
1509
1528
|
}, u = t;
|
|
1510
1529
|
}, v = (n, i, a) => {
|
|
1511
|
-
let o =
|
|
1512
|
-
if (n === e.getElements().scope) for (let e of r.current)
|
|
1513
|
-
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);
|
|
1514
1533
|
return o;
|
|
1515
1534
|
}, y = (t) => {
|
|
1516
1535
|
let n = e.getPartnerBars(), i = [], { sharedTopBar: a, sharedBottomBar: o } = e.getElements();
|
|
@@ -1524,12 +1543,12 @@ function Je(e) {
|
|
|
1524
1543
|
current: i,
|
|
1525
1544
|
prev: s
|
|
1526
1545
|
};
|
|
1527
|
-
let c =
|
|
1546
|
+
let c = Me(e.getTransition()).join(", ");
|
|
1528
1547
|
for (let e of i) e.style.willChange = c;
|
|
1529
1548
|
for (let e of s) e.style.willChange = c;
|
|
1530
1549
|
}, b = () => {
|
|
1531
|
-
for (let e of r.current)
|
|
1532
|
-
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");
|
|
1533
1552
|
r = {
|
|
1534
1553
|
current: [],
|
|
1535
1554
|
prev: []
|
|
@@ -1542,10 +1561,10 @@ function Je(e) {
|
|
|
1542
1561
|
};
|
|
1543
1562
|
}, S = (e, t, n) => {
|
|
1544
1563
|
let r = (r, i) => {
|
|
1545
|
-
let a =
|
|
1564
|
+
let a = P.get(r.getAttribute("data-flemo-part-name"));
|
|
1546
1565
|
if (!a) return;
|
|
1547
1566
|
let o = {
|
|
1548
|
-
animate:
|
|
1567
|
+
animate: J,
|
|
1549
1568
|
element: r,
|
|
1550
1569
|
active: i
|
|
1551
1570
|
};
|
|
@@ -1554,7 +1573,7 @@ function Je(e) {
|
|
|
1554
1573
|
for (let e of i.current) r(e, !0);
|
|
1555
1574
|
for (let e of i.prev) r(e, !1);
|
|
1556
1575
|
}, C = () => {
|
|
1557
|
-
for (let e of [...i.current, ...i.prev])
|
|
1576
|
+
for (let e of [...i.current, ...i.prev]) q(e);
|
|
1558
1577
|
i = {
|
|
1559
1578
|
current: [],
|
|
1560
1579
|
prev: []
|
|
@@ -1583,7 +1602,7 @@ function Je(e) {
|
|
|
1583
1602
|
prevScreen: t,
|
|
1584
1603
|
onStart: (e) => {
|
|
1585
1604
|
m?.onSwipeStart?.(e, {
|
|
1586
|
-
animate:
|
|
1605
|
+
animate: J,
|
|
1587
1606
|
currentDecorator: f,
|
|
1588
1607
|
prevDecorator: n
|
|
1589
1608
|
}), S("start", e, 0);
|
|
@@ -1600,7 +1619,7 @@ function Je(e) {
|
|
|
1600
1619
|
prevScreen: t,
|
|
1601
1620
|
onProgress: (e, t) => {
|
|
1602
1621
|
c?.onSwipe?.(e, t, {
|
|
1603
|
-
animate:
|
|
1622
|
+
animate: J,
|
|
1604
1623
|
currentDecorator: o,
|
|
1605
1624
|
prevDecorator: n
|
|
1606
1625
|
}), S("swipe", e, t);
|
|
@@ -1619,7 +1638,7 @@ function Je(e) {
|
|
|
1619
1638
|
prevScreen: t,
|
|
1620
1639
|
onStart: (e) => {
|
|
1621
1640
|
u?.onSwipeEnd?.(e, {
|
|
1622
|
-
animate:
|
|
1641
|
+
animate: J,
|
|
1623
1642
|
currentDecorator: l,
|
|
1624
1643
|
prevDecorator: n
|
|
1625
1644
|
}), S("end", e, 0);
|
|
@@ -1627,24 +1646,24 @@ function Je(e) {
|
|
|
1627
1646
|
})) {
|
|
1628
1647
|
c?.setAttribute(qe, "true"), l?.setAttribute(qe, "true");
|
|
1629
1648
|
for (let e of r.current) e.style.removeProperty("will-change");
|
|
1630
|
-
for (let e of r.prev)
|
|
1649
|
+
for (let e of r.prev) q(e), e.style.removeProperty("will-change");
|
|
1631
1650
|
r = {
|
|
1632
1651
|
current: [],
|
|
1633
1652
|
prev: []
|
|
1634
1653
|
};
|
|
1635
|
-
for (let e of i.prev)
|
|
1654
|
+
for (let e of i.prev) q(e);
|
|
1636
1655
|
i = {
|
|
1637
1656
|
current: [],
|
|
1638
1657
|
prev: []
|
|
1639
1658
|
}, e.back();
|
|
1640
|
-
} else c &&
|
|
1659
|
+
} else c && q(c), t && q(t), l && q(l), n && q(n), b(), C(), e.setDragStatus("IDLE");
|
|
1641
1660
|
};
|
|
1642
1661
|
return {
|
|
1643
1662
|
pointerDown: (t) => {
|
|
1644
|
-
e.isReadyForDrag() && (f =
|
|
1663
|
+
e.isReadyForDrag() && (f = Z(t.target, {
|
|
1645
1664
|
direction: "x",
|
|
1646
1665
|
verifyByScroll: !0
|
|
1647
|
-
}), p =
|
|
1666
|
+
}), p = Z(t.target, {
|
|
1648
1667
|
direction: "y",
|
|
1649
1668
|
verifyByScroll: !0
|
|
1650
1669
|
}), m = t.clientX, h = t.clientY, (!f.element && !p.element || f.element || p.element) && (a = !0));
|
|
@@ -1687,18 +1706,41 @@ function Ye(e) {
|
|
|
1687
1706
|
function Xe(e) {
|
|
1688
1707
|
return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? null : `${e.status}:${e.transitionName}`;
|
|
1689
1708
|
}
|
|
1690
|
-
var Ze = 300;
|
|
1691
|
-
function
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
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);
|
|
1695
1737
|
return () => {
|
|
1696
|
-
cancelAnimationFrame(
|
|
1738
|
+
n = !0, cancelAnimationFrame(a), r && cancelAnimationFrame(r), clearTimeout(o);
|
|
1697
1739
|
};
|
|
1698
1740
|
}
|
|
1699
1741
|
//#endregion
|
|
1700
1742
|
//#region src/screen/observeBarHeight.ts
|
|
1701
|
-
function
|
|
1743
|
+
function nt(e, t) {
|
|
1702
1744
|
e.offsetHeight > 0 && t(e.offsetHeight);
|
|
1703
1745
|
let n = new ResizeObserver(([e]) => {
|
|
1704
1746
|
e.contentRect.height > 0 && t(e.contentRect.height);
|
|
@@ -1709,14 +1751,14 @@ function $e(e, t) {
|
|
|
1709
1751
|
}
|
|
1710
1752
|
//#endregion
|
|
1711
1753
|
//#region src/screen/observeViewportScrollHeight.ts
|
|
1712
|
-
var
|
|
1713
|
-
function
|
|
1754
|
+
var rt = 0;
|
|
1755
|
+
function it(e) {
|
|
1714
1756
|
let t = 0, n = () => {
|
|
1715
1757
|
cancelAnimationFrame(t), t = requestAnimationFrame(() => {
|
|
1716
1758
|
let t = document.documentElement.scrollHeight - (window.visualViewport?.height || 0);
|
|
1717
1759
|
t = t < 0 ? 0 : t;
|
|
1718
|
-
let n = t -
|
|
1719
|
-
n = n < 0 ? 0 : n,
|
|
1760
|
+
let n = t - rt;
|
|
1761
|
+
n = n < 0 ? 0 : n, rt ||= t, e(t, n);
|
|
1720
1762
|
});
|
|
1721
1763
|
};
|
|
1722
1764
|
return window.visualViewport?.addEventListener("resize", n), window.visualViewport?.addEventListener("scroll", n), () => {
|
|
@@ -1725,12 +1767,23 @@ function et(e) {
|
|
|
1725
1767
|
}
|
|
1726
1768
|
//#endregion
|
|
1727
1769
|
//#region src/utils/matchesPathname.ts
|
|
1728
|
-
function
|
|
1770
|
+
function at(e, t) {
|
|
1729
1771
|
return i(e).regexp.test(t);
|
|
1730
1772
|
}
|
|
1731
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
|
|
1732
1785
|
//#region src/utils/buildRoutePath.ts
|
|
1733
|
-
function
|
|
1786
|
+
function st(e, n) {
|
|
1734
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();
|
|
1735
1788
|
return {
|
|
1736
1789
|
pathname: `${a}${c ? `?${c}` : ""}`,
|
|
@@ -1738,4 +1791,4 @@ function nt(e, n) {
|
|
|
1738
1791
|
};
|
|
1739
1792
|
}
|
|
1740
1793
|
//#endregion
|
|
1741
|
-
export { Ze as ANIM_HOLD_RELEASE_BACKSTOP_MS,
|
|
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 };
|
|
@@ -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 default function isOpaqueColor(cssColor: string): boolean;
|
package/package.json
CHANGED