react-native-gesture-image-viewer 2.4.0 → 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.
Files changed (133) hide show
  1. package/README.md +5 -3
  2. package/lib/module/GestureViewer.js +88 -146
  3. package/lib/module/GestureViewer.js.map +1 -1
  4. package/lib/module/GestureViewerManager.js +49 -105
  5. package/lib/module/GestureViewerManager.js.map +1 -1
  6. package/lib/module/gestureViewerAnimation.js +18 -0
  7. package/lib/module/gestureViewerAnimation.js.map +1 -0
  8. package/lib/module/gestureViewerPaging.js +66 -0
  9. package/lib/module/gestureViewerPaging.js.map +1 -0
  10. package/lib/module/gestureViewerRenderWindow.js +29 -0
  11. package/lib/module/gestureViewerRenderWindow.js.map +1 -0
  12. package/lib/module/getWebContentProps.js +6 -0
  13. package/lib/module/getWebContentProps.js.map +1 -0
  14. package/lib/module/getWebContentProps.web.js +8 -0
  15. package/lib/module/getWebContentProps.web.js.map +1 -0
  16. package/lib/module/platformTapGestures.js +4 -0
  17. package/lib/module/platformTapGestures.js.map +1 -0
  18. package/lib/module/platformTapGestures.web.js +4 -0
  19. package/lib/module/platformTapGestures.web.js.map +1 -0
  20. package/lib/module/renderWindow.js +160 -0
  21. package/lib/module/renderWindow.js.map +1 -0
  22. package/lib/module/useGestureViewer.js +386 -206
  23. package/lib/module/useGestureViewer.js.map +1 -1
  24. package/lib/module/useGestureViewerController.js +3 -3
  25. package/lib/module/useGestureViewerController.js.map +1 -1
  26. package/lib/module/useGestureViewerManagerBridge.js +85 -0
  27. package/lib/module/useGestureViewerManagerBridge.js.map +1 -0
  28. package/lib/module/useGestureViewerPaging.js +147 -79
  29. package/lib/module/useGestureViewerPaging.js.map +1 -1
  30. package/lib/module/useWebClickHandler.js +7 -0
  31. package/lib/module/useWebClickHandler.js.map +1 -0
  32. package/lib/module/useWebClickHandler.web.js +85 -0
  33. package/lib/module/useWebClickHandler.web.js.map +1 -0
  34. package/lib/module/useWebSingleTapTimer.js +12 -0
  35. package/lib/module/useWebSingleTapTimer.js.map +1 -0
  36. package/lib/module/useWebSingleTapTimer.web.js +25 -0
  37. package/lib/module/useWebSingleTapTimer.web.js.map +1 -0
  38. package/lib/module/utils/index.js +0 -77
  39. package/lib/module/utils/index.js.map +1 -1
  40. package/lib/module/utils/tapZoom.js +4 -3
  41. package/lib/module/utils/tapZoom.js.map +1 -1
  42. package/lib/typescript/src/GestureViewer.d.ts +1 -1
  43. package/lib/typescript/src/GestureViewer.d.ts.map +1 -1
  44. package/lib/typescript/src/GestureViewerManager.d.ts +20 -20
  45. package/lib/typescript/src/GestureViewerManager.d.ts.map +1 -1
  46. package/lib/typescript/src/gestureViewerAnimation.d.ts +15 -0
  47. package/lib/typescript/src/gestureViewerAnimation.d.ts.map +1 -0
  48. package/lib/typescript/src/gestureViewerPaging.d.ts +13 -0
  49. package/lib/typescript/src/gestureViewerPaging.d.ts.map +1 -0
  50. package/lib/typescript/src/gestureViewerRenderWindow.d.ts +15 -0
  51. package/lib/typescript/src/gestureViewerRenderWindow.d.ts.map +1 -0
  52. package/lib/typescript/src/getWebContentProps.d.ts +3 -0
  53. package/lib/typescript/src/getWebContentProps.d.ts.map +1 -0
  54. package/lib/typescript/src/getWebContentProps.web.d.ts +5 -0
  55. package/lib/typescript/src/getWebContentProps.web.d.ts.map +1 -0
  56. package/lib/typescript/src/platformTapGestures.d.ts +2 -0
  57. package/lib/typescript/src/platformTapGestures.d.ts.map +1 -0
  58. package/lib/typescript/src/platformTapGestures.web.d.ts +2 -0
  59. package/lib/typescript/src/platformTapGestures.web.d.ts.map +1 -0
  60. package/lib/typescript/src/renderWindow.d.ts +44 -0
  61. package/lib/typescript/src/renderWindow.d.ts.map +1 -0
  62. package/lib/typescript/src/types.d.ts +36 -53
  63. package/lib/typescript/src/types.d.ts.map +1 -1
  64. package/lib/typescript/src/useGestureViewer.d.ts +9 -9
  65. package/lib/typescript/src/useGestureViewer.d.ts.map +1 -1
  66. package/lib/typescript/src/useGestureViewerController.d.ts +1 -1
  67. package/lib/typescript/src/useGestureViewerManagerBridge.d.ts +28 -0
  68. package/lib/typescript/src/useGestureViewerManagerBridge.d.ts.map +1 -0
  69. package/lib/typescript/src/useGestureViewerPaging.d.ts +31 -2
  70. package/lib/typescript/src/useGestureViewerPaging.d.ts.map +1 -1
  71. package/lib/typescript/src/useWebClickHandler.d.ts +35 -0
  72. package/lib/typescript/src/useWebClickHandler.d.ts.map +1 -0
  73. package/lib/typescript/src/useWebClickHandler.web.d.ts +36 -0
  74. package/lib/typescript/src/useWebClickHandler.web.d.ts.map +1 -0
  75. package/lib/typescript/src/useWebSingleTapTimer.d.ts +6 -0
  76. package/lib/typescript/src/useWebSingleTapTimer.d.ts.map +1 -0
  77. package/lib/typescript/src/useWebSingleTapTimer.web.d.ts +6 -0
  78. package/lib/typescript/src/useWebSingleTapTimer.web.d.ts.map +1 -0
  79. package/lib/typescript/src/utils/index.d.ts +0 -20
  80. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  81. package/lib/typescript/src/utils/tapZoom.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/src/GestureViewer.tsx +104 -206
  84. package/src/GestureViewerManager.ts +77 -122
  85. package/src/gestureViewerAnimation.ts +18 -0
  86. package/src/gestureViewerPaging.ts +116 -0
  87. package/src/gestureViewerRenderWindow.ts +56 -0
  88. package/src/getWebContentProps.ts +5 -0
  89. package/src/getWebContentProps.web.ts +5 -0
  90. package/src/platformTapGestures.ts +1 -0
  91. package/src/platformTapGestures.web.ts +1 -0
  92. package/src/renderWindow.ts +253 -0
  93. package/src/types.ts +34 -100
  94. package/src/useGestureViewer.ts +557 -271
  95. package/src/useGestureViewerController.ts +3 -3
  96. package/src/useGestureViewerManagerBridge.ts +118 -0
  97. package/src/useGestureViewerPaging.ts +277 -114
  98. package/src/useWebClickHandler.ts +44 -0
  99. package/src/useWebClickHandler.web.ts +146 -0
  100. package/src/useWebSingleTapTimer.ts +10 -0
  101. package/src/useWebSingleTapTimer.web.ts +30 -0
  102. package/src/utils/index.ts +0 -102
  103. package/src/utils/tapZoom.ts +4 -3
  104. package/lib/module/WebPagingFixStyle.js +0 -25
  105. package/lib/module/WebPagingFixStyle.js.map +0 -1
  106. package/lib/module/scheduleInitialScroll.js +0 -21
  107. package/lib/module/scheduleInitialScroll.js.map +0 -1
  108. package/lib/module/useGestureViewerPaging.types.js +0 -4
  109. package/lib/module/useGestureViewerPaging.types.js.map +0 -1
  110. package/lib/module/useGestureViewerPaging.web.js +0 -291
  111. package/lib/module/useGestureViewerPaging.web.js.map +0 -1
  112. package/lib/module/utils/FlashList.js +0 -9
  113. package/lib/module/utils/FlashList.js.map +0 -1
  114. package/lib/module/utils/webScroll.js +0 -70
  115. package/lib/module/utils/webScroll.js.map +0 -1
  116. package/lib/typescript/src/WebPagingFixStyle.d.ts +0 -6
  117. package/lib/typescript/src/WebPagingFixStyle.d.ts.map +0 -1
  118. package/lib/typescript/src/scheduleInitialScroll.d.ts +0 -3
  119. package/lib/typescript/src/scheduleInitialScroll.d.ts.map +0 -1
  120. package/lib/typescript/src/useGestureViewerPaging.types.d.ts +0 -42
  121. package/lib/typescript/src/useGestureViewerPaging.types.d.ts.map +0 -1
  122. package/lib/typescript/src/useGestureViewerPaging.web.d.ts +0 -3
  123. package/lib/typescript/src/useGestureViewerPaging.web.d.ts.map +0 -1
  124. package/lib/typescript/src/utils/FlashList.d.ts +0 -2
  125. package/lib/typescript/src/utils/FlashList.d.ts.map +0 -1
  126. package/lib/typescript/src/utils/webScroll.d.ts +0 -18
  127. package/lib/typescript/src/utils/webScroll.d.ts.map +0 -1
  128. package/src/WebPagingFixStyle.tsx +0 -25
  129. package/src/scheduleInitialScroll.ts +0 -36
  130. package/src/useGestureViewerPaging.types.ts +0 -42
  131. package/src/useGestureViewerPaging.web.ts +0 -453
  132. package/src/utils/FlashList.ts +0 -7
  133. 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":["FlatList","RNFlatList","ScrollView","RNScrollView","GestureFlatList","GestureScrollView","FlashList","isScrollViewLike","component","isFlatListLike","isFlashListLike","displayName","name","shouldUseNativeScrollGesture","platformOS","createBoundsConstraint","width","height","scale","translateX","translateY","maxTranslateX","maxTranslateY","Math","max","min","createLoopData","dataRef","enableLoop","data","current","length","lastItem","at","firstItem","undefined","getLoopAdjustedIndex","scrollIndex","originalDataLength","needsJump","realIndex","jumpToIndex","createScrollAction","listRef","scrollTo","index","animated","scrollToIndex","x"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"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","ignoreList":[]}
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
- } else {
29
- translateX.set(withTiming(0, timingConfig));
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;EACtE,CAAC,MAAM;IACLJ,UAAU,CAACU,GAAG,CAAClB,UAAU,CAAC,CAAC,EAAEY,YAAY,CAAC,CAAC;IAC3CH,UAAU,CAACS,GAAG,CAAClB,UAAU,CAAC,CAAC,EAAEY,YAAY,CAAC,CAAC;EAC7C;EAEAL,KAAK,CAACW,GAAG,CAAClB,UAAU,CAACU,SAAS,EAAEE,YAAY,CAAC,CAAC;AAChD,CAAC","ignoreList":[]}
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, LC>({ id, data, renderItem: renderItemProp, renderContainer, ListComponent, width: customWidth, height: customHeight, listProps, backdropStyle: backdropStyleProps, containerStyle, initialIndex, itemSpacing, enableSnapMode, enableLoop, ...props }: GestureViewerProps<ItemT, LC>): import("react/jsx-runtime").JSX.Element;
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;AAWlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EACvC,EAAc,EACd,IAAI,EACJ,UAAU,EAAE,cAAc,EAC1B,eAAe,EACf,aAAa,EACb,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,YAAY,EACpB,SAAS,EACT,aAAa,EAAE,kBAAkB,EACjC,cAAc,EACd,YAAgB,EAChB,WAAe,EACf,cAAsB,EACtB,UAAkB,EAClB,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,2CAoN/B"}
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 enableHorizontalSwipe;
10
- private enableLoop;
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
- setListRef(ref: any): void;
34
- setDataLength(length: number): void;
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,cAAM,oBAAoB;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAoB;IAEnC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,yBAAyB,CAAK;IAEtC,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,cAAc,CAA+D;IAErF,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;IAqBzC,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;IAO9B,4BAA4B;IAI5B,aAAa,CAAC,OAAO,EAAE,OAAO;IAI9B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,UAAU,CAAC,GAAG,EAAE,GAAG;IAInB,aAAa,CAAC,MAAM,EAAE,MAAM;IAI5B,wBAAwB,CAAC,OAAO,EAAE,OAAO;IAIzC,eAAe,CAAC,KAAK,EAAE,MAAM;IAM7B,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,yBAAyB,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;IAIvD,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,UAoDxB;IAEF,uBAAuB,GAAI,aAAa,MAAM,aAY5C;IAEF,2BAA2B,aAEzB;IAEF,qBAAqB,aAEnB;IAEF,YAAY,aAEV;IAEF,QAAQ,aAEN;IAEF,OAAO;IAgBP,OAAO,CAAC,kBAAkB,CAGxB;CACH;AAED,eAAe,oBAAoB,CAAC"}
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,3 @@
1
+ import type { WebClickHandler } from './useWebClickHandler';
2
+ export declare function getWebContentProps(_onWebClick: WebClickHandler): {};
3
+ //# sourceMappingURL=getWebContentProps.d.ts.map
@@ -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,5 @@
1
+ import type { WebClickHandler } from './useWebClickHandler';
2
+ export declare function getWebContentProps(onWebClick: WebClickHandler): {
3
+ onClick: WebClickHandler;
4
+ };
5
+ //# sourceMappingURL=getWebContentProps.web.d.ts.map
@@ -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"}
@@ -0,0 +1,2 @@
1
+ export declare const enableNativeTapGestures = true;
2
+ //# sourceMappingURL=platformTapGestures.d.ts.map
@@ -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,2 @@
1
+ export declare const enableNativeTapGestures = false;
2
+ //# sourceMappingURL=platformTapGestures.web.d.ts.map
@@ -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"}