react-native-gesture-image-viewer 2.3.3 → 3.0.0-beta.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/README.md +5 -3
- package/lib/module/GestureViewer.js +88 -140
- package/lib/module/GestureViewer.js.map +1 -1
- package/lib/module/GestureViewerManager.js +49 -105
- package/lib/module/GestureViewerManager.js.map +1 -1
- package/lib/module/gestureViewerAnimation.js +18 -0
- package/lib/module/gestureViewerAnimation.js.map +1 -0
- package/lib/module/gestureViewerPaging.js +66 -0
- package/lib/module/gestureViewerPaging.js.map +1 -0
- package/lib/module/gestureViewerRenderWindow.js +29 -0
- package/lib/module/gestureViewerRenderWindow.js.map +1 -0
- package/lib/module/getWebContentProps.js +6 -0
- package/lib/module/getWebContentProps.js.map +1 -0
- package/lib/module/getWebContentProps.web.js +8 -0
- package/lib/module/getWebContentProps.web.js.map +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/platformTapGestures.js +4 -0
- package/lib/module/platformTapGestures.js.map +1 -0
- package/lib/module/platformTapGestures.web.js +4 -0
- package/lib/module/platformTapGestures.web.js.map +1 -0
- package/lib/module/renderWindow.js +160 -0
- package/lib/module/renderWindow.js.map +1 -0
- package/lib/module/useGestureViewer.js +386 -200
- package/lib/module/useGestureViewer.js.map +1 -1
- package/lib/module/useGestureViewerController.js +3 -3
- package/lib/module/useGestureViewerController.js.map +1 -1
- package/lib/module/useGestureViewerManagerBridge.js +85 -0
- package/lib/module/useGestureViewerManagerBridge.js.map +1 -0
- package/lib/module/useGestureViewerPaging.js +147 -65
- package/lib/module/useGestureViewerPaging.js.map +1 -1
- package/lib/module/useWebClickHandler.js +7 -0
- package/lib/module/useWebClickHandler.js.map +1 -0
- package/lib/module/useWebClickHandler.web.js +85 -0
- package/lib/module/useWebClickHandler.web.js.map +1 -0
- package/lib/module/useWebSingleTapTimer.js +12 -0
- package/lib/module/useWebSingleTapTimer.js.map +1 -0
- package/lib/module/useWebSingleTapTimer.web.js +25 -0
- package/lib/module/useWebSingleTapTimer.web.js.map +1 -0
- package/lib/module/utils/index.js +0 -77
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/tapZoom.js +4 -3
- package/lib/module/utils/tapZoom.js.map +1 -1
- package/lib/typescript/src/GestureViewer.d.ts +1 -1
- package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/GestureViewerManager.d.ts +20 -20
- package/lib/typescript/src/GestureViewerManager.d.ts.map +1 -1
- package/lib/typescript/src/gestureViewerAnimation.d.ts +15 -0
- package/lib/typescript/src/gestureViewerAnimation.d.ts.map +1 -0
- package/lib/typescript/src/gestureViewerPaging.d.ts +13 -0
- package/lib/typescript/src/gestureViewerPaging.d.ts.map +1 -0
- package/lib/typescript/src/gestureViewerRenderWindow.d.ts +15 -0
- package/lib/typescript/src/gestureViewerRenderWindow.d.ts.map +1 -0
- package/lib/typescript/src/getWebContentProps.d.ts +3 -0
- package/lib/typescript/src/getWebContentProps.d.ts.map +1 -0
- package/lib/typescript/src/getWebContentProps.web.d.ts +5 -0
- package/lib/typescript/src/getWebContentProps.web.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/platformTapGestures.d.ts +2 -0
- package/lib/typescript/src/platformTapGestures.d.ts.map +1 -0
- package/lib/typescript/src/platformTapGestures.web.d.ts +2 -0
- package/lib/typescript/src/platformTapGestures.web.d.ts.map +1 -0
- package/lib/typescript/src/renderWindow.d.ts +44 -0
- package/lib/typescript/src/renderWindow.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +45 -52
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewer.d.ts +9 -8
- package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
- package/lib/typescript/src/useGestureViewerController.d.ts +1 -1
- package/lib/typescript/src/useGestureViewerManagerBridge.d.ts +28 -0
- package/lib/typescript/src/useGestureViewerManagerBridge.d.ts.map +1 -0
- package/lib/typescript/src/useGestureViewerPaging.d.ts +31 -2
- package/lib/typescript/src/useGestureViewerPaging.d.ts.map +1 -1
- package/lib/typescript/src/useWebClickHandler.d.ts +35 -0
- package/lib/typescript/src/useWebClickHandler.d.ts.map +1 -0
- package/lib/typescript/src/useWebClickHandler.web.d.ts +36 -0
- package/lib/typescript/src/useWebClickHandler.web.d.ts.map +1 -0
- package/lib/typescript/src/useWebSingleTapTimer.d.ts +6 -0
- package/lib/typescript/src/useWebSingleTapTimer.d.ts.map +1 -0
- package/lib/typescript/src/useWebSingleTapTimer.web.d.ts +6 -0
- package/lib/typescript/src/useWebSingleTapTimer.web.d.ts.map +1 -0
- package/lib/typescript/src/utils/index.d.ts +0 -20
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/tapZoom.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/GestureViewer.tsx +104 -191
- package/src/GestureViewerManager.ts +77 -122
- package/src/gestureViewerAnimation.ts +18 -0
- package/src/gestureViewerPaging.ts +116 -0
- package/src/gestureViewerRenderWindow.ts +56 -0
- package/src/getWebContentProps.ts +5 -0
- package/src/getWebContentProps.web.ts +5 -0
- package/src/index.tsx +1 -0
- package/src/platformTapGestures.ts +1 -0
- package/src/platformTapGestures.web.ts +1 -0
- package/src/renderWindow.ts +253 -0
- package/src/types.ts +44 -99
- package/src/useGestureViewer.ts +557 -258
- package/src/useGestureViewerController.ts +3 -3
- package/src/useGestureViewerManagerBridge.ts +118 -0
- package/src/useGestureViewerPaging.ts +277 -98
- package/src/useWebClickHandler.ts +44 -0
- package/src/useWebClickHandler.web.ts +146 -0
- package/src/useWebSingleTapTimer.ts +10 -0
- package/src/useWebSingleTapTimer.web.ts +30 -0
- package/src/utils/index.ts +0 -102
- package/src/utils/tapZoom.ts +4 -3
- package/lib/module/WebPagingFixStyle.js +0 -25
- package/lib/module/WebPagingFixStyle.js.map +0 -1
- package/lib/module/scheduleInitialScroll.js +0 -21
- package/lib/module/scheduleInitialScroll.js.map +0 -1
- package/lib/module/useGestureViewerPaging.types.js +0 -4
- package/lib/module/useGestureViewerPaging.types.js.map +0 -1
- package/lib/module/useGestureViewerPaging.web.js +0 -275
- package/lib/module/useGestureViewerPaging.web.js.map +0 -1
- package/lib/module/utils/FlashList.js +0 -9
- package/lib/module/utils/FlashList.js.map +0 -1
- package/lib/module/utils/webScroll.js +0 -70
- package/lib/module/utils/webScroll.js.map +0 -1
- package/lib/typescript/src/WebPagingFixStyle.d.ts +0 -6
- package/lib/typescript/src/WebPagingFixStyle.d.ts.map +0 -1
- package/lib/typescript/src/scheduleInitialScroll.d.ts +0 -3
- package/lib/typescript/src/scheduleInitialScroll.d.ts.map +0 -1
- package/lib/typescript/src/useGestureViewerPaging.types.d.ts +0 -41
- package/lib/typescript/src/useGestureViewerPaging.types.d.ts.map +0 -1
- package/lib/typescript/src/useGestureViewerPaging.web.d.ts +0 -3
- package/lib/typescript/src/useGestureViewerPaging.web.d.ts.map +0 -1
- package/lib/typescript/src/utils/FlashList.d.ts +0 -2
- package/lib/typescript/src/utils/FlashList.d.ts.map +0 -1
- package/lib/typescript/src/utils/webScroll.d.ts +0 -18
- package/lib/typescript/src/utils/webScroll.d.ts.map +0 -1
- package/src/WebPagingFixStyle.tsx +0 -25
- package/src/scheduleInitialScroll.ts +0 -36
- package/src/useGestureViewerPaging.types.ts +0 -41
- package/src/useGestureViewerPaging.web.ts +0 -434
- package/src/utils/FlashList.ts +0 -7
- package/src/utils/webScroll.ts +0 -96
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { applyTapZoomAtPoint } from "./utils/tapZoom.js";
|
|
5
|
+
export function createWebClickHandler({
|
|
6
|
+
clearPendingWebSingleTap,
|
|
7
|
+
emitSingleTap,
|
|
8
|
+
enableDoubleTapZoom,
|
|
9
|
+
getCurrentTapTarget,
|
|
10
|
+
height,
|
|
11
|
+
isInteractionLocked,
|
|
12
|
+
maxZoomScale,
|
|
13
|
+
scale,
|
|
14
|
+
scheduleWebSingleTap,
|
|
15
|
+
translateX,
|
|
16
|
+
translateY,
|
|
17
|
+
width
|
|
18
|
+
}) {
|
|
19
|
+
return event => {
|
|
20
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
21
|
+
const x = event.clientX - rect.left;
|
|
22
|
+
const y = event.clientY - rect.top;
|
|
23
|
+
if (isInteractionLocked()) {
|
|
24
|
+
clearPendingWebSingleTap();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const tapTarget = getCurrentTapTarget();
|
|
28
|
+
if (!tapTarget) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (!enableDoubleTapZoom) {
|
|
32
|
+
emitSingleTap(x, y, tapTarget);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (event.detail === 2) {
|
|
36
|
+
clearPendingWebSingleTap();
|
|
37
|
+
applyTapZoomAtPoint({
|
|
38
|
+
x,
|
|
39
|
+
y,
|
|
40
|
+
width,
|
|
41
|
+
height,
|
|
42
|
+
maxZoomScale,
|
|
43
|
+
scale,
|
|
44
|
+
translateX,
|
|
45
|
+
translateY
|
|
46
|
+
});
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (event.detail === 1) {
|
|
50
|
+
scheduleWebSingleTap(() => {
|
|
51
|
+
emitSingleTap(x, y, tapTarget);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function useWebClickHandler({
|
|
57
|
+
clearPendingWebSingleTap,
|
|
58
|
+
emitSingleTap,
|
|
59
|
+
enableDoubleTapZoom,
|
|
60
|
+
getCurrentTapTarget,
|
|
61
|
+
height,
|
|
62
|
+
isInteractionLocked,
|
|
63
|
+
maxZoomScale,
|
|
64
|
+
scale,
|
|
65
|
+
scheduleWebSingleTap,
|
|
66
|
+
translateX,
|
|
67
|
+
translateY,
|
|
68
|
+
width
|
|
69
|
+
}) {
|
|
70
|
+
return useMemo(() => createWebClickHandler({
|
|
71
|
+
clearPendingWebSingleTap,
|
|
72
|
+
emitSingleTap,
|
|
73
|
+
enableDoubleTapZoom,
|
|
74
|
+
getCurrentTapTarget,
|
|
75
|
+
height,
|
|
76
|
+
isInteractionLocked,
|
|
77
|
+
maxZoomScale,
|
|
78
|
+
scale,
|
|
79
|
+
scheduleWebSingleTap,
|
|
80
|
+
translateX,
|
|
81
|
+
translateY,
|
|
82
|
+
width
|
|
83
|
+
}), [clearPendingWebSingleTap, emitSingleTap, enableDoubleTapZoom, getCurrentTapTarget, height, isInteractionLocked, maxZoomScale, scale, scheduleWebSingleTap, translateX, translateY, width]);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=useWebClickHandler.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","applyTapZoomAtPoint","createWebClickHandler","clearPendingWebSingleTap","emitSingleTap","enableDoubleTapZoom","getCurrentTapTarget","height","isInteractionLocked","maxZoomScale","scale","scheduleWebSingleTap","translateX","translateY","width","event","rect","currentTarget","getBoundingClientRect","x","clientX","left","y","clientY","top","tapTarget","detail","useWebClickHandler"],"sourceRoot":"../../src","sources":["useWebClickHandler.web.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAI/B,SAASC,mBAAmB,QAAQ,oBAAiB;AAsCrD,OAAO,SAASC,qBAAqBA,CAAQ;EAC3CC,wBAAwB;EACxBC,aAAa;EACbC,mBAAmB;EACnBC,mBAAmB;EACnBC,MAAM;EACNC,mBAAmB;EACnBC,YAAY;EACZC,KAAK;EACLC,oBAAoB;EACpBC,UAAU;EACVC,UAAU;EACVC;AAC4B,CAAC,EAAmB;EAChD,OAAQC,KAAK,IAAK;IAChB,MAAMC,IAAI,GAAGD,KAAK,CAACE,aAAa,CAACC,qBAAqB,CAAC,CAAC;IACxD,MAAMC,CAAC,GAAGJ,KAAK,CAACK,OAAO,GAAGJ,IAAI,CAACK,IAAI;IACnC,MAAMC,CAAC,GAAGP,KAAK,CAACQ,OAAO,GAAGP,IAAI,CAACQ,GAAG;IAElC,IAAIhB,mBAAmB,CAAC,CAAC,EAAE;MACzBL,wBAAwB,CAAC,CAAC;MAC1B;IACF;IAEA,MAAMsB,SAAS,GAAGnB,mBAAmB,CAAC,CAAC;IAEvC,IAAI,CAACmB,SAAS,EAAE;MACd;IACF;IAEA,IAAI,CAACpB,mBAAmB,EAAE;MACxBD,aAAa,CAACe,CAAC,EAAEG,CAAC,EAAEG,SAAS,CAAC;MAC9B;IACF;IAEA,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;MACtBvB,wBAAwB,CAAC,CAAC;MAC1BF,mBAAmB,CAAC;QAClBkB,CAAC;QACDG,CAAC;QACDR,KAAK;QACLP,MAAM;QACNE,YAAY;QACZC,KAAK;QACLE,UAAU;QACVC;MACF,CAAC,CAAC;MACF;IACF;IAEA,IAAIE,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;MACtBf,oBAAoB,CAAC,MAAM;QACzBP,aAAa,CAACe,CAAC,EAAEG,CAAC,EAAEG,SAAS,CAAC;MAChC,CAAC,CAAC;IACJ;EACF,CAAC;AACH;AAEA,OAAO,SAASE,kBAAkBA,CAAQ;EACxCxB,wBAAwB;EACxBC,aAAa;EACbC,mBAAmB;EACnBC,mBAAmB;EACnBC,MAAM;EACNC,mBAAmB;EACnBC,YAAY;EACZC,KAAK;EACLC,oBAAoB;EACpBC,UAAU;EACVC,UAAU;EACVC;AAC4B,CAAC,EAAmB;EAChD,OAAOd,OAAO,CACZ,MACEE,qBAAqB,CAAC;IACpBC,wBAAwB;IACxBC,aAAa;IACbC,mBAAmB;IACnBC,mBAAmB;IACnBC,MAAM;IACNC,mBAAmB;IACnBC,YAAY;IACZC,KAAK;IACLC,oBAAoB;IACpBC,UAAU;IACVC,UAAU;IACVC;EACF,CAAC,CAAC,EACJ,CACEX,wBAAwB,EACxBC,aAAa,EACbC,mBAAmB,EACnBC,mBAAmB,EACnBC,MAAM,EACNC,mBAAmB,EACnBC,YAAY,EACZC,KAAK,EACLC,oBAAoB,EACpBC,UAAU,EACVC,UAAU,EACVC,KAAK,CAET,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
export function useWebSingleTapTimer() {
|
|
5
|
+
const clearPendingWebSingleTap = useCallback(() => {}, []);
|
|
6
|
+
const scheduleWebSingleTap = useCallback(() => {}, []);
|
|
7
|
+
return {
|
|
8
|
+
clearPendingWebSingleTap,
|
|
9
|
+
scheduleWebSingleTap
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=useWebSingleTapTimer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useWebSingleTapTimer","clearPendingWebSingleTap","scheduleWebSingleTap"],"sourceRoot":"../../src","sources":["useWebSingleTapTimer.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAInC,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACrC,MAAMC,wBAAwB,GAAGF,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EAC1D,MAAMG,oBAAoB,GAAGH,WAAW,CAAuB,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EAE5E,OAAO;IAAEE,wBAAwB;IAAEC;EAAqB,CAAC;AAC3D","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
4
|
+
export function useWebSingleTapTimer() {
|
|
5
|
+
const webSingleTapTimerRef = useRef(null);
|
|
6
|
+
const clearPendingWebSingleTap = useCallback(() => {
|
|
7
|
+
if (webSingleTapTimerRef.current) {
|
|
8
|
+
clearTimeout(webSingleTapTimerRef.current);
|
|
9
|
+
webSingleTapTimerRef.current = null;
|
|
10
|
+
}
|
|
11
|
+
}, []);
|
|
12
|
+
const scheduleWebSingleTap = useCallback((callback, delay = 250) => {
|
|
13
|
+
clearPendingWebSingleTap();
|
|
14
|
+
webSingleTapTimerRef.current = setTimeout(() => {
|
|
15
|
+
callback();
|
|
16
|
+
webSingleTapTimerRef.current = null;
|
|
17
|
+
}, delay);
|
|
18
|
+
}, [clearPendingWebSingleTap]);
|
|
19
|
+
useEffect(() => clearPendingWebSingleTap, [clearPendingWebSingleTap]);
|
|
20
|
+
return {
|
|
21
|
+
clearPendingWebSingleTap,
|
|
22
|
+
scheduleWebSingleTap
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=useWebSingleTapTimer.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useWebSingleTapTimer","webSingleTapTimerRef","clearPendingWebSingleTap","current","clearTimeout","scheduleWebSingleTap","callback","delay","setTimeout"],"sourceRoot":"../../src","sources":["useWebSingleTapTimer.web.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAItD,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACrC,MAAMC,oBAAoB,GAAGF,MAAM,CAAuC,IAAI,CAAC;EAE/E,MAAMG,wBAAwB,GAAGL,WAAW,CAAC,MAAM;IACjD,IAAII,oBAAoB,CAACE,OAAO,EAAE;MAChCC,YAAY,CAACH,oBAAoB,CAACE,OAAO,CAAC;MAC1CF,oBAAoB,CAACE,OAAO,GAAG,IAAI;IACrC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,oBAAoB,GAAGR,WAAW,CACtC,CAACS,QAAQ,EAAEC,KAAK,GAAG,GAAG,KAAK;IACzBL,wBAAwB,CAAC,CAAC;IAE1BD,oBAAoB,CAACE,OAAO,GAAGK,UAAU,CAAC,MAAM;MAC9CF,QAAQ,CAAC,CAAC;MACVL,oBAAoB,CAACE,OAAO,GAAG,IAAI;IACrC,CAAC,EAAEI,KAAK,CAAC;EACX,CAAC,EACD,CAACL,wBAAwB,CAC3B,CAAC;EAEDJ,SAAS,CAAC,MAAMI,wBAAwB,EAAE,CAACA,wBAAwB,CAAC,CAAC;EAErE,OAAO;IAAEA,wBAAwB;IAAEG;EAAqB,CAAC;AAC3D","ignoreList":[]}
|
|
@@ -1,30 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { FlatList as RNFlatList, ScrollView as RNScrollView } from 'react-native';
|
|
4
|
-
import { FlatList as GestureFlatList, ScrollView as GestureScrollView } from 'react-native-gesture-handler';
|
|
5
|
-
import { FlashList } from "./FlashList.js";
|
|
6
|
-
export const isScrollViewLike = component => component === RNScrollView || component === GestureScrollView;
|
|
7
|
-
export const isFlatListLike = component => {
|
|
8
|
-
if (component === RNFlatList || component === GestureFlatList || isFlashListLike(component)) {
|
|
9
|
-
return true;
|
|
10
|
-
}
|
|
11
|
-
return false;
|
|
12
|
-
};
|
|
13
|
-
export const isFlashListLike = component => {
|
|
14
|
-
if (FlashList && component === FlashList) {
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
return component?.displayName === 'FlashList' || component?.name === 'FlashList';
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* iOS needs the extra Native gesture wrapper so the dismiss pan can resolve before the scrollable claims touches.
|
|
22
|
-
* We intentionally skip Android because the same require-to-fail relation regressed horizontal paging there,
|
|
23
|
-
* and we also avoid wrapping RNGH-provided scrollables to prevent double-applying Gesture.Native() to components that already participate in RNGH.
|
|
24
|
-
*/
|
|
25
|
-
export const shouldUseNativeScrollGesture = (platformOS, component) => {
|
|
26
|
-
return platformOS === 'ios' && component !== GestureScrollView && component !== GestureFlatList;
|
|
27
|
-
};
|
|
28
3
|
export const createBoundsConstraint = ({
|
|
29
4
|
width,
|
|
30
5
|
height
|
|
@@ -48,56 +23,4 @@ export const createBoundsConstraint = ({
|
|
|
48
23
|
translateY: Math.max(-maxTranslateY, Math.min(maxTranslateY, translateY))
|
|
49
24
|
};
|
|
50
25
|
};
|
|
51
|
-
export const createLoopData = (dataRef, enableLoop) => {
|
|
52
|
-
const data = dataRef.current;
|
|
53
|
-
if (!enableLoop || !data?.length || data.length <= 1) {
|
|
54
|
-
return data;
|
|
55
|
-
}
|
|
56
|
-
const lastItem = data.at(-1);
|
|
57
|
-
const firstItem = data[0];
|
|
58
|
-
if (lastItem === undefined || firstItem === undefined) {
|
|
59
|
-
return data;
|
|
60
|
-
}
|
|
61
|
-
return [lastItem, ...data, firstItem];
|
|
62
|
-
};
|
|
63
|
-
export const getLoopAdjustedIndex = (scrollIndex, originalDataLength, enableLoop) => {
|
|
64
|
-
if (!enableLoop || originalDataLength <= 1) {
|
|
65
|
-
return {
|
|
66
|
-
needsJump: false,
|
|
67
|
-
realIndex: scrollIndex
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
if (scrollIndex === 0) {
|
|
71
|
-
return {
|
|
72
|
-
jumpToIndex: originalDataLength,
|
|
73
|
-
needsJump: true,
|
|
74
|
-
realIndex: originalDataLength - 1
|
|
75
|
-
};
|
|
76
|
-
} else if (scrollIndex === originalDataLength + 1) {
|
|
77
|
-
return {
|
|
78
|
-
jumpToIndex: 1,
|
|
79
|
-
needsJump: true,
|
|
80
|
-
realIndex: 0
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
needsJump: false,
|
|
85
|
-
realIndex: scrollIndex - 1
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
export const createScrollAction = (listRef, width) => ({
|
|
89
|
-
scrollTo: (index, animated) => {
|
|
90
|
-
if (listRef?.scrollToIndex) {
|
|
91
|
-
listRef.scrollToIndex({
|
|
92
|
-
animated,
|
|
93
|
-
index
|
|
94
|
-
});
|
|
95
|
-
} else if (listRef?.scrollTo) {
|
|
96
|
-
listRef.scrollTo({
|
|
97
|
-
animated,
|
|
98
|
-
x: index * width
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createBoundsConstraint","width","height","scale","translateX","translateY","maxTranslateX","maxTranslateY","Math","max","min"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;AAAA,OAAO,MAAMA,sBAAsB,GACjCA,CAAC;EAAEC,KAAK;EAAEC;AAA0C,CAAC,KACrD,CAAC;EACCC,KAAK;EACLC,UAAU;EACVC;AAKF,CAAC,KAAK;EACJ,SAAS;;EAET,IAAIF,KAAK,IAAI,CAAC,EAAE;IACd,OAAO;MACLC,UAAU;MACVC;IACF,CAAC;EACH;EAEA,MAAMC,aAAa,GAAG,CAACL,KAAK,GAAGE,KAAK,GAAGF,KAAK,IAAI,CAAC;EACjD,MAAMM,aAAa,GAAG,CAACL,MAAM,GAAGC,KAAK,GAAGD,MAAM,IAAI,CAAC;EAEnD,OAAO;IACLE,UAAU,EAAEI,IAAI,CAACC,GAAG,CAAC,CAACH,aAAa,EAAEE,IAAI,CAACE,GAAG,CAACJ,aAAa,EAAEF,UAAU,CAAC,CAAC;IACzEC,UAAU,EAAEG,IAAI,CAACC,GAAG,CAAC,CAACF,aAAa,EAAEC,IAAI,CAACE,GAAG,CAACH,aAAa,EAAEF,UAAU,CAAC;EAC1E,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -25,10 +25,11 @@ export const applyTapZoomAtPoint = ({
|
|
|
25
25
|
// NOTE 확대로 밀려난 거리만큼 반대로 이동해서 탭 지점을 제자리에 유지
|
|
26
26
|
translateX.set(withTiming(-centerX * (nextScale - 1), timingConfig));
|
|
27
27
|
translateY.set(withTiming(-centerY * (nextScale - 1), timingConfig));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
translateY.set(withTiming(0, timingConfig));
|
|
28
|
+
scale.set(withTiming(nextScale, timingConfig));
|
|
29
|
+
return;
|
|
31
30
|
}
|
|
31
|
+
translateX.set(withTiming(0, timingConfig));
|
|
32
|
+
translateY.set(withTiming(0, timingConfig));
|
|
32
33
|
scale.set(withTiming(nextScale, timingConfig));
|
|
33
34
|
};
|
|
34
35
|
//# sourceMappingURL=tapZoom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Easing","withTiming","applyTapZoomAtPoint","x","y","width","height","maxZoomScale","scale","translateX","translateY","nextScale","get","timingConfig","duration","easing","bezier","centerX","centerY","set"],"sourceRoot":"../../../src","sources":["utils/tapZoom.ts"],"mappings":";;AACA,SAASA,MAAM,EAAEC,UAAU,QAAQ,yBAAyB;AAE5D,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,CAAC;EACDC,CAAC;EACDC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,KAAK;EACLC,UAAU;EACVC;AAUF,CAAC,KAAK;EACJ,SAAS;;EAET,MAAMC,SAAS,GAAGH,KAAK,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGL,YAAY;EACpD,MAAMM,YAAY,GAAG;IACnBC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEf,MAAM,CAACgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;EAC1C,CAAC;EAED,IAAIL,SAAS,GAAG,CAAC,EAAE;IACjB,MAAMM,OAAO,GAAGd,CAAC,GAAGE,KAAK,GAAG,CAAC;IAC7B,MAAMa,OAAO,GAAGd,CAAC,GAAGE,MAAM,GAAG,CAAC;;IAE9B;IACAG,UAAU,CAACU,GAAG,CAAClB,UAAU,CAAC,CAACgB,OAAO,IAAIN,SAAS,GAAG,CAAC,CAAC,EAAEE,YAAY,CAAC,CAAC;IACpEH,UAAU,CAACS,GAAG,CAAClB,UAAU,CAAC,CAACiB,OAAO,IAAIP,SAAS,GAAG,CAAC,CAAC,EAAEE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["Easing","withTiming","applyTapZoomAtPoint","x","y","width","height","maxZoomScale","scale","translateX","translateY","nextScale","get","timingConfig","duration","easing","bezier","centerX","centerY","set"],"sourceRoot":"../../../src","sources":["utils/tapZoom.ts"],"mappings":";;AACA,SAASA,MAAM,EAAEC,UAAU,QAAQ,yBAAyB;AAE5D,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,CAAC;EACDC,CAAC;EACDC,KAAK;EACLC,MAAM;EACNC,YAAY;EACZC,KAAK;EACLC,UAAU;EACVC;AAUF,CAAC,KAAK;EACJ,SAAS;;EAET,MAAMC,SAAS,GAAGH,KAAK,CAACI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGL,YAAY;EACpD,MAAMM,YAAY,GAAG;IACnBC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEf,MAAM,CAACgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;EAC1C,CAAC;EAED,IAAIL,SAAS,GAAG,CAAC,EAAE;IACjB,MAAMM,OAAO,GAAGd,CAAC,GAAGE,KAAK,GAAG,CAAC;IAC7B,MAAMa,OAAO,GAAGd,CAAC,GAAGE,MAAM,GAAG,CAAC;;IAE9B;IACAG,UAAU,CAACU,GAAG,CAAClB,UAAU,CAAC,CAACgB,OAAO,IAAIN,SAAS,GAAG,CAAC,CAAC,EAAEE,YAAY,CAAC,CAAC;IACpEH,UAAU,CAACS,GAAG,CAAClB,UAAU,CAAC,CAACiB,OAAO,IAAIP,SAAS,GAAG,CAAC,CAAC,EAAEE,YAAY,CAAC,CAAC;IACpEL,KAAK,CAACW,GAAG,CAAClB,UAAU,CAACU,SAAS,EAAEE,YAAY,CAAC,CAAC;IAC9C;EACF;EAEAJ,UAAU,CAACU,GAAG,CAAClB,UAAU,CAAC,CAAC,EAAEY,YAAY,CAAC,CAAC;EAC3CH,UAAU,CAACS,GAAG,CAAClB,UAAU,CAAC,CAAC,EAAEY,YAAY,CAAC,CAAC;EAC3CL,KAAK,CAACW,GAAG,CAAClB,UAAU,CAACU,SAAS,EAAEE,YAAY,CAAC,CAAC;AAChD,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { GestureViewerProps } from './types';
|
|
2
|
-
export declare function GestureViewer<ItemT
|
|
2
|
+
export declare function GestureViewer<ItemT>({ id, data, renderItem, renderContainer, width: customWidth, height: customHeight, backdropStyle: backdropStyleProps, containerStyle, initialIndex, pageSpacing, windowSize, enableLoop, ...props }: GestureViewerProps<ItemT>): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=GestureViewer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"GestureViewer.d.ts","sourceRoot":"","sources":["../../../src/GestureViewer.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgDlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,EACnC,EAAc,EACd,IAAI,EACJ,UAAU,EACV,eAAe,EACf,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,UAAc,EACd,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,CAAC,2CAqE3B"}
|
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
import { type SharedValue } from 'react-native-reanimated';
|
|
2
2
|
import type { GestureViewerEventCallback, GestureViewerEventData, GestureViewerEventType, GestureViewerState } from './types';
|
|
3
|
+
export type GestureViewerNavigationOptions = {
|
|
4
|
+
animated?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type GestureViewerNavigationAdapter = {
|
|
7
|
+
goToIndex: (index: number, options?: GestureViewerNavigationOptions) => void;
|
|
8
|
+
goToNext: () => void;
|
|
9
|
+
goToPrevious: () => void;
|
|
10
|
+
};
|
|
11
|
+
export type GestureViewerStateReader = () => GestureViewerState;
|
|
12
|
+
type GestureViewerEventListenerPresenceCallback = (eventType: GestureViewerEventType, hasListeners: boolean) => void;
|
|
3
13
|
declare class GestureViewerManager {
|
|
4
|
-
private currentIndex;
|
|
5
|
-
private dataLength;
|
|
6
14
|
private width;
|
|
7
15
|
private height;
|
|
8
16
|
private maxZoomScale;
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private listRef;
|
|
17
|
+
private navigationAdapter;
|
|
18
|
+
private stateReader;
|
|
12
19
|
private scale;
|
|
13
20
|
private rotation;
|
|
14
21
|
private translateX;
|
|
15
22
|
private translateY;
|
|
16
|
-
private resetTransformCallback;
|
|
17
|
-
private loopCallback;
|
|
18
|
-
private programmaticScrollVersion;
|
|
19
23
|
private listeners;
|
|
20
24
|
private eventListeners;
|
|
25
|
+
private eventListenerPresenceSubscribers;
|
|
21
26
|
private notifyListeners;
|
|
22
27
|
subscribe(listener: (state: GestureViewerState) => void): () => void;
|
|
23
28
|
addEventListener<T extends GestureViewerEventType>(eventType: T, callback: GestureViewerEventCallback<T>): () => void;
|
|
29
|
+
subscribeToEventListenerPresence(callback: GestureViewerEventListenerPresenceCallback): () => void;
|
|
30
|
+
hasEventListeners(eventType: GestureViewerEventType): boolean;
|
|
31
|
+
private notifyEventListenerPresence;
|
|
32
|
+
private notifyEventListenerPresenceSubscriber;
|
|
24
33
|
private emitEvent;
|
|
25
34
|
emitZoomChange: (scale: number, previousScale: number | null) => void;
|
|
26
35
|
emitRotationChange: (rotation: number, previousRotation: number | null) => void;
|
|
27
36
|
emitTap: (data: GestureViewerEventData["tap"]) => void;
|
|
28
37
|
getState(): GestureViewerState;
|
|
29
|
-
getProgrammaticScrollVersion(): number;
|
|
30
|
-
setEnableLoop(enabled: boolean): void;
|
|
31
38
|
setWidth(width: number): void;
|
|
32
39
|
setHeight(height: number): void;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
setEnableHorizontalSwipe(enabled: boolean): void;
|
|
36
|
-
setCurrentIndex(index: number): void;
|
|
40
|
+
setNavigationAdapter(adapter: GestureViewerNavigationAdapter | null): void;
|
|
41
|
+
setStateReader(reader: GestureViewerStateReader | null): void;
|
|
37
42
|
setZoomSharedValues(scale: SharedValue<number>, translateX: SharedValue<number>, translateY: SharedValue<number>, maxZoomScale: number): void;
|
|
38
|
-
setResetTransformCallback(callback: (() => void) | null): void;
|
|
39
43
|
notifyStateChange(): void;
|
|
40
44
|
setRotation(rotation: SharedValue<number>): void;
|
|
41
45
|
rotate: (angle?: 0 | 90 | 180 | 270 | 360, clockwise?: boolean) => void;
|
|
42
46
|
zoomIn: (multiplier?: number) => void;
|
|
43
47
|
zoomOut: (multiplier?: number) => void;
|
|
44
48
|
resetZoom: (scale?: number) => void;
|
|
45
|
-
goToIndex: (index: number) => void;
|
|
46
|
-
handleMomentumScrollEnd: (scrollIndex: number) => boolean;
|
|
47
|
-
cancelPendingLoopTransition: () => void;
|
|
48
|
-
handleScrollBeginDrag: () => void;
|
|
49
|
+
goToIndex: (index: number, options?: GestureViewerNavigationOptions) => void;
|
|
49
50
|
goToPrevious: () => void;
|
|
50
51
|
goToNext: () => void;
|
|
51
52
|
cleanUp(): void;
|
|
52
|
-
private updateCurrentIndex;
|
|
53
53
|
}
|
|
54
54
|
export default GestureViewerManager;
|
|
55
55
|
//# sourceMappingURL=GestureViewerManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GestureViewerManager.d.ts","sourceRoot":"","sources":["../../../src/GestureViewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,
|
|
1
|
+
{"version":3,"file":"GestureViewerManager.d.ts","sourceRoot":"","sources":["../../../src/GestureViewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,8BAA8B,KAAK,IAAI,CAAC;IAC7E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,MAAM,kBAAkB,CAAC;AAEhE,KAAK,0CAA0C,GAAG,CAChD,SAAS,EAAE,sBAAsB,EACjC,YAAY,EAAE,OAAO,KAClB,IAAI,CAAC;AAOV,cAAM,oBAAoB;IACxB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,UAAU,CAAoC;IAEtD,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,cAAc,CAA+D;IACrF,OAAO,CAAC,gCAAgC,CAAyD;IAEjG,OAAO,CAAC,eAAe;IAMvB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI;IAQvD,gBAAgB,CAAC,CAAC,SAAS,sBAAsB,EAC/C,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAwBzC,gCAAgC,CAAC,QAAQ,EAAE,0CAA0C;IAYrF,iBAAiB,CAAC,SAAS,EAAE,sBAAsB;IAInD,OAAO,CAAC,2BAA2B;IAMnC,OAAO,CAAC,qCAAqC;IAO7C,OAAO,CAAC,SAAS;IAWjB,cAAc,GAAI,OAAO,MAAM,EAAE,eAAe,MAAM,GAAG,IAAI,UAE3D;IAEF,kBAAkB,GAAI,UAAU,MAAM,EAAE,kBAAkB,MAAM,GAAG,IAAI,UAErE;IAEF,OAAO,GAAI,MAAM,sBAAsB,CAAC,KAAK,CAAC,UAE5C;IAEF,QAAQ,IAAI,kBAAkB;IAI9B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,oBAAoB,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI;IAInE,cAAc,CAAC,MAAM,EAAE,wBAAwB,GAAG,IAAI;IAItD,mBAAmB,CACjB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,YAAY,EAAE,MAAM;IAQtB,iBAAiB;IAIjB,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;IAIzC,MAAM,GAAI,QAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAQ,EAAE,mBAAgB,UA+B9D;IAEF,MAAM,GAAI,mBAAiB,UA0BzB;IAEF,OAAO,GAAI,mBAAiB,UAgC1B;IAEF,SAAS,GAAI,cAAS,UAcpB;IAEF,SAAS,GAAI,OAAO,MAAM,EAAE,UAAU,8BAA8B,UAMlE;IAEF,YAAY,aAMV;IAEF,QAAQ,aAMN;IAEF,OAAO;CAYR;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const PAGE_TRANSITION_CONFIG: {
|
|
2
|
+
duration: number;
|
|
3
|
+
easing: import("react-native-reanimated").EasingFunctionFactory;
|
|
4
|
+
};
|
|
5
|
+
export declare const PAGE_SPRING_CONFIG: {
|
|
6
|
+
damping: number;
|
|
7
|
+
energyThreshold: number;
|
|
8
|
+
mass: number;
|
|
9
|
+
overshootClamping: boolean;
|
|
10
|
+
stiffness: number;
|
|
11
|
+
};
|
|
12
|
+
export declare const SWIPE_THRESHOLD_RATIO = 0.25;
|
|
13
|
+
export declare const SWIPE_VELOCITY_THRESHOLD = 800;
|
|
14
|
+
export declare const EDGE_RESISTANCE = 0.35;
|
|
15
|
+
//# sourceMappingURL=gestureViewerAnimation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gestureViewerAnimation.d.ts","sourceRoot":"","sources":["../../../src/gestureViewerAnimation.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB;;;CAGlC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;CAM9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type HorizontalSwipeDirection = -1 | 0 | 1;
|
|
2
|
+
export type HorizontalPagingTarget = {
|
|
3
|
+
kind: 'move';
|
|
4
|
+
targetVirtualIndex: number;
|
|
5
|
+
} | {
|
|
6
|
+
kind: 'settle';
|
|
7
|
+
};
|
|
8
|
+
export declare function normalizeHorizontalSwipeThreshold(value: number | undefined, fallback: number): number;
|
|
9
|
+
export declare function resolveHorizontalSwipeDirection(translationX: number, velocityX: number, width: number, thresholdRatio: number, velocityThreshold: number): HorizontalSwipeDirection;
|
|
10
|
+
export declare function applyHorizontalEdgeResistance(nextPage: number, currentIndex: number, dataLength: number, centerVirtualIndex: number, enableLoop: boolean, resistance: number): number;
|
|
11
|
+
export declare function canMoveHorizontalPage(currentIndex: number, dataLength: number, direction: HorizontalSwipeDirection, enableLoop: boolean): boolean;
|
|
12
|
+
export declare function resolveHorizontalPagingTarget(centerVirtualIndex: number, currentIndex: number, dataLength: number, direction: HorizontalSwipeDirection, enableLoop: boolean): HorizontalPagingTarget;
|
|
13
|
+
//# sourceMappingURL=gestureViewerPaging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gestureViewerPaging.d.ts","sourceRoot":"","sources":["../../../src/gestureViewerPaging.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAElD,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEN,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,MAAM,GACf,MAAM,CAUR;AAED,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,GACxB,wBAAwB,CAc1B;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAoBR;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,wBAAwB,EACnC,UAAU,EAAE,OAAO,GAClB,OAAO,CAcT;AAED,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,wBAAwB,EACnC,UAAU,EAAE,OAAO,GAClB,sBAAsB,CAWxB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type RenderWindowSlot } from './renderWindow';
|
|
2
|
+
export type GestureViewerRenderWindowState<ItemT> = {
|
|
3
|
+
centerVirtualIndex: number;
|
|
4
|
+
currentIndex: number;
|
|
5
|
+
slots: RenderWindowSlot<ItemT>[];
|
|
6
|
+
};
|
|
7
|
+
export declare function resolveGestureViewerRenderWindow<ItemT>({ centerVirtualIndex, currentIndex, data, enableLoop, isTriggerOpening, windowSize, }: {
|
|
8
|
+
centerVirtualIndex: number;
|
|
9
|
+
currentIndex: number;
|
|
10
|
+
data: ItemT[];
|
|
11
|
+
enableLoop: boolean;
|
|
12
|
+
isTriggerOpening: boolean;
|
|
13
|
+
windowSize?: number;
|
|
14
|
+
}): GestureViewerRenderWindowState<ItemT>;
|
|
15
|
+
//# sourceMappingURL=gestureViewerRenderWindow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gestureViewerRenderWindow.d.ts","sourceRoot":"","sources":["../../../src/gestureViewerRenderWindow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,8BAA8B,CAAC,KAAK,IAAI;IAClD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;CAClC,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,EACtD,kBAAkB,EAClB,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,8BAA8B,CAAC,KAAK,CAAC,CA2BxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWebContentProps.d.ts","sourceRoot":"","sources":["../../../src/getWebContentProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,eAAe,MAE9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getWebContentProps.web.d.ts","sourceRoot":"","sources":["../../../src/getWebContentProps.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,eAAe;;EAE7D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { GestureTriggerProps } from './GestureTrigger';
|
|
2
2
|
export { GestureTrigger } from './GestureTrigger';
|
|
3
3
|
export { GestureViewer } from './GestureViewer';
|
|
4
|
-
export type { GestureViewerController, GestureViewerEventCallback, GestureViewerEventData, GestureViewerEventType, GestureViewerProps, GestureViewerState, GestureViewerSingleTapEvent, } from './types';
|
|
4
|
+
export type { GestureViewerController, GestureViewerEventCallback, GestureViewerEventData, GestureViewerEventType, GestureViewerProps, GestureViewerRenderItemInfo, GestureViewerState, GestureViewerSingleTapEvent, } from './types';
|
|
5
5
|
export { useGestureViewerController } from './useGestureViewerController';
|
|
6
6
|
export { useGestureViewerEvent } from './useGestureViewerEvent';
|
|
7
7
|
export { useGestureViewerState } from './useGestureViewerState';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformTapGestures.d.ts","sourceRoot":"","sources":["../../../src/platformTapGestures.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platformTapGestures.web.d.ts","sourceRoot":"","sources":["../../../src/platformTapGestures.web.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,QAAQ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare const DEFAULT_WINDOW_SIZE = 3;
|
|
2
|
+
export declare const MIN_WINDOW_SIZE = 3;
|
|
3
|
+
type NavigationDirection = -1 | 1;
|
|
4
|
+
export type RenderWindowSlot<ItemT> = {
|
|
5
|
+
item: ItemT;
|
|
6
|
+
logicalIndex: number;
|
|
7
|
+
slotKey: string;
|
|
8
|
+
virtualIndex: number;
|
|
9
|
+
};
|
|
10
|
+
export type NavigationResolution = {
|
|
11
|
+
kind: 'noop';
|
|
12
|
+
} | {
|
|
13
|
+
direction: NavigationDirection;
|
|
14
|
+
kind: 'step';
|
|
15
|
+
targetIndex: number;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'jump';
|
|
18
|
+
targetIndex: number;
|
|
19
|
+
};
|
|
20
|
+
export type NavigationOptions = {
|
|
21
|
+
animated?: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare function normalizeWindowSize(windowSize?: number): number;
|
|
24
|
+
export declare function normalizePageSpacing(pageSpacing?: number): number;
|
|
25
|
+
export declare function getPageStride(width: number, pageSpacing?: number): number;
|
|
26
|
+
export declare function clampIndex(index: number | undefined, dataLength: number): number;
|
|
27
|
+
export declare function getLogicalIndex(virtualIndex: number, dataLength: number, enableLoop: boolean): number | null;
|
|
28
|
+
export declare function getVirtualIndexForLogicalIndex(logicalIndex: number, centerVirtualIndex: number, dataLength: number, enableLoop: boolean): number | null;
|
|
29
|
+
export declare function createRenderWindow<ItemT>({ centerVirtualIndex, data, enableLoop, windowSize, }: {
|
|
30
|
+
centerVirtualIndex: number;
|
|
31
|
+
data: ItemT[];
|
|
32
|
+
enableLoop: boolean;
|
|
33
|
+
windowSize?: number;
|
|
34
|
+
}): RenderWindowSlot<ItemT>[];
|
|
35
|
+
export declare function resolveNavigation({ currentIndex, dataLength, enableLoop, preferredDirection, targetIndex, }: {
|
|
36
|
+
currentIndex: number;
|
|
37
|
+
dataLength: number;
|
|
38
|
+
enableLoop: boolean;
|
|
39
|
+
preferredDirection?: NavigationDirection;
|
|
40
|
+
targetIndex: number;
|
|
41
|
+
}): NavigationResolution;
|
|
42
|
+
export declare function shouldRunNavigationDuringTransition(resolution: NavigationResolution, options?: NavigationOptions): boolean;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=renderWindow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderWindow.d.ts","sourceRoot":"","sources":["../../../src/renderWindow.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,KAAK,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAElC,MAAM,MAAM,gBAAgB,CAAC,KAAK,IAAI;IACpC,IAAI,EAAE,KAAK,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,SAAS,EAAE,mBAAmB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA+BF,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAW/D;AAED,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYhF;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,OAAO,GAClB,MAAM,GAAG,IAAI,CAcf;AAED,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,OAAO,GAClB,MAAM,GAAG,IAAI,CAqBf;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,EACxC,kBAAkB,EAClB,IAAI,EACJ,UAAU,EACV,UAAU,GACX,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,CA4B5B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,WAAW,GACZ,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,oBAAoB,CAyCvB;AAED,wBAAgB,mCAAmC,CACjD,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAMT"}
|