react-native-reanimated-carousel 4.0.0-alpha.0 → 4.0.0-alpha.10

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 (230) hide show
  1. package/README.md +22 -162
  2. package/lib/commonjs/components/BaseLayout.js +95 -0
  3. package/lib/commonjs/components/BaseLayout.js.map +1 -0
  4. package/lib/commonjs/components/Carousel.js +210 -0
  5. package/lib/commonjs/components/Carousel.js.map +1 -0
  6. package/lib/commonjs/components/ItemRenderer.js +80 -0
  7. package/lib/commonjs/components/ItemRenderer.js.map +1 -0
  8. package/lib/commonjs/components/LazyView.js +22 -0
  9. package/lib/commonjs/components/LazyView.js.map +1 -0
  10. package/lib/commonjs/components/ScrollViewGesture.js +315 -0
  11. package/lib/commonjs/components/ScrollViewGesture.js.map +1 -0
  12. package/lib/commonjs/components/rnr-demo.test.js +45 -0
  13. package/lib/commonjs/components/rnr-demo.test.js.map +1 -0
  14. package/lib/commonjs/constants/index.js +21 -1
  15. package/lib/commonjs/constants/index.js.map +1 -1
  16. package/lib/commonjs/hooks/useAutoPlay.js +56 -1
  17. package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
  18. package/lib/commonjs/hooks/useCarouselController.js +245 -1
  19. package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
  20. package/lib/commonjs/hooks/useCheckMounted.js +23 -1
  21. package/lib/commonjs/hooks/useCheckMounted.js.map +1 -1
  22. package/lib/commonjs/hooks/useCommonVariables.js +102 -1
  23. package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
  24. package/lib/commonjs/hooks/useCommonVariables.test.js +38 -0
  25. package/lib/commonjs/hooks/useCommonVariables.test.js.map +1 -0
  26. package/lib/commonjs/hooks/useInitProps.js +78 -1
  27. package/lib/commonjs/hooks/useInitProps.js.map +1 -1
  28. package/lib/commonjs/hooks/useLayoutConfig.js +39 -1
  29. package/lib/commonjs/hooks/useLayoutConfig.js.map +1 -1
  30. package/lib/commonjs/hooks/useOffsetX.js +51 -1
  31. package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
  32. package/lib/commonjs/hooks/useOffsetX.test.js +53 -0
  33. package/lib/commonjs/hooks/useOffsetX.test.js.map +1 -0
  34. package/lib/commonjs/hooks/useOnProgressChange.js +38 -1
  35. package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
  36. package/lib/commonjs/hooks/usePanGestureProxy.js +84 -0
  37. package/lib/commonjs/hooks/usePanGestureProxy.js.map +1 -0
  38. package/lib/commonjs/hooks/usePanGestureProxy.test.js +397 -0
  39. package/lib/commonjs/hooks/usePanGestureProxy.test.js.map +1 -0
  40. package/lib/commonjs/hooks/usePropsErrorBoundary.js +36 -1
  41. package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
  42. package/lib/commonjs/hooks/useUpdateGestureConfig.js +20 -0
  43. package/lib/commonjs/hooks/useUpdateGestureConfig.js.map +1 -0
  44. package/lib/commonjs/hooks/useVisibleRanges.js +71 -1
  45. package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
  46. package/lib/commonjs/hooks/useVisibleRanges.test.js +162 -0
  47. package/lib/commonjs/hooks/useVisibleRanges.test.js.map +1 -0
  48. package/lib/commonjs/index.js +13 -1
  49. package/lib/commonjs/index.js.map +1 -1
  50. package/lib/commonjs/layouts/index.js +20 -1
  51. package/lib/commonjs/layouts/index.js.map +1 -1
  52. package/lib/commonjs/layouts/normal.js +27 -1
  53. package/lib/commonjs/layouts/normal.js.map +1 -1
  54. package/lib/commonjs/layouts/parallax.js +38 -1
  55. package/lib/commonjs/layouts/parallax.js.map +1 -1
  56. package/lib/commonjs/layouts/stack.js +215 -1
  57. package/lib/commonjs/layouts/stack.js.map +1 -1
  58. package/lib/commonjs/store/index.js +14 -1
  59. package/lib/commonjs/store/index.js.map +1 -1
  60. package/lib/commonjs/types.js +5 -1
  61. package/lib/commonjs/utils/compute-offset-if-data-changed.js +52 -0
  62. package/lib/commonjs/utils/compute-offset-if-data-changed.js.map +1 -0
  63. package/lib/commonjs/utils/compute-offset-if-data-changed.test.js +30 -0
  64. package/lib/commonjs/utils/compute-offset-if-data-changed.test.js.map +1 -0
  65. package/lib/commonjs/utils/compute-offset-if-size-changed.js +18 -0
  66. package/lib/commonjs/utils/compute-offset-if-size-changed.js.map +1 -0
  67. package/lib/commonjs/utils/compute-offset-if-size-changed.test.js +72 -0
  68. package/lib/commonjs/utils/compute-offset-if-size-changed.test.js.map +1 -0
  69. package/lib/commonjs/utils/computed-with-auto-fill-data.js +124 -0
  70. package/lib/commonjs/utils/computed-with-auto-fill-data.js.map +1 -0
  71. package/lib/commonjs/utils/deal-with-animation.js +21 -0
  72. package/lib/commonjs/utils/deal-with-animation.js.map +1 -0
  73. package/lib/commonjs/utils/handleroffset-direction.js +16 -0
  74. package/lib/commonjs/utils/handleroffset-direction.js.map +1 -0
  75. package/lib/commonjs/utils/handleroffset-direction.test.js +46 -0
  76. package/lib/commonjs/utils/handleroffset-direction.test.js.map +1 -0
  77. package/lib/commonjs/utils/index.test.js +74 -0
  78. package/lib/commonjs/utils/index.test.js.map +1 -0
  79. package/lib/commonjs/utils/log.js +22 -1
  80. package/lib/commonjs/utils/log.js.map +1 -1
  81. package/lib/module/{layouts → components}/BaseLayout.js +6 -16
  82. package/lib/module/components/BaseLayout.js.map +1 -0
  83. package/lib/module/{Carousel.js → components/Carousel.js} +33 -52
  84. package/lib/module/components/Carousel.js.map +1 -0
  85. package/lib/module/components/ItemRenderer.js +62 -0
  86. package/lib/module/components/ItemRenderer.js.map +1 -0
  87. package/lib/module/{ScrollViewGesture.js → components/ScrollViewGesture.js} +59 -32
  88. package/lib/module/components/ScrollViewGesture.js.map +1 -0
  89. package/lib/module/components/rnr-demo.test.js +33 -0
  90. package/lib/module/components/rnr-demo.test.js.map +1 -0
  91. package/lib/module/hooks/useCarouselController.js +15 -14
  92. package/lib/module/hooks/useCarouselController.js.map +1 -1
  93. package/lib/module/hooks/useCommonVariables.js +39 -9
  94. package/lib/module/hooks/useCommonVariables.js.map +1 -1
  95. package/lib/module/hooks/useCommonVariables.test.js +34 -0
  96. package/lib/module/hooks/useCommonVariables.test.js.map +1 -0
  97. package/lib/module/hooks/useInitProps.js +1 -3
  98. package/lib/module/hooks/useInitProps.js.map +1 -1
  99. package/lib/module/hooks/useLayoutConfig.js.map +1 -1
  100. package/lib/module/hooks/useOffsetX.js +9 -6
  101. package/lib/module/hooks/useOffsetX.js.map +1 -1
  102. package/lib/module/hooks/useOffsetX.test.js +48 -0
  103. package/lib/module/hooks/useOffsetX.test.js.map +1 -0
  104. package/lib/module/hooks/useOnProgressChange.js +1 -1
  105. package/lib/module/hooks/useOnProgressChange.js.map +1 -1
  106. package/lib/module/hooks/usePanGestureProxy.js +71 -0
  107. package/lib/module/hooks/usePanGestureProxy.js.map +1 -0
  108. package/lib/module/hooks/usePanGestureProxy.test.js +383 -0
  109. package/lib/module/hooks/usePanGestureProxy.test.js.map +1 -0
  110. package/lib/module/hooks/useUpdateGestureConfig.js +10 -0
  111. package/lib/module/hooks/useUpdateGestureConfig.js.map +1 -0
  112. package/lib/module/hooks/useVisibleRanges.js +47 -19
  113. package/lib/module/hooks/useVisibleRanges.js.map +1 -1
  114. package/lib/module/hooks/useVisibleRanges.test.js +157 -0
  115. package/lib/module/hooks/useVisibleRanges.test.js.map +1 -0
  116. package/lib/module/index.js +1 -2
  117. package/lib/module/index.js.map +1 -1
  118. package/lib/module/{hooks/computeNewIndexWhenDataChanges.js → utils/compute-offset-if-data-changed.js} +2 -2
  119. package/lib/module/utils/compute-offset-if-data-changed.js.map +1 -0
  120. package/lib/module/utils/compute-offset-if-data-changed.test.js +27 -0
  121. package/lib/module/utils/compute-offset-if-data-changed.test.js.map +1 -0
  122. package/lib/module/utils/compute-offset-if-size-changed.js +11 -0
  123. package/lib/module/utils/compute-offset-if-size-changed.js.map +1 -0
  124. package/lib/module/utils/compute-offset-if-size-changed.test.js +69 -0
  125. package/lib/module/utils/compute-offset-if-size-changed.test.js.map +1 -0
  126. package/lib/module/utils/{computedWithAutoFillData.js → computed-with-auto-fill-data.js} +1 -1
  127. package/lib/module/utils/computed-with-auto-fill-data.js.map +1 -0
  128. package/lib/module/utils/{dealWithAnimation.js → deal-with-animation.js} +1 -1
  129. package/lib/module/utils/deal-with-animation.js.map +1 -0
  130. package/lib/module/utils/handleroffset-direction.js +9 -0
  131. package/lib/module/utils/handleroffset-direction.js.map +1 -0
  132. package/lib/module/utils/handleroffset-direction.test.js +41 -0
  133. package/lib/module/utils/handleroffset-direction.test.js.map +1 -0
  134. package/lib/module/{hooks → utils}/index.test.js +6 -6
  135. package/lib/module/utils/index.test.js.map +1 -0
  136. package/lib/typescript/{Carousel.d.ts → components/Carousel.d.ts} +1 -1
  137. package/lib/typescript/components/ItemRenderer.d.ts +22 -0
  138. package/lib/typescript/{ScrollViewGesture.d.ts → components/ScrollViewGesture.d.ts} +1 -1
  139. package/lib/typescript/hooks/useCarouselController.d.ts +3 -2
  140. package/lib/typescript/hooks/useCommonVariables.test.d.ts +1 -0
  141. package/lib/typescript/hooks/useLayoutConfig.d.ts +1 -1
  142. package/lib/typescript/hooks/useOffsetX.test.d.ts +1 -0
  143. package/lib/typescript/hooks/usePanGestureProxy.d.ts +9 -0
  144. package/lib/typescript/hooks/usePanGestureProxy.test.d.ts +1 -0
  145. package/lib/typescript/hooks/useUpdateGestureConfig.d.ts +5 -0
  146. package/lib/typescript/hooks/useVisibleRanges.d.ts +8 -4
  147. package/lib/typescript/hooks/useVisibleRanges.test.d.ts +1 -0
  148. package/lib/typescript/index.d.ts +3 -2
  149. package/lib/typescript/types.d.ts +113 -104
  150. package/lib/typescript/{hooks/computeNewIndexWhenDataChanges.d.ts → utils/compute-offset-if-data-changed.d.ts} +1 -1
  151. package/lib/typescript/utils/compute-offset-if-data-changed.test.d.ts +1 -0
  152. package/lib/typescript/utils/compute-offset-if-size-changed.d.ts +5 -0
  153. package/lib/typescript/utils/compute-offset-if-size-changed.test.d.ts +1 -0
  154. package/lib/typescript/utils/handleroffset-direction.d.ts +3 -0
  155. package/lib/typescript/utils/handleroffset-direction.test.d.ts +1 -0
  156. package/lib/typescript/utils/index.test.d.ts +1 -0
  157. package/package.json +32 -73
  158. package/src/{layouts → components}/BaseLayout.tsx +7 -35
  159. package/src/{Carousel.tsx → components/Carousel.tsx} +35 -69
  160. package/src/components/ItemRenderer.tsx +105 -0
  161. package/src/{ScrollViewGesture.tsx → components/ScrollViewGesture.tsx} +88 -48
  162. package/src/components/rnr-demo.test.tsx +43 -0
  163. package/src/hooks/useCarouselController.tsx +27 -24
  164. package/src/hooks/useCommonVariables.test.tsx +41 -0
  165. package/src/hooks/useCommonVariables.ts +36 -11
  166. package/src/hooks/useInitProps.ts +1 -3
  167. package/src/hooks/useLayoutConfig.ts +1 -1
  168. package/src/hooks/useOffsetX.test.ts +54 -0
  169. package/src/hooks/useOffsetX.ts +33 -31
  170. package/src/hooks/useOnProgressChange.ts +1 -1
  171. package/src/hooks/usePanGestureProxy.test.tsx +376 -0
  172. package/src/hooks/usePanGestureProxy.ts +110 -0
  173. package/src/hooks/useUpdateGestureConfig.ts +15 -0
  174. package/src/hooks/useVisibleRanges.test.tsx +179 -0
  175. package/src/hooks/useVisibleRanges.tsx +72 -24
  176. package/src/index.tsx +4 -2
  177. package/src/types.ts +132 -125
  178. package/src/utils/compute-offset-if-data-changed.test.ts +30 -0
  179. package/src/{hooks/computeNewIndexWhenDataChanges.ts → utils/compute-offset-if-data-changed.ts} +1 -1
  180. package/src/utils/compute-offset-if-size-changed.test.ts +78 -0
  181. package/src/utils/compute-offset-if-size-changed.ts +11 -0
  182. package/src/utils/handleroffset-direction.test.ts +52 -0
  183. package/src/utils/handleroffset-direction.ts +18 -0
  184. package/src/{hooks → utils}/index.test.ts +6 -6
  185. package/README.zh-CN.md +0 -202
  186. package/lib/commonjs/Carousel.js +0 -2
  187. package/lib/commonjs/Carousel.js.map +0 -1
  188. package/lib/commonjs/LazyView.js +0 -2
  189. package/lib/commonjs/LazyView.js.map +0 -1
  190. package/lib/commonjs/ScrollViewGesture.js +0 -2
  191. package/lib/commonjs/ScrollViewGesture.js.map +0 -1
  192. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js +0 -2
  193. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
  194. package/lib/commonjs/hooks/index.test.js +0 -2
  195. package/lib/commonjs/hooks/index.test.js.map +0 -1
  196. package/lib/commonjs/layouts/BaseLayout.js +0 -2
  197. package/lib/commonjs/layouts/BaseLayout.js.map +0 -1
  198. package/lib/commonjs/layouts/ParallaxLayout.js +0 -2
  199. package/lib/commonjs/layouts/ParallaxLayout.js.map +0 -1
  200. package/lib/commonjs/utils/computedWithAutoFillData.js +0 -2
  201. package/lib/commonjs/utils/computedWithAutoFillData.js.map +0 -1
  202. package/lib/commonjs/utils/dealWithAnimation.js +0 -2
  203. package/lib/commonjs/utils/dealWithAnimation.js.map +0 -1
  204. package/lib/commonjs/utils/handlerOffsetDirection.js +0 -2
  205. package/lib/commonjs/utils/handlerOffsetDirection.js.map +0 -1
  206. package/lib/module/Carousel.js.map +0 -1
  207. package/lib/module/ScrollViewGesture.js.map +0 -1
  208. package/lib/module/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
  209. package/lib/module/hooks/index.test.js.map +0 -1
  210. package/lib/module/layouts/BaseLayout.js.map +0 -1
  211. package/lib/module/layouts/ParallaxLayout.js +0 -61
  212. package/lib/module/layouts/ParallaxLayout.js.map +0 -1
  213. package/lib/module/utils/computedWithAutoFillData.js.map +0 -1
  214. package/lib/module/utils/dealWithAnimation.js.map +0 -1
  215. package/lib/module/utils/handlerOffsetDirection.js +0 -9
  216. package/lib/module/utils/handlerOffsetDirection.js.map +0 -1
  217. package/lib/typescript/layouts/ParallaxLayout.d.ts +0 -13
  218. package/lib/typescript/utils/handlerOffsetDirection.d.ts +0 -2
  219. package/src/layouts/ParallaxLayout.tsx +0 -141
  220. package/src/utils/handlerOffsetDirection.ts +0 -15
  221. /package/lib/module/{LazyView.js → components/LazyView.js} +0 -0
  222. /package/lib/module/{LazyView.js.map → components/LazyView.js.map} +0 -0
  223. /package/lib/typescript/{layouts → components}/BaseLayout.d.ts +0 -0
  224. /package/lib/typescript/{LazyView.d.ts → components/LazyView.d.ts} +0 -0
  225. /package/lib/typescript/{hooks/index.test.d.ts → components/rnr-demo.test.d.ts} +0 -0
  226. /package/lib/typescript/utils/{computedWithAutoFillData.d.ts → computed-with-auto-fill-data.d.ts} +0 -0
  227. /package/lib/typescript/utils/{dealWithAnimation.d.ts → deal-with-animation.d.ts} +0 -0
  228. /package/src/{LazyView.tsx → components/LazyView.tsx} +0 -0
  229. /package/src/utils/{computedWithAutoFillData.ts → computed-with-auto-fill-data.ts} +0 -0
  230. /package/src/utils/{dealWithAnimation.ts → deal-with-animation.ts} +0 -0
@@ -1,2 +1,79 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useInitProps=useInitProps;var _react=_interopRequireDefault(require("react"));var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");function useInitProps(props){var _props$enableSnap;var _props$defaultIndex=props.defaultIndex,defaultIndex=_props$defaultIndex===void 0?0:_props$defaultIndex,_props$data=props.data,rawData=_props$data===void 0?[]:_props$data,_props$loop=props.loop,loop=_props$loop===void 0?true:_props$loop,_props$autoPlayInterv=props.autoPlayInterval,_autoPlayInterval=_props$autoPlayInterv===void 0?1000:_props$autoPlayInterv,_props$scrollAnimatio=props.scrollAnimationDuration,scrollAnimationDuration=_props$scrollAnimatio===void 0?500:_props$scrollAnimatio,_props$style=props.style,style=_props$style===void 0?{}:_props$style,_props$panGestureHand=props.panGestureHandlerProps,panGestureHandlerProps=_props$panGestureHand===void 0?{}:_props$panGestureHand,_props$autoFillData=props.autoFillData,autoFillData=_props$autoFillData===void 0?true:_props$autoFillData,_props$enabled=props.enabled,enabled=_props$enabled===void 0?true:_props$enabled,_props$pagingEnabled=props.pagingEnabled,pagingEnabled=_props$pagingEnabled===void 0?true:_props$pagingEnabled,_props$overscrollEnab=props.overscrollEnabled,overscrollEnabled=_props$overscrollEnab===void 0?true:_props$overscrollEnab,_props$snapEnabled=props.snapEnabled,snapEnabled=_props$snapEnabled===void 0?(_props$enableSnap=props.enableSnap)!=null?_props$enableSnap:true:_props$snapEnabled,_width=props.width,_height=props.height;var width=Math.round(_width||0);var height=Math.round(_height||0);var autoPlayInterval=Math.max(_autoPlayInterval,0);var data=_react.default.useMemo(function(){return(0,_computedWithAutoFillData.computedFillDataWithAutoFillData)({loop:loop,autoFillData:autoFillData,data:rawData,dataLength:rawData.length});},[rawData,loop,autoFillData]);var dataLength=data.length;var rawDataLength=rawData.length;if(props.mode==="vertical-stack"||props.mode==="horizontal-stack"){var _props$modeConfig$sho,_props$modeConfig;if(!props.modeConfig)props.modeConfig={};props.modeConfig.showLength=(_props$modeConfig$sho=(_props$modeConfig=props.modeConfig)==null?void 0:_props$modeConfig.showLength)!=null?_props$modeConfig$sho:dataLength-1;}return Object.assign({},props,{defaultIndex:defaultIndex,autoFillData:autoFillData,data:data,dataLength:dataLength,rawData:rawData,rawDataLength:rawDataLength,loop:loop,enabled:enabled,autoPlayInterval:autoPlayInterval,scrollAnimationDuration:scrollAnimationDuration,style:style,panGestureHandlerProps:panGestureHandlerProps,pagingEnabled:pagingEnabled,snapEnabled:snapEnabled,overscrollEnabled:overscrollEnabled,width:width,height:height});}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useInitProps = useInitProps;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _computedWithAutoFillData = require("../utils/computed-with-auto-fill-data");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function useInitProps(props) {
15
+ var _props$enableSnap;
16
+
17
+ const {
18
+ defaultIndex = 0,
19
+ data: rawData = [],
20
+ loop = true,
21
+ autoPlayInterval: _autoPlayInterval = 1000,
22
+ scrollAnimationDuration = 500,
23
+ style = {},
24
+ autoFillData = true,
25
+ // switchers
26
+ enabled = true,
27
+ pagingEnabled = true,
28
+ overscrollEnabled = true,
29
+ snapEnabled = (_props$enableSnap = props.enableSnap) !== null && _props$enableSnap !== void 0 ? _props$enableSnap : true,
30
+ width: _width,
31
+ height: _height
32
+ } = props;
33
+ const width = Math.round(_width || 0);
34
+ const height = Math.round(_height || 0);
35
+ const autoPlayInterval = Math.max(_autoPlayInterval, 0);
36
+
37
+ const data = _react.default.useMemo(() => {
38
+ return (0, _computedWithAutoFillData.computedFillDataWithAutoFillData)({
39
+ loop,
40
+ autoFillData,
41
+ data: rawData,
42
+ dataLength: rawData.length
43
+ });
44
+ }, [rawData, loop, autoFillData]);
45
+
46
+ const dataLength = data.length;
47
+ const rawDataLength = rawData.length;
48
+
49
+ if (props.mode === "vertical-stack" || props.mode === "horizontal-stack") {
50
+ var _props$modeConfig$sho, _props$modeConfig;
51
+
52
+ if (!props.modeConfig) props.modeConfig = {};
53
+ props.modeConfig.showLength = (_props$modeConfig$sho = (_props$modeConfig = props.modeConfig) === null || _props$modeConfig === void 0 ? void 0 : _props$modeConfig.showLength) !== null && _props$modeConfig$sho !== void 0 ? _props$modeConfig$sho : dataLength - 1;
54
+ }
55
+
56
+ return { ...props,
57
+ defaultIndex,
58
+ autoFillData,
59
+ // Fill data with autoFillData
60
+ data,
61
+ // Length of fill data
62
+ dataLength,
63
+ // Raw data that has not been processed
64
+ rawData,
65
+ // Length of raw data
66
+ rawDataLength,
67
+ loop,
68
+ enabled,
69
+ autoPlayInterval,
70
+ scrollAnimationDuration,
71
+ style,
72
+ pagingEnabled,
73
+ snapEnabled,
74
+ overscrollEnabled,
75
+ width,
76
+ height
77
+ };
78
+ }
2
79
  //# sourceMappingURL=useInitProps.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useInitProps.ts"],"names":["useInitProps","props","defaultIndex","data","rawData","loop","autoPlayInterval","_autoPlayInterval","scrollAnimationDuration","style","panGestureHandlerProps","autoFillData","enabled","pagingEnabled","overscrollEnabled","snapEnabled","enableSnap","_width","width","_height","height","Math","round","max","React","useMemo","dataLength","length","rawDataLength","mode","modeConfig","showLength"],"mappings":"8KAAA,oDAGA,2EAuBO,QAASA,CAAAA,YAAT,CACLC,KADK,CAEwB,uBAC7B,wBAgBIA,KAhBJ,CACEC,YADF,CACEA,YADF,8BACiB,CADjB,iCAgBID,KAhBJ,CAEEE,IAFF,CAEQC,OAFR,sBAEkB,EAFlB,yBAgBIH,KAhBJ,CAGEI,IAHF,CAGEA,IAHF,sBAGS,IAHT,mCAgBIJ,KAhBJ,CAIEK,gBAJF,CAIoBC,iBAJpB,gCAIwC,IAJxC,6CAgBIN,KAhBJ,CAKEO,uBALF,CAKEA,uBALF,gCAK4B,GAL5B,oCAgBIP,KAhBJ,CAMEQ,KANF,CAMEA,KANF,uBAMU,EANV,oCAgBIR,KAhBJ,CAOES,sBAPF,CAOEA,sBAPF,gCAO2B,EAP3B,2CAgBIT,KAhBJ,CAQEU,YARF,CAQEA,YARF,8BAQiB,IARjB,oCAgBIV,KAhBJ,CAUEW,OAVF,CAUEA,OAVF,yBAUY,IAVZ,qCAgBIX,KAhBJ,CAWEY,aAXF,CAWEA,aAXF,+BAWkB,IAXlB,4CAgBIZ,KAhBJ,CAYEa,iBAZF,CAYEA,iBAZF,gCAYsB,IAZtB,0CAgBIb,KAhBJ,CAaEc,WAbF,CAaEA,WAbF,gDAagBd,KAAK,CAACe,UAbtB,0BAaoC,IAbpC,oBAcSC,MAdT,CAgBIhB,KAhBJ,CAcEiB,KAdF,CAeUC,OAfV,CAgBIlB,KAhBJ,CAeEmB,MAfF,CAkBA,GAAMF,CAAAA,KAAK,CAAGG,IAAI,CAACC,KAAL,CAAWL,MAAM,EAAI,CAArB,CAAd,CACA,GAAMG,CAAAA,MAAM,CAAGC,IAAI,CAACC,KAAL,CAAWH,OAAO,EAAI,CAAtB,CAAf,CACA,GAAMb,CAAAA,gBAAgB,CAAGe,IAAI,CAACE,GAAL,CAAShB,iBAAT,CAA4B,CAA5B,CAAzB,CAEA,GAAMJ,CAAAA,IAAI,CAAGqB,eAAMC,OAAN,CACX,UAAM,CACJ,MAAO,+DAAoC,CACzCpB,IAAI,CAAJA,IADyC,CAEzCM,YAAY,CAAZA,YAFyC,CAGzCR,IAAI,CAAEC,OAHmC,CAIzCsB,UAAU,CAAEtB,OAAO,CAACuB,MAJqB,CAApC,CAAP,CAMD,CARU,CASX,CAACvB,OAAD,CAAUC,IAAV,CAAgBM,YAAhB,CATW,CAAb,CAYA,GAAMe,CAAAA,UAAU,CAAGvB,IAAI,CAACwB,MAAxB,CACA,GAAMC,CAAAA,aAAa,CAAGxB,OAAO,CAACuB,MAA9B,CAEA,GAAI1B,KAAK,CAAC4B,IAAN,GAAe,gBAAf,EAAmC5B,KAAK,CAAC4B,IAAN,GAAe,kBAAtD,CAA0E,6CACxE,GAAI,CAAC5B,KAAK,CAAC6B,UAAX,CACE7B,KAAK,CAAC6B,UAAN,CAAmB,EAAnB,CAEF7B,KAAK,CAAC6B,UAAN,CAAiBC,UAAjB,2CAA8B9B,KAAK,CAAC6B,UAApC,eAA8B,kBAAkBC,UAAhD,8BAA8DL,UAAU,CAAG,CAA3E,CACD,CAED,wBACKzB,KADL,EAEEC,YAAY,CAAZA,YAFF,CAGES,YAAY,CAAZA,YAHF,CAKER,IAAI,CAAJA,IALF,CAOEuB,UAAU,CAAVA,UAPF,CASEtB,OAAO,CAAPA,OATF,CAWEwB,aAAa,CAAbA,aAXF,CAYEvB,IAAI,CAAJA,IAZF,CAaEO,OAAO,CAAPA,OAbF,CAcEN,gBAAgB,CAAhBA,gBAdF,CAeEE,uBAAuB,CAAvBA,uBAfF,CAgBEC,KAAK,CAALA,KAhBF,CAiBEC,sBAAsB,CAAtBA,sBAjBF,CAkBEG,aAAa,CAAbA,aAlBF,CAmBEE,WAAW,CAAXA,WAnBF,CAoBED,iBAAiB,CAAjBA,iBApBF,CAqBEI,KAAK,CAALA,KArBF,CAsBEE,MAAM,CAANA,MAtBF,GAwBD","sourcesContent":["import React from \"react\";\n\nimport type { TCarouselProps } from \"../types\";\nimport { computedFillDataWithAutoFillData } from \"../utils/computedWithAutoFillData\";\n\ntype TGetRequiredProps<P extends keyof TCarouselProps> = Record<\nP,\nRequired<TCarouselProps>[P]\n>;\n\nexport type TInitializeCarouselProps<T> = TCarouselProps<T> &\nTGetRequiredProps<\n| \"defaultIndex\"\n| \"loop\"\n| \"width\"\n| \"height\"\n| \"scrollAnimationDuration\"\n| \"autoPlayInterval\"\n| \"autoFillData\"\n> & {\n // Raw data that has not been processed\n rawData: T[]\n dataLength: number\n rawDataLength: number\n};\n\nexport function useInitProps<T>(\n props: TCarouselProps<T>,\n): TInitializeCarouselProps<T> {\n const {\n defaultIndex = 0,\n data: rawData = [],\n loop = true,\n autoPlayInterval: _autoPlayInterval = 1000,\n scrollAnimationDuration = 500,\n style = {},\n panGestureHandlerProps = {},\n autoFillData = true,\n // switchers\n enabled = true,\n pagingEnabled = true,\n overscrollEnabled = true,\n snapEnabled = props.enableSnap ?? true,\n width: _width,\n height: _height,\n } = props;\n\n const width = Math.round(_width || 0);\n const height = Math.round(_height || 0);\n const autoPlayInterval = Math.max(_autoPlayInterval, 0);\n\n const data = React.useMemo<T[]>(\n () => {\n return computedFillDataWithAutoFillData<T>({\n loop,\n autoFillData,\n data: rawData,\n dataLength: rawData.length,\n });\n },\n [rawData, loop, autoFillData],\n );\n\n const dataLength = data.length;\n const rawDataLength = rawData.length;\n\n if (props.mode === \"vertical-stack\" || props.mode === \"horizontal-stack\") {\n if (!props.modeConfig)\n props.modeConfig = {};\n\n props.modeConfig.showLength = props.modeConfig?.showLength ?? dataLength - 1;\n }\n\n return {\n ...props,\n defaultIndex,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n loop,\n enabled,\n autoPlayInterval,\n scrollAnimationDuration,\n style,\n panGestureHandlerProps,\n pagingEnabled,\n snapEnabled,\n overscrollEnabled,\n width,\n height,\n };\n}\n"]}
1
+ {"version":3,"sources":["useInitProps.ts"],"names":["useInitProps","props","defaultIndex","data","rawData","loop","autoPlayInterval","_autoPlayInterval","scrollAnimationDuration","style","autoFillData","enabled","pagingEnabled","overscrollEnabled","snapEnabled","enableSnap","width","_width","height","_height","Math","round","max","React","useMemo","dataLength","length","rawDataLength","mode","modeConfig","showLength"],"mappings":";;;;;;;AAAA;;AAGA;;;;AAuBO,SAASA,YAAT,CACLC,KADK,EAEwB;AAAA;;AAC7B,QAAM;AACJC,IAAAA,YAAY,GAAG,CADX;AAEJC,IAAAA,IAAI,EAAEC,OAAO,GAAG,EAFZ;AAGJC,IAAAA,IAAI,GAAG,IAHH;AAIJC,IAAAA,gBAAgB,EAAEC,iBAAiB,GAAG,IAJlC;AAKJC,IAAAA,uBAAuB,GAAG,GALtB;AAMJC,IAAAA,KAAK,GAAG,EANJ;AAOJC,IAAAA,YAAY,GAAG,IAPX;AAQJ;AACAC,IAAAA,OAAO,GAAG,IATN;AAUJC,IAAAA,aAAa,GAAG,IAVZ;AAWJC,IAAAA,iBAAiB,GAAG,IAXhB;AAYJC,IAAAA,WAAW,wBAAGb,KAAK,CAACc,UAAT,iEAAuB,IAZ9B;AAaJC,IAAAA,KAAK,EAAEC,MAbH;AAcJC,IAAAA,MAAM,EAAEC;AAdJ,MAeFlB,KAfJ;AAiBA,QAAMe,KAAK,GAAGI,IAAI,CAACC,KAAL,CAAWJ,MAAM,IAAI,CAArB,CAAd;AACA,QAAMC,MAAM,GAAGE,IAAI,CAACC,KAAL,CAAWF,OAAO,IAAI,CAAtB,CAAf;AACA,QAAMb,gBAAgB,GAAGc,IAAI,CAACE,GAAL,CAASf,iBAAT,EAA4B,CAA5B,CAAzB;;AAEA,QAAMJ,IAAI,GAAGoB,eAAMC,OAAN,CACX,MAAM;AACJ,WAAO,gEAAoC;AACzCnB,MAAAA,IADyC;AAEzCK,MAAAA,YAFyC;AAGzCP,MAAAA,IAAI,EAAEC,OAHmC;AAIzCqB,MAAAA,UAAU,EAAErB,OAAO,CAACsB;AAJqB,KAApC,CAAP;AAMD,GARU,EASX,CAACtB,OAAD,EAAUC,IAAV,EAAgBK,YAAhB,CATW,CAAb;;AAYA,QAAMe,UAAU,GAAGtB,IAAI,CAACuB,MAAxB;AACA,QAAMC,aAAa,GAAGvB,OAAO,CAACsB,MAA9B;;AAEA,MAAIzB,KAAK,CAAC2B,IAAN,KAAe,gBAAf,IAAmC3B,KAAK,CAAC2B,IAAN,KAAe,kBAAtD,EAA0E;AAAA;;AACxE,QAAI,CAAC3B,KAAK,CAAC4B,UAAX,EACE5B,KAAK,CAAC4B,UAAN,GAAmB,EAAnB;AAEF5B,IAAAA,KAAK,CAAC4B,UAAN,CAAiBC,UAAjB,iDAA8B7B,KAAK,CAAC4B,UAApC,sDAA8B,kBAAkBC,UAAhD,yEAA8DL,UAAU,GAAG,CAA3E;AACD;;AAED,SAAO,EACL,GAAGxB,KADE;AAELC,IAAAA,YAFK;AAGLQ,IAAAA,YAHK;AAIL;AACAP,IAAAA,IALK;AAML;AACAsB,IAAAA,UAPK;AAQL;AACArB,IAAAA,OATK;AAUL;AACAuB,IAAAA,aAXK;AAYLtB,IAAAA,IAZK;AAaLM,IAAAA,OAbK;AAcLL,IAAAA,gBAdK;AAeLE,IAAAA,uBAfK;AAgBLC,IAAAA,KAhBK;AAiBLG,IAAAA,aAjBK;AAkBLE,IAAAA,WAlBK;AAmBLD,IAAAA,iBAnBK;AAoBLG,IAAAA,KApBK;AAqBLE,IAAAA;AArBK,GAAP;AAuBD","sourcesContent":["import React from \"react\";\n\nimport type { TCarouselProps } from \"../types\";\nimport { computedFillDataWithAutoFillData } from \"../utils/computed-with-auto-fill-data\";\n\ntype TGetRequiredProps<P extends keyof TCarouselProps> = Record<\nP,\nRequired<TCarouselProps>[P]\n>;\n\nexport type TInitializeCarouselProps<T> = TCarouselProps<T> &\nTGetRequiredProps<\n| \"defaultIndex\"\n| \"loop\"\n| \"width\"\n| \"height\"\n| \"scrollAnimationDuration\"\n| \"autoPlayInterval\"\n| \"autoFillData\"\n> & {\n // Raw data that has not been processed\n rawData: T[]\n dataLength: number\n rawDataLength: number\n};\n\nexport function useInitProps<T>(\n props: TCarouselProps<T>,\n): TInitializeCarouselProps<T> {\n const {\n defaultIndex = 0,\n data: rawData = [],\n loop = true,\n autoPlayInterval: _autoPlayInterval = 1000,\n scrollAnimationDuration = 500,\n style = {},\n autoFillData = true,\n // switchers\n enabled = true,\n pagingEnabled = true,\n overscrollEnabled = true,\n snapEnabled = props.enableSnap ?? true,\n width: _width,\n height: _height,\n } = props;\n\n const width = Math.round(_width || 0);\n const height = Math.round(_height || 0);\n const autoPlayInterval = Math.max(_autoPlayInterval, 0);\n\n const data = React.useMemo<T[]>(\n () => {\n return computedFillDataWithAutoFillData<T>({\n loop,\n autoFillData,\n data: rawData,\n dataLength: rawData.length,\n });\n },\n [rawData, loop, autoFillData],\n );\n\n const dataLength = data.length;\n const rawDataLength = rawData.length;\n\n if (props.mode === \"vertical-stack\" || props.mode === \"horizontal-stack\") {\n if (!props.modeConfig)\n props.modeConfig = {};\n\n props.modeConfig.showLength = props.modeConfig?.showLength ?? dataLength - 1;\n }\n\n return {\n ...props,\n defaultIndex,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n loop,\n enabled,\n autoPlayInterval,\n scrollAnimationDuration,\n style,\n pagingEnabled,\n snapEnabled,\n overscrollEnabled,\n width,\n height,\n };\n}\n"]}
@@ -1,2 +1,40 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useLayoutConfig=useLayoutConfig;var _react=_interopRequireDefault(require("react"));var _layouts=require("../layouts");function useLayoutConfig(opts){var _ref=opts,size=_ref.size,vertical=_ref.vertical;return _react.default.useMemo(function(){var baseConfig={size:size,vertical:vertical};switch(opts.mode){case"parallax":return _layouts.Layouts.parallax(baseConfig,opts.modeConfig);case"horizontal-stack":return _layouts.Layouts.horizontalStack(opts.modeConfig);case"vertical-stack":return _layouts.Layouts.verticalStack(opts.modeConfig);default:return _layouts.Layouts.normal(baseConfig);}},[opts.mode,opts.modeConfig,size,vertical]);}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useLayoutConfig = useLayoutConfig;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _layouts = require("../layouts");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function useLayoutConfig(opts) {
15
+ const {
16
+ size,
17
+ vertical
18
+ } = opts;
19
+ return _react.default.useMemo(() => {
20
+ const baseConfig = {
21
+ size,
22
+ vertical
23
+ };
24
+
25
+ switch (opts.mode) {
26
+ case "parallax":
27
+ return _layouts.Layouts.parallax(baseConfig, opts.modeConfig);
28
+
29
+ case "horizontal-stack":
30
+ return _layouts.Layouts.horizontalStack(opts.modeConfig);
31
+
32
+ case "vertical-stack":
33
+ return _layouts.Layouts.verticalStack(opts.modeConfig);
34
+
35
+ default:
36
+ return _layouts.Layouts.normal(baseConfig);
37
+ }
38
+ }, [opts.mode, opts.modeConfig, size, vertical]);
39
+ }
2
40
  //# sourceMappingURL=useLayoutConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useLayoutConfig.ts"],"names":["useLayoutConfig","opts","size","vertical","React","useMemo","baseConfig","mode","Layouts","parallax","modeConfig","horizontalStack","verticalStack","normal"],"mappings":"oLAAA,oDAIA,mCAKO,QAASA,CAAAA,eAAT,CACLC,IADK,CAEY,CACjB,SAA2BA,IAA3B,CAAQC,IAAR,MAAQA,IAAR,CAAcC,QAAd,MAAcA,QAAd,CAEA,MAAOC,gBAAMC,OAAN,CAAc,UAAM,CACzB,GAAMC,CAAAA,UAAU,CAAG,CAAEJ,IAAI,CAAJA,IAAF,CAAQC,QAAQ,CAARA,QAAR,CAAnB,CACA,OAAQF,IAAI,CAACM,IAAb,EACE,IAAK,UAAL,CACE,MAAOC,kBAAQC,QAAR,CAAiBH,UAAjB,CAA6BL,IAAI,CAACS,UAAlC,CAAP,CACF,IAAK,kBAAL,CACE,MAAOF,kBAAQG,eAAR,CAAwBV,IAAI,CAACS,UAA7B,CAAP,CACF,IAAK,gBAAL,CACE,MAAOF,kBAAQI,aAAR,CAAsBX,IAAI,CAACS,UAA3B,CAAP,CACF,QACE,MAAOF,kBAAQK,MAAR,CAAeP,UAAf,CAAP,CARJ,CAUD,CAZM,CAYJ,CAACL,IAAI,CAACM,IAAN,CAAYN,IAAI,CAACS,UAAjB,CAA6BR,IAA7B,CAAmCC,QAAnC,CAZI,CAAP,CAaD","sourcesContent":["import React from \"react\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport { Layouts } from \"../layouts\";\nimport type { TAnimationStyle } from \"../layouts/BaseLayout\";\n\ntype TLayoutConfigOpts<T> = TInitializeCarouselProps<T> & { size: number };\n\nexport function useLayoutConfig<T>(\n opts: TLayoutConfigOpts<T>,\n): TAnimationStyle {\n const { size, vertical } = opts as Required<TLayoutConfigOpts<T>>;\n\n return React.useMemo(() => {\n const baseConfig = { size, vertical };\n switch (opts.mode) {\n case \"parallax\":\n return Layouts.parallax(baseConfig, opts.modeConfig);\n case \"horizontal-stack\":\n return Layouts.horizontalStack(opts.modeConfig);\n case \"vertical-stack\":\n return Layouts.verticalStack(opts.modeConfig);\n default:\n return Layouts.normal(baseConfig);\n }\n }, [opts.mode, opts.modeConfig, size, vertical]);\n}\n"]}
1
+ {"version":3,"sources":["useLayoutConfig.ts"],"names":["useLayoutConfig","opts","size","vertical","React","useMemo","baseConfig","mode","Layouts","parallax","modeConfig","horizontalStack","verticalStack","normal"],"mappings":";;;;;;;AAAA;;AAKA;;;;AAIO,SAASA,eAAT,CACLC,IADK,EAEY;AACjB,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAqBF,IAA3B;AAEA,SAAOG,eAAMC,OAAN,CAAc,MAAM;AACzB,UAAMC,UAAU,GAAG;AAAEJ,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAnB;;AACA,YAAQF,IAAI,CAACM,IAAb;AACE,WAAK,UAAL;AACE,eAAOC,iBAAQC,QAAR,CAAiBH,UAAjB,EAA6BL,IAAI,CAACS,UAAlC,CAAP;;AACF,WAAK,kBAAL;AACE,eAAOF,iBAAQG,eAAR,CAAwBV,IAAI,CAACS,UAA7B,CAAP;;AACF,WAAK,gBAAL;AACE,eAAOF,iBAAQI,aAAR,CAAsBX,IAAI,CAACS,UAA3B,CAAP;;AACF;AACE,eAAOF,iBAAQK,MAAR,CAAeP,UAAf,CAAP;AARJ;AAUD,GAZM,EAYJ,CAACL,IAAI,CAACM,IAAN,EAAYN,IAAI,CAACS,UAAjB,EAA6BR,IAA7B,EAAmCC,QAAnC,CAZI,CAAP;AAaD","sourcesContent":["import React from \"react\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport type { TAnimationStyle } from \"../components/BaseLayout\";\nimport { Layouts } from \"../layouts\";\n\ntype TLayoutConfigOpts<T> = TInitializeCarouselProps<T> & { size: number };\n\nexport function useLayoutConfig<T>(\n opts: TLayoutConfigOpts<T>,\n): TAnimationStyle {\n const { size, vertical } = opts as Required<TLayoutConfigOpts<T>>;\n\n return React.useMemo(() => {\n const baseConfig = { size, vertical };\n switch (opts.mode) {\n case \"parallax\":\n return Layouts.parallax(baseConfig, opts.modeConfig);\n case \"horizontal-stack\":\n return Layouts.horizontalStack(opts.modeConfig);\n case \"vertical-stack\":\n return Layouts.verticalStack(opts.modeConfig);\n default:\n return Layouts.normal(baseConfig);\n }\n }, [opts.mode, opts.modeConfig, size, vertical]);\n}\n"]}
@@ -1,2 +1,52 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.useOffsetX=void 0;var _reactNativeReanimated=require("react-native-reanimated");var _worklet_63816918029_init_data={code:"function anonymous() {\n const {\n visibleRanges,\n index,\n loop,\n TOTAL_WIDTH,\n MIN,\n HALF_WIDTH,\n startPos,\n MAX,\n interpolate,\n handlerOffset,\n Extrapolate,\n size\n } = this._closure;\n const {\n negativeRange: negativeRange,\n positiveRange: positiveRange\n } = visibleRanges.value;\n if ((index < negativeRange[0] || index > negativeRange[1]) && (index < positiveRange[0] || index > positiveRange[1])) return Number.MAX_SAFE_INTEGER;\n if (loop) {\n const inputRange = [-TOTAL_WIDTH, MIN - HALF_WIDTH - startPos - Number.MIN_VALUE, MIN - HALF_WIDTH - startPos, 0, MAX + HALF_WIDTH - startPos, MAX + HALF_WIDTH - startPos + Number.MIN_VALUE, TOTAL_WIDTH];\n const outputRange = [startPos, MAX + HALF_WIDTH - Number.MIN_VALUE, MIN - HALF_WIDTH, startPos, MAX + HALF_WIDTH, MIN - HALF_WIDTH + Number.MIN_VALUE, startPos];\n return interpolate(handlerOffset.value, inputRange, outputRange, Extrapolate.CLAMP);\n }\n return handlerOffset.value + size * index;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOffsetX.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"visibleRanges\",\"index\",\"loop\",\"TOTAL_WIDTH\",\"MIN\",\"HALF_WIDTH\",\"startPos\",\"MAX\",\"interpolate\",\"handlerOffset\",\"Extrapolate\",\"size\",\"_closure\",\"negativeRange\",\"positiveRange\",\"value\",\"Number\",\"MAX_SAFE_INTEGER\",\"inputRange\",\"MIN_VALUE\",\"outputRange\",\"CLAMP\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOffsetX.ts\"],\"mappings\":\"AA8C4B,SAAAA,SAAMA,CAAA;EAAA;IAAAC,aAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,WAAA;IAAAC,GAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,GAAA;IAAAC,WAAA;IAAAC,aAAA;IAAAC,WAAA;IAAAC;EAAA,SAAAC,QAAA;EAC9B,MAAM;IAAEC,aAAa,EAAbA,aAAa;IAAEC,aAAA,EAAAA;EAAc,CAAC,GAAGd,aAAa,CAACe,KAAK;EAC5D,IACE,CAACd,KAAK,GAAGY,aAAa,CAAC,CAAC,CAAC,IAAIZ,KAAK,GAAGY,aAAa,CAAC,CAAC,CAAC,MAC3CZ,KAAK,GAAGa,aAAa,CAAC,CAAC,CAAC,IAAIb,KAAK,GAAGa,aAAa,CAAC,CAAC,CAAC,CAAC,EAE/D,OAAOE,MAAM,CAACC,gBAAgB;EAEhC,IAAIf,IAAI,EAAE;IACR,MAAMgB,UAAU,GAAG,CACjB,CAACf,WAAW,EACZC,GAAG,GAAGC,UAAU,GAAGC,QAAQ,GAAGU,MAAM,CAACG,SAAS,EAC9Cf,GAAG,GAAGC,UAAU,GAAGC,QAAQ,EAC3B,CAAC,EACDC,GAAG,GAAGF,UAAU,GAAGC,QAAQ,EAC3BC,GAAG,GAAGF,UAAU,GAAGC,QAAQ,GAAGU,MAAM,CAACG,SAAS,EAC9ChB,WAAW,CACZ;IAED,MAAMiB,WAAW,GAAG,CAClBd,QAAQ,EACRC,GAAG,GAAGF,UAAU,GAAGW,MAAM,CAACG,SAAS,EACnCf,GAAG,GAAGC,UAAU,EAChBC,QAAQ,EACRC,GAAG,GAAGF,UAAU,EAChBD,GAAG,GAAGC,UAAU,GAAGW,MAAM,CAACG,SAAS,EACnCb,QAAQ,CACT;IAED,OAAOE,WAAW,CAChBC,aAAa,CAACM,KAAK,EACnBG,UAAU,EACVE,WAAW,EACXV,WAAW,CAACW,KACd,CAAC;EACH;EAEA,OAAOZ,aAAa,CAACM,KAAK,GAAGJ,IAAI,GAAGV,KAAK;AAC3C\"}"};var useOffsetX=function useOffsetX(opts,visibleRanges){var handlerOffset=opts.handlerOffset,index=opts.index,size=opts.size,loop=opts.loop,dataLength=opts.dataLength,_opts$type=opts.type,type=_opts$type===void 0?"positive":_opts$type,_viewCount=opts.viewCount;var ITEM_LENGTH=dataLength;var VALID_LENGTH=ITEM_LENGTH-1;var TOTAL_WIDTH=size*ITEM_LENGTH;var HALF_WIDTH=0.5*size;var viewCount=_viewCount!=null?_viewCount:Math.round((ITEM_LENGTH-1)/2);var positiveCount=type==="positive"?viewCount:VALID_LENGTH-viewCount;var startPos=size*index;if(index>positiveCount)startPos=(index-ITEM_LENGTH)*size;var MAX=positiveCount*size;var MIN=-((VALID_LENGTH-positiveCount)*size);var x=(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-13,-27];var _f=function _f(){var _visibleRanges$value=visibleRanges.value,negativeRange=_visibleRanges$value.negativeRange,positiveRange=_visibleRanges$value.positiveRange;if((index<negativeRange[0]||index>negativeRange[1])&&(index<positiveRange[0]||index>positiveRange[1]))return Number.MAX_SAFE_INTEGER;if(loop){var inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];var outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return(0,_reactNativeReanimated.interpolate)(handlerOffset.value,inputRange,outputRange,_reactNativeReanimated.Extrapolate.CLAMP);}return handlerOffset.value+size*index;};_f._closure={visibleRanges:visibleRanges,index:index,loop:loop,TOTAL_WIDTH:TOTAL_WIDTH,MIN:MIN,HALF_WIDTH:HALF_WIDTH,startPos:startPos,MAX:MAX,interpolate:_reactNativeReanimated.interpolate,handlerOffset:handlerOffset,Extrapolate:_reactNativeReanimated.Extrapolate,size:size};_f.__initData=_worklet_63816918029_init_data;_f.__workletHash=63816918029;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[loop,dataLength,viewCount,type,size,visibleRanges]);return x;};exports.useOffsetX=useOffsetX;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useOffsetX = void 0;
7
+
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+
10
+ const useOffsetX = (opts, visibleRanges) => {
11
+ const {
12
+ handlerOffset,
13
+ index,
14
+ size,
15
+ loop,
16
+ dataLength,
17
+ type = "positive",
18
+ viewCount: _viewCount
19
+ } = opts;
20
+ const ITEM_LENGTH = dataLength;
21
+ const VALID_LENGTH = ITEM_LENGTH - 1;
22
+ const TOTAL_WIDTH = size * ITEM_LENGTH;
23
+ const HALF_WIDTH = 0.5 * size;
24
+ const viewCount = _viewCount !== null && _viewCount !== void 0 ? _viewCount : Math.round((ITEM_LENGTH - 1) / 2);
25
+ const positiveCount = type === "positive" ? viewCount : VALID_LENGTH - viewCount;
26
+ let startPos = size * index;
27
+ if (index > positiveCount) startPos = (index - ITEM_LENGTH) * size;
28
+ const MAX = positiveCount * size;
29
+ const MIN = -((VALID_LENGTH - positiveCount) * size);
30
+ const x = (0, _reactNativeReanimated.useDerivedValue)(() => {
31
+ const {
32
+ negativeRange,
33
+ positiveRange
34
+ } = visibleRanges.value;
35
+
36
+ if (index >= negativeRange[0] && index <= negativeRange[1] || index >= positiveRange[0] && index <= positiveRange[1]) {
37
+ if (loop) {
38
+ const inputRange = [-TOTAL_WIDTH, MIN - HALF_WIDTH - startPos - Number.MIN_VALUE, MIN - HALF_WIDTH - startPos, 0, MAX + HALF_WIDTH - startPos, MAX + HALF_WIDTH - startPos + Number.MIN_VALUE, TOTAL_WIDTH];
39
+ const outputRange = [startPos, MAX + HALF_WIDTH - Number.MIN_VALUE, MIN - HALF_WIDTH, startPos, MAX + HALF_WIDTH, MIN - HALF_WIDTH + Number.MIN_VALUE, startPos];
40
+ return (0, _reactNativeReanimated.interpolate)(handlerOffset.value, inputRange, outputRange, _reactNativeReanimated.Extrapolate.CLAMP);
41
+ }
42
+
43
+ return handlerOffset.value + size * index;
44
+ }
45
+
46
+ return Number.MAX_SAFE_INTEGER;
47
+ }, [loop, dataLength, viewCount, type, size, visibleRanges]);
48
+ return x;
49
+ };
50
+
51
+ exports.useOffsetX = useOffsetX;
2
52
  //# sourceMappingURL=useOffsetX.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useOffsetX.ts"],"names":["useOffsetX","opts","visibleRanges","handlerOffset","index","size","loop","dataLength","type","_viewCount","viewCount","ITEM_LENGTH","VALID_LENGTH","TOTAL_WIDTH","HALF_WIDTH","Math","round","positiveCount","startPos","MAX","MIN","x","value","negativeRange","positiveRange","Number","MAX_SAFE_INTEGER","inputRange","MIN_VALUE","outputRange","Extrapolate","CLAMP","interpolate"],"mappings":"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","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport {\n Extrapolate,\n interpolate,\n useDerivedValue,\n} from \"react-native-reanimated\";\n\nimport type { IVisibleRanges } from \"./useVisibleRanges\";\n\nexport interface IOpts {\n index: number\n size: number\n handlerOffset: Animated.SharedValue<number>\n dataLength: number\n type?: \"positive\" | \"negative\"\n viewCount?: number\n loop?: boolean\n}\n\nexport const useOffsetX = (opts: IOpts, visibleRanges: IVisibleRanges) => {\n const {\n handlerOffset,\n index,\n size,\n loop,\n dataLength,\n type = \"positive\",\n viewCount: _viewCount,\n } = opts;\n\n const ITEM_LENGTH = dataLength;\n const VALID_LENGTH = ITEM_LENGTH - 1;\n const TOTAL_WIDTH = size * ITEM_LENGTH;\n const HALF_WIDTH = 0.5 * size;\n\n const viewCount = _viewCount ?? Math.round((ITEM_LENGTH - 1) / 2);\n const positiveCount\n = type === \"positive\" ? viewCount : VALID_LENGTH - viewCount;\n\n let startPos = size * index;\n if (index > positiveCount)\n startPos = (index - ITEM_LENGTH) * size;\n\n const MAX = positiveCount * size;\n const MIN = -((VALID_LENGTH - positiveCount) * size);\n\n const x = useDerivedValue(() => {\n const { negativeRange, positiveRange } = visibleRanges.value;\n if (\n (index < negativeRange[0] || index > negativeRange[1])\n && (index < positiveRange[0] || index > positiveRange[1])\n )\n return Number.MAX_SAFE_INTEGER;\n\n if (loop) {\n const inputRange = [\n -TOTAL_WIDTH,\n MIN - HALF_WIDTH - startPos - Number.MIN_VALUE,\n MIN - HALF_WIDTH - startPos,\n 0,\n MAX + HALF_WIDTH - startPos,\n MAX + HALF_WIDTH - startPos + Number.MIN_VALUE,\n TOTAL_WIDTH,\n ];\n\n const outputRange = [\n startPos,\n MAX + HALF_WIDTH - Number.MIN_VALUE,\n MIN - HALF_WIDTH,\n startPos,\n MAX + HALF_WIDTH,\n MIN - HALF_WIDTH + Number.MIN_VALUE,\n startPos,\n ];\n\n return interpolate(\n handlerOffset.value,\n inputRange,\n outputRange,\n Extrapolate.CLAMP,\n );\n }\n\n return handlerOffset.value + size * index;\n }, [loop, dataLength, viewCount, type, size, visibleRanges]);\n\n return x;\n};\n"]}
1
+ {"version":3,"sources":["useOffsetX.ts"],"names":["useOffsetX","opts","visibleRanges","handlerOffset","index","size","loop","dataLength","type","viewCount","_viewCount","ITEM_LENGTH","VALID_LENGTH","TOTAL_WIDTH","HALF_WIDTH","Math","round","positiveCount","startPos","MAX","MIN","x","negativeRange","positiveRange","value","inputRange","Number","MIN_VALUE","outputRange","Extrapolate","CLAMP","MAX_SAFE_INTEGER"],"mappings":";;;;;;;AACA;;AAkBO,MAAMA,UAAU,GAAG,CAACC,IAAD,EAAcC,aAAd,KAAgD;AACxE,QAAM;AACJC,IAAAA,aADI;AAEJC,IAAAA,KAFI;AAGJC,IAAAA,IAHI;AAIJC,IAAAA,IAJI;AAKJC,IAAAA,UALI;AAMJC,IAAAA,IAAI,GAAG,UANH;AAOJC,IAAAA,SAAS,EAAEC;AAPP,MAQFT,IARJ;AAUA,QAAMU,WAAW,GAAGJ,UAApB;AACA,QAAMK,YAAY,GAAGD,WAAW,GAAG,CAAnC;AACA,QAAME,WAAW,GAAGR,IAAI,GAAGM,WAA3B;AACA,QAAMG,UAAU,GAAG,MAAMT,IAAzB;AAEA,QAAMI,SAAS,GAAGC,UAAH,aAAGA,UAAH,cAAGA,UAAH,GAAiBK,IAAI,CAACC,KAAL,CAAW,CAACL,WAAW,GAAG,CAAf,IAAoB,CAA/B,CAAhC;AACA,QAAMM,aAAa,GACfT,IAAI,KAAK,UAAT,GAAsBC,SAAtB,GAAkCG,YAAY,GAAGH,SADrD;AAGA,MAAIS,QAAQ,GAAGb,IAAI,GAAGD,KAAtB;AACA,MAAIA,KAAK,GAAGa,aAAZ,EACEC,QAAQ,GAAG,CAACd,KAAK,GAAGO,WAAT,IAAwBN,IAAnC;AAEF,QAAMc,GAAG,GAAGF,aAAa,GAAGZ,IAA5B;AACA,QAAMe,GAAG,GAAG,EAAE,CAACR,YAAY,GAAGK,aAAhB,IAAiCZ,IAAnC,CAAZ;AAEA,QAAMgB,CAAC,GAAG,4CAAgB,MAAM;AAC9B,UAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAmCrB,aAAa,CAACsB,KAAvD;;AAEA,QACGpB,KAAK,IAAIkB,aAAa,CAAC,CAAD,CAAtB,IAA6BlB,KAAK,IAAIkB,aAAa,CAAC,CAAD,CAApD,IACIlB,KAAK,IAAImB,aAAa,CAAC,CAAD,CAAtB,IAA6BnB,KAAK,IAAImB,aAAa,CAAC,CAAD,CAFzD,EAGE;AACA,UAAIjB,IAAJ,EAAU;AACR,cAAMmB,UAAU,GAAG,CACjB,CAACZ,WADgB,EAEjBO,GAAG,GAAGN,UAAN,GAAmBI,QAAnB,GAA8BQ,MAAM,CAACC,SAFpB,EAGjBP,GAAG,GAAGN,UAAN,GAAmBI,QAHF,EAIjB,CAJiB,EAKjBC,GAAG,GAAGL,UAAN,GAAmBI,QALF,EAMjBC,GAAG,GAAGL,UAAN,GAAmBI,QAAnB,GAA8BQ,MAAM,CAACC,SANpB,EAOjBd,WAPiB,CAAnB;AAUA,cAAMe,WAAW,GAAG,CAClBV,QADkB,EAElBC,GAAG,GAAGL,UAAN,GAAmBY,MAAM,CAACC,SAFR,EAGlBP,GAAG,GAAGN,UAHY,EAIlBI,QAJkB,EAKlBC,GAAG,GAAGL,UALY,EAMlBM,GAAG,GAAGN,UAAN,GAAmBY,MAAM,CAACC,SANR,EAOlBT,QAPkB,CAApB;AAUA,eAAO,wCACLf,aAAa,CAACqB,KADT,EAELC,UAFK,EAGLG,WAHK,EAILC,mCAAYC,KAJP,CAAP;AAMD;;AAED,aAAO3B,aAAa,CAACqB,KAAd,GAAsBnB,IAAI,GAAGD,KAApC;AACD;;AAED,WAAOsB,MAAM,CAACK,gBAAd;AACD,GAxCS,EAwCP,CAACzB,IAAD,EAAOC,UAAP,EAAmBE,SAAnB,EAA8BD,IAA9B,EAAoCH,IAApC,EAA0CH,aAA1C,CAxCO,CAAV;AA0CA,SAAOmB,CAAP;AACD,CAtEM","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport {\n Extrapolate,\n interpolate,\n useDerivedValue,\n} from \"react-native-reanimated\";\n\nimport type { IVisibleRanges } from \"./useVisibleRanges\";\n\nexport interface IOpts {\n index: number\n size: number\n handlerOffset: Animated.SharedValue<number>\n dataLength: number\n type?: \"positive\" | \"negative\"\n viewCount?: number\n loop?: boolean\n}\n\nexport const useOffsetX = (opts: IOpts, visibleRanges: IVisibleRanges) => {\n const {\n handlerOffset,\n index,\n size,\n loop,\n dataLength,\n type = \"positive\",\n viewCount: _viewCount,\n } = opts;\n\n const ITEM_LENGTH = dataLength;\n const VALID_LENGTH = ITEM_LENGTH - 1;\n const TOTAL_WIDTH = size * ITEM_LENGTH;\n const HALF_WIDTH = 0.5 * size;\n\n const viewCount = _viewCount ?? Math.round((ITEM_LENGTH - 1) / 2);\n const positiveCount\n = type === \"positive\" ? viewCount : VALID_LENGTH - viewCount;\n\n let startPos = size * index;\n if (index > positiveCount)\n startPos = (index - ITEM_LENGTH) * size;\n\n const MAX = positiveCount * size;\n const MIN = -((VALID_LENGTH - positiveCount) * size);\n\n const x = useDerivedValue(() => {\n const { negativeRange, positiveRange } = visibleRanges.value;\n\n if (\n (index >= negativeRange[0] && index <= negativeRange[1])\n || (index >= positiveRange[0] && index <= positiveRange[1])\n ) {\n if (loop) {\n const inputRange = [\n -TOTAL_WIDTH,\n MIN - HALF_WIDTH - startPos - Number.MIN_VALUE,\n MIN - HALF_WIDTH - startPos,\n 0,\n MAX + HALF_WIDTH - startPos,\n MAX + HALF_WIDTH - startPos + Number.MIN_VALUE,\n TOTAL_WIDTH,\n ];\n\n const outputRange = [\n startPos,\n MAX + HALF_WIDTH - Number.MIN_VALUE,\n MIN - HALF_WIDTH,\n startPos,\n MAX + HALF_WIDTH,\n MIN - HALF_WIDTH + Number.MIN_VALUE,\n startPos,\n ];\n\n return interpolate(\n handlerOffset.value,\n inputRange,\n outputRange,\n Extrapolate.CLAMP,\n );\n }\n\n return handlerOffset.value + size * index;\n }\n\n return Number.MAX_SAFE_INTEGER;\n }, [loop, dataLength, viewCount, type, size, visibleRanges]);\n\n return x;\n};\n"]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _reactNativeReanimated = require("react-native-reanimated");
4
+
5
+ var _reactHooks = require("@testing-library/react-hooks");
6
+
7
+ var _useOffsetX = require("./useOffsetX");
8
+
9
+ describe("useSharedValue", () => {
10
+ it("should return the correct values", async () => {
11
+ const hook = (0, _reactHooks.renderHook)(() => {
12
+ const range = (0, _reactNativeReanimated.useSharedValue)({
13
+ negativeRange: [7, 9],
14
+ positiveRange: [0, 3]
15
+ });
16
+ const inputs = Array.from({
17
+ length: 10
18
+ }).map((_, index) => ({
19
+ config: {
20
+ dataLength: 10,
21
+ handlerOffset: (0, _reactNativeReanimated.useSharedValue)(-0),
22
+ index,
23
+ loop: false,
24
+ size: 393
25
+ },
26
+ range
27
+ }));
28
+ return inputs.map(input => {
29
+ const {
30
+ config,
31
+ range
32
+ } = input;
33
+ return (0, _useOffsetX.useOffsetX)(config, range);
34
+ });
35
+ });
36
+ const expected = hook.result.current.map(v => v.value).slice();
37
+ expect(expected).toMatchInlineSnapshot(`
38
+ [
39
+ 0,
40
+ 393,
41
+ 786,
42
+ 1179,
43
+ 9007199254740991,
44
+ 9007199254740991,
45
+ 9007199254740991,
46
+ 2751,
47
+ 3144,
48
+ 3537,
49
+ ]
50
+ `);
51
+ });
52
+ });
53
+ //# sourceMappingURL=useOffsetX.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useOffsetX.test.ts"],"names":["describe","it","hook","range","negativeRange","positiveRange","inputs","Array","from","length","map","_","index","config","dataLength","handlerOffset","loop","size","input","expected","result","current","v","value","slice","expect","toMatchInlineSnapshot"],"mappings":";;AAAA;;AAEA;;AAGA;;AAGAA,QAAQ,CAAC,gBAAD,EAAmB,MAAM;AAC/BC,EAAAA,EAAE,CAAC,kCAAD,EAAqC,YAAY;AACjD,UAAMC,IAAI,GAAG,4BAAW,MAAM;AAC5B,YAAMC,KAAK,GAAG,2CAAe;AAC3BC,QAAAA,aAAa,EAAE,CAAC,CAAD,EAAI,CAAJ,CADY;AAE3BC,QAAAA,aAAa,EAAE,CAAC,CAAD,EAAI,CAAJ;AAFY,OAAf,CAAd;AAIA,YAAMC,MAGJ,GAAGC,KAAK,CAACC,IAAN,CAAW;AAAEC,QAAAA,MAAM,EAAE;AAAV,OAAX,EAA2BC,GAA3B,CAA+B,CAACC,CAAD,EAAIC,KAAJ,MAAe;AACjDC,QAAAA,MAAM,EAAE;AACNC,UAAAA,UAAU,EAAE,EADN;AAENC,UAAAA,aAAa,EAAE,2CAAe,CAAC,CAAhB,CAFT;AAGNH,UAAAA,KAHM;AAINI,UAAAA,IAAI,EAAE,KAJA;AAKNC,UAAAA,IAAI,EAAE;AALA,SADyC;AAQjDd,QAAAA;AARiD,OAAf,CAA/B,CAHL;AAcA,aAAOG,MAAM,CAACI,GAAP,CAAYQ,KAAD,IAAW;AAC3B,cAAM;AAAEL,UAAAA,MAAF;AAAUV,UAAAA;AAAV,YAAoBe,KAA1B;AAEA,eAAO,4BAAWL,MAAX,EAAmBV,KAAnB,CAAP;AACD,OAJM,CAAP;AAKD,KAxBY,CAAb;AA0BA,UAAMgB,QAAQ,GAAGjB,IAAI,CAACkB,MAAL,CAAYC,OAAZ,CAAoBX,GAApB,CAAwBY,CAAC,IAAIA,CAAC,CAACC,KAA/B,EAAsCC,KAAtC,EAAjB;AAEAC,IAAAA,MAAM,CAACN,QAAD,CAAN,CAAiBO,qBAAjB,CAAwC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAbI;AAcD,GA3CC,CAAF;AA4CD,CA7CO,CAAR","sourcesContent":["import { useSharedValue } from \"react-native-reanimated\";\n\nimport { renderHook } from \"@testing-library/react-hooks\";\n\nimport type { IOpts } from \"./useOffsetX\";\nimport { useOffsetX } from \"./useOffsetX\";\nimport type { IVisibleRanges } from \"./useVisibleRanges\";\n\ndescribe(\"useSharedValue\", () => {\n it(\"should return the correct values\", async () => {\n const hook = renderHook(() => {\n const range = useSharedValue({\n negativeRange: [7, 9],\n positiveRange: [0, 3],\n }) as IVisibleRanges;\n const inputs: Array<{\n config: IOpts\n range: IVisibleRanges\n }> = Array.from({ length: 10 }).map((_, index) => ({\n config: {\n dataLength: 10,\n handlerOffset: useSharedValue(-0),\n index,\n loop: false,\n size: 393,\n },\n range,\n }));\n\n return inputs.map((input) => {\n const { config, range } = input;\n\n return useOffsetX(config, range);\n });\n });\n\n const expected = hook.result.current.map(v => v.value).slice();\n\n expect(expected).toMatchInlineSnapshot(`\n [\n 0,\n 393,\n 786,\n 1179,\n 9007199254740991,\n 9007199254740991,\n 9007199254740991,\n 2751,\n 3144,\n 3537,\n ]\n `);\n });\n});\n"]}
@@ -1,2 +1,39 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.useOnProgressChange=useOnProgressChange;var _reactNativeReanimated=require("react-native-reanimated");var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");var _worklet_15415777011180_init_data={code:"function anonymous() {\n const {\n offsetX\n } = this._closure;\n return offsetX.value;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"offsetX\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts\"],\"mappings\":\"AAsBI,SAAAA,UAAA;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAMD,OAAQ,CAAAE,KAAA;AAAA\"}"};var _worklet_2512862808065_init_data={code:"function anonymous(_value) {\n const {\n computedOffsetXValueWithAutoFillData,\n rawDataLength,\n size,\n autoFillData,\n loop,\n onProgressChange,\n runOnJS\n } = this._closure;\n let value = computedOffsetXValueWithAutoFillData({\n value: _value,\n rawDataLength: rawDataLength,\n size: size,\n autoFillData: autoFillData,\n loop: loop\n });\n if (!loop) {\n value = Math.max(-((rawDataLength - 1) * size), Math.min(value, 0));\n }\n let absoluteProgress = Math.abs(value / size);\n if (value > 0) absoluteProgress = rawDataLength - absoluteProgress;\n if (onProgressChange) runOnJS(onProgressChange)(value, absoluteProgress);\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"_value\",\"computedOffsetXValueWithAutoFillData\",\"rawDataLength\",\"size\",\"autoFillData\",\"loop\",\"onProgressChange\",\"runOnJS\",\"_closure\",\"value\",\"Math\",\"max\",\"min\",\"absoluteProgress\",\"abs\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts\"],\"mappings\":\"AAuBK,SAAAA,SAAMA,CAAKC,MAAA;EAAA;IAAAC,oCAAA;IAAAC,aAAA;IAAAC,IAAA;IAAAC,YAAA;IAAAC,IAAA;IAAAC,gBAAA;IAAAC;EAAA,SAAAC,QAAA;EACV,IAAIC,KAAK,GAAGR,oCAAoC,CAAC;IAC/CQ,KAAK,EAAET,MAAM;IACbE,aAAa,EAAbA,aAAa;IACbC,IAAI,EAAJA,IAAI;IACJC,YAAY,EAAZA,YAAY;IACZC,IAAA,EAAAA;EACF,CAAC,CAAC;EAEF,IAAI,CAACA,IAAI,EAAE;IACTI,KAAK,GAAGC,IAAI,CAACC,GAAG,CACd,EAAE,CAACT,aAAa,GAAG,CAAC,IAAIC,IAAI,CAAC,EAC7BO,IAAI,CAACE,GAAG,CAACH,KAAK,EAAE,CAAC,CACnB,CAAC;EACH;EAEA,IAAII,gBAAgB,GAAGH,IAAI,CAACI,GAAG,CAACL,KAAK,GAAGN,IAAI,CAAC;EAE7C,IAAIM,KAAK,GAAG,CAAC,EACXI,gBAAgB,GAAGX,aAAa,GAAGW,gBAAgB;EAErD,IAAIP,gBAAgB,EAClBC,OAAO,CAACD,gBAAgB,CAAC,CAACG,KAAK,EAAEI,gBAAgB,CAAC;AACtD\"}"};function useOnProgressChange(opts){var autoFillData=opts.autoFillData,loop=opts.loop,offsetX=opts.offsetX,size=opts.size,rawDataLength=opts.rawDataLength,onProgressChange=opts.onProgressChange;(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _e=[new global.Error(),-2,-27];var _f=function _f(){return offsetX.value;};_f._closure={offsetX:offsetX};_f.__initData=_worklet_15415777011180_init_data;_f.__workletHash=15415777011180;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),function(){var _e=[new global.Error(),-8,-27];var _f=function _f(_value){var value=(0,_computedWithAutoFillData.computedOffsetXValueWithAutoFillData)({value:_value,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop});if(!loop){value=Math.max(-((rawDataLength-1)*size),Math.min(value,0));}var absoluteProgress=Math.abs(value/size);if(value>0)absoluteProgress=rawDataLength-absoluteProgress;if(onProgressChange)(0,_reactNativeReanimated.runOnJS)(onProgressChange)(value,absoluteProgress);};_f._closure={computedOffsetXValueWithAutoFillData:_computedWithAutoFillData.computedOffsetXValueWithAutoFillData,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop,onProgressChange:onProgressChange,runOnJS:_reactNativeReanimated.runOnJS};_f.__initData=_worklet_2512862808065_init_data;_f.__workletHash=2512862808065;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[loop,autoFillData,rawDataLength,onProgressChange]);}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useOnProgressChange = useOnProgressChange;
7
+
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+
10
+ var _computedWithAutoFillData = require("../utils/computed-with-auto-fill-data");
11
+
12
+ function useOnProgressChange(opts) {
13
+ const {
14
+ autoFillData,
15
+ loop,
16
+ offsetX,
17
+ size,
18
+ rawDataLength,
19
+ onProgressChange
20
+ } = opts;
21
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => offsetX.value, _value => {
22
+ let value = (0, _computedWithAutoFillData.computedOffsetXValueWithAutoFillData)({
23
+ value: _value,
24
+ rawDataLength,
25
+ size,
26
+ autoFillData,
27
+ loop
28
+ });
29
+
30
+ if (!loop) {
31
+ value = Math.max(-((rawDataLength - 1) * size), Math.min(value, 0));
32
+ }
33
+
34
+ let absoluteProgress = Math.abs(value / size);
35
+ if (value > 0) absoluteProgress = rawDataLength - absoluteProgress;
36
+ if (onProgressChange) (0, _reactNativeReanimated.runOnJS)(onProgressChange)(value, absoluteProgress);
37
+ }, [loop, autoFillData, rawDataLength, onProgressChange]);
38
+ }
2
39
  //# sourceMappingURL=useOnProgressChange.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useOnProgressChange.ts"],"names":["useOnProgressChange","opts","autoFillData","loop","offsetX","size","rawDataLength","onProgressChange","value","_value","Math","max","min","absoluteProgress","abs","computedOffsetXValueWithAutoFillData","runOnJS"],"mappings":"yGACA,8DAMA,2E,49EAEO,QAASA,CAAAA,mBAAT,CACLC,IADK,CAQL,CACA,GAAQC,CAAAA,YAAR,CACQD,IADR,CAAQC,YAAR,CAAsBC,IAAtB,CACQF,IADR,CAAsBE,IAAtB,CAA4BC,OAA5B,CACQH,IADR,CAA4BG,OAA5B,CAAqCC,IAArC,CACQJ,IADR,CAAqCI,IAArC,CAA2CC,aAA3C,CACQL,IADR,CAA2CK,aAA3C,CAA0DC,gBAA1D,CACQN,IADR,CAA0DM,gBAA1D,CAGA,oGACE,oBAAMH,CAAAA,OAAO,CAACI,KAAd,EADF,sBArBKJ,OAqBL,2MAEGK,MAFH,CAEc,CACV,GAAID,CAAAA,KAAK,CAAG,mEAAqC,CAC/CA,KAAK,CAAEC,MADwC,CAE/CH,aAAa,CAAbA,aAF+C,CAG/CD,IAAI,CAAJA,IAH+C,CAI/CH,YAAY,CAAZA,YAJ+C,CAK/CC,IAAI,CAAJA,IAL+C,CAArC,CAAZ,CAQA,GAAI,CAACA,IAAL,CAAW,CACTK,KAAK,CAAGE,IAAI,CAACC,GAAL,CACN,EAAE,CAACL,aAAa,CAAG,CAAjB,EAAsBD,IAAxB,CADM,CAENK,IAAI,CAACE,GAAL,CAASJ,KAAT,CAAgB,CAAhB,CAFM,CAAR,CAID,CAED,GAAIK,CAAAA,gBAAgB,CAAGH,IAAI,CAACI,GAAL,CAASN,KAAK,CAAGH,IAAjB,CAAvB,CAEA,GAAIG,KAAK,CAAG,CAAZ,CACEK,gBAAgB,CAAGP,aAAa,CAAGO,gBAAnC,CAEF,GAAIN,gBAAJ,CACE,mCAAQA,gBAAR,EAA0BC,KAA1B,CAAiCK,gBAAjC,EACH,CAzBH,mDApBYE,8DAoBZ,eATkCT,aASlC,MAVwCD,IAUxC,cAhBEH,YAgBF,MAbKC,IAaL,kBAR8BI,gBAQ9B,SARsBS,8BAQtB,wIA0BE,CAACb,IAAD,CAAOD,YAAP,CAAqBI,aAArB,CAAoCC,gBAApC,CA1BF,EA4BD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport {\n runOnJS,\n useAnimatedReaction,\n} from \"react-native-reanimated\";\n\nimport type { TCarouselProps } from \"../types\";\nimport { computedOffsetXValueWithAutoFillData } from \"../utils/computedWithAutoFillData\";\n\nexport function useOnProgressChange(\n opts: {\n size: number\n autoFillData: boolean\n loop: boolean\n offsetX: Animated.SharedValue<number>\n rawDataLength: number\n } & Pick<TCarouselProps, \"onProgressChange\">,\n) {\n const { autoFillData, loop, offsetX, size, rawDataLength, onProgressChange }\n = opts;\n\n useAnimatedReaction(\n () => offsetX.value,\n (_value) => {\n let value = computedOffsetXValueWithAutoFillData({\n value: _value,\n rawDataLength,\n size,\n autoFillData,\n loop,\n });\n\n if (!loop) {\n value = Math.max(\n -((rawDataLength - 1) * size),\n Math.min(value, 0),\n );\n }\n\n let absoluteProgress = Math.abs(value / size);\n\n if (value > 0)\n absoluteProgress = rawDataLength - absoluteProgress;\n\n if (onProgressChange)\n runOnJS(onProgressChange)(value, absoluteProgress);\n },\n [loop, autoFillData, rawDataLength, onProgressChange],\n );\n}\n"]}
1
+ {"version":3,"sources":["useOnProgressChange.ts"],"names":["useOnProgressChange","opts","autoFillData","loop","offsetX","size","rawDataLength","onProgressChange","value","_value","Math","max","min","absoluteProgress","abs"],"mappings":";;;;;;;AACA;;AAMA;;AAEO,SAASA,mBAAT,CACLC,IADK,EAQL;AACA,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA,IAAhB;AAAsBC,IAAAA,OAAtB;AAA+BC,IAAAA,IAA/B;AAAqCC,IAAAA,aAArC;AAAoDC,IAAAA;AAApD,MACEN,IADR;AAGA,kDACE,MAAMG,OAAO,CAACI,KADhB,EAEGC,MAAD,IAAY;AACV,QAAID,KAAK,GAAG,oEAAqC;AAC/CA,MAAAA,KAAK,EAAEC,MADwC;AAE/CH,MAAAA,aAF+C;AAG/CD,MAAAA,IAH+C;AAI/CH,MAAAA,YAJ+C;AAK/CC,MAAAA;AAL+C,KAArC,CAAZ;;AAQA,QAAI,CAACA,IAAL,EAAW;AACTK,MAAAA,KAAK,GAAGE,IAAI,CAACC,GAAL,CACN,EAAE,CAACL,aAAa,GAAG,CAAjB,IAAsBD,IAAxB,CADM,EAENK,IAAI,CAACE,GAAL,CAASJ,KAAT,EAAgB,CAAhB,CAFM,CAAR;AAID;;AAED,QAAIK,gBAAgB,GAAGH,IAAI,CAACI,GAAL,CAASN,KAAK,GAAGH,IAAjB,CAAvB;AAEA,QAAIG,KAAK,GAAG,CAAZ,EACEK,gBAAgB,GAAGP,aAAa,GAAGO,gBAAnC;AAEF,QAAIN,gBAAJ,EACE,oCAAQA,gBAAR,EAA0BC,KAA1B,EAAiCK,gBAAjC;AACH,GAzBH,EA0BE,CAACV,IAAD,EAAOD,YAAP,EAAqBI,aAArB,EAAoCC,gBAApC,CA1BF;AA4BD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport {\n runOnJS,\n useAnimatedReaction,\n} from \"react-native-reanimated\";\n\nimport type { TCarouselProps } from \"../types\";\nimport { computedOffsetXValueWithAutoFillData } from \"../utils/computed-with-auto-fill-data\";\n\nexport function useOnProgressChange(\n opts: {\n size: number\n autoFillData: boolean\n loop: boolean\n offsetX: Animated.SharedValue<number>\n rawDataLength: number\n } & Pick<TCarouselProps, \"onProgressChange\">,\n) {\n const { autoFillData, loop, offsetX, size, rawDataLength, onProgressChange }\n = opts;\n\n useAnimatedReaction(\n () => offsetX.value,\n (_value) => {\n let value = computedOffsetXValueWithAutoFillData({\n value: _value,\n rawDataLength,\n size,\n autoFillData,\n loop,\n });\n\n if (!loop) {\n value = Math.max(\n -((rawDataLength - 1) * size),\n Math.min(value, 0),\n );\n }\n\n let absoluteProgress = Math.abs(value / size);\n\n if (value > 0)\n absoluteProgress = rawDataLength - absoluteProgress;\n\n if (onProgressChange)\n runOnJS(onProgressChange)(value, absoluteProgress);\n },\n [loop, autoFillData, rawDataLength, onProgressChange],\n );\n}\n"]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.usePanGestureProxy = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _reactNativeGestureHandler = require("react-native-gesture-handler");
11
+
12
+ var _useUpdateGestureConfig = require("./useUpdateGestureConfig");
13
+
14
+ const usePanGestureProxy = customization => {
15
+ const {
16
+ onConfigurePanGesture,
17
+ onGestureStart,
18
+ onGestureUpdate,
19
+ onGestureEnd,
20
+ options = {}
21
+ } = customization;
22
+ const gesture = (0, _react.useMemo)(() => {
23
+ const gesture = _reactNativeGestureHandler.Gesture.Pan(); // Save the original gesture callbacks
24
+
25
+
26
+ const originalGestures = {
27
+ onStart: gesture.onStart,
28
+ onUpdate: gesture.onUpdate,
29
+ onEnd: gesture.onEnd
30
+ }; // Save the user defined gesture callbacks
31
+
32
+ const userDefinedConflictGestures = {
33
+ onStart: undefined,
34
+ onUpdate: undefined,
35
+ onEnd: undefined
36
+ };
37
+
38
+ const fakeOnStart = cb => {
39
+ // Using fakeOnStart to save the user defined callback
40
+ userDefinedConflictGestures.onStart = cb;
41
+ return gesture;
42
+ };
43
+
44
+ const fakeOnUpdate = cb => {
45
+ // Using fakeOnUpdate to save the user defined callback
46
+ userDefinedConflictGestures.onUpdate = cb;
47
+ return gesture;
48
+ };
49
+
50
+ const fakeOnEnd = cb => {
51
+ // Using fakeOnEnd to save the user defined callback
52
+ userDefinedConflictGestures.onEnd = cb;
53
+ return gesture;
54
+ }; // Setup the fake callbacks
55
+
56
+
57
+ gesture.onStart = fakeOnStart;
58
+ gesture.onUpdate = fakeOnUpdate;
59
+ gesture.onEnd = fakeOnEnd;
60
+ if (onConfigurePanGesture) // Get the gesture with the user defined configuration
61
+ onConfigurePanGesture(gesture); // Restore the original callbacks
62
+
63
+ gesture.onStart = originalGestures.onStart;
64
+ gesture.onUpdate = originalGestures.onUpdate;
65
+ gesture.onEnd = originalGestures.onEnd; // Setup the original callbacks with the user defined callbacks
66
+
67
+ gesture.onStart(e => {
68
+ onGestureStart(e);
69
+ if (userDefinedConflictGestures.onStart) userDefinedConflictGestures.onStart(e);
70
+ }).onUpdate(e => {
71
+ onGestureUpdate(e);
72
+ if (userDefinedConflictGestures.onUpdate) userDefinedConflictGestures.onUpdate(e);
73
+ }).onEnd((e, success) => {
74
+ onGestureEnd(e, success);
75
+ if (userDefinedConflictGestures.onEnd) userDefinedConflictGestures.onEnd(e, success);
76
+ });
77
+ return gesture;
78
+ }, [onGestureStart, onGestureUpdate, onGestureEnd, onConfigurePanGesture]);
79
+ (0, _useUpdateGestureConfig.useUpdateGestureConfig)(gesture, options);
80
+ return gesture;
81
+ };
82
+
83
+ exports.usePanGestureProxy = usePanGestureProxy;
84
+ //# sourceMappingURL=usePanGestureProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["usePanGestureProxy.ts"],"names":["usePanGestureProxy","customization","onConfigurePanGesture","onGestureStart","onGestureUpdate","onGestureEnd","options","gesture","Gesture","Pan","originalGestures","onStart","onUpdate","onEnd","userDefinedConflictGestures","undefined","fakeOnStart","cb","fakeOnUpdate","fakeOnEnd","e","success"],"mappings":";;;;;;;AAAA;;AAEA;;AAGA;;AAEO,MAAMA,kBAAkB,GAC7BC,aADgC,IAQ7B;AACH,QAAM;AACJC,IAAAA,qBADI;AAEJC,IAAAA,cAFI;AAGJC,IAAAA,eAHI;AAIJC,IAAAA,YAJI;AAKJC,IAAAA,OAAO,GAAG;AALN,MAMFL,aANJ;AAQA,QAAMM,OAAO,GAAG,oBAAQ,MAAM;AAC5B,UAAMA,OAAO,GAAGC,mCAAQC,GAAR,EAAhB,CAD4B,CAG5B;;;AACA,UAAMC,gBAAgB,GAAG;AACvBC,MAAAA,OAAO,EAAEJ,OAAO,CAACI,OADM;AAEvBC,MAAAA,QAAQ,EAAEL,OAAO,CAACK,QAFK;AAGvBC,MAAAA,KAAK,EAAEN,OAAO,CAACM;AAHQ,KAAzB,CAJ4B,CAU5B;;AACA,UAAMC,2BAIL,GAAG;AACFH,MAAAA,OAAO,EAAEI,SADP;AAEFH,MAAAA,QAAQ,EAAEG,SAFR;AAGFF,MAAAA,KAAK,EAAEE;AAHL,KAJJ;;AAUA,UAAMC,WAAmC,GAAIC,EAAD,IAAQ;AAClD;AACAH,MAAAA,2BAA2B,CAACH,OAA5B,GAAsCM,EAAtC;AACA,aAAOV,OAAP;AACD,KAJD;;AAMA,UAAMW,YAAqC,GAAID,EAAD,IAAQ;AACpD;AACAH,MAAAA,2BAA2B,CAACF,QAA5B,GAAuCK,EAAvC;AACA,aAAOV,OAAP;AACD,KAJD;;AAMA,UAAMY,SAA+B,GAAIF,EAAD,IAAQ;AAC9C;AACAH,MAAAA,2BAA2B,CAACD,KAA5B,GAAoCI,EAApC;AACA,aAAOV,OAAP;AACD,KAJD,CAjC4B,CAuC5B;;;AACAA,IAAAA,OAAO,CAACI,OAAR,GAAkBK,WAAlB;AACAT,IAAAA,OAAO,CAACK,QAAR,GAAmBM,YAAnB;AACAX,IAAAA,OAAO,CAACM,KAAR,GAAgBM,SAAhB;AAEA,QAAIjB,qBAAJ,EACE;AACAA,MAAAA,qBAAqB,CAACK,OAAD,CAArB,CA9C0B,CAgD5B;;AACAA,IAAAA,OAAO,CAACI,OAAR,GAAkBD,gBAAgB,CAACC,OAAnC;AACAJ,IAAAA,OAAO,CAACK,QAAR,GAAmBF,gBAAgB,CAACE,QAApC;AACAL,IAAAA,OAAO,CAACM,KAAR,GAAgBH,gBAAgB,CAACG,KAAjC,CAnD4B,CAqD5B;;AACAN,IAAAA,OAAO,CACJI,OADH,CACYS,CAAD,IAAO;AACdjB,MAAAA,cAAc,CAACiB,CAAD,CAAd;AAEA,UAAIN,2BAA2B,CAACH,OAAhC,EACEG,2BAA2B,CAACH,OAA5B,CAAoCS,CAApC;AACH,KANH,EAOGR,QAPH,CAOaQ,CAAD,IAAO;AACfhB,MAAAA,eAAe,CAACgB,CAAD,CAAf;AAEA,UAAIN,2BAA2B,CAACF,QAAhC,EACEE,2BAA2B,CAACF,QAA5B,CAAqCQ,CAArC;AACH,KAZH,EAaGP,KAbH,CAaS,CAACO,CAAD,EAAIC,OAAJ,KAAgB;AACrBhB,MAAAA,YAAY,CAACe,CAAD,EAAIC,OAAJ,CAAZ;AAEA,UAAIP,2BAA2B,CAACD,KAAhC,EACEC,2BAA2B,CAACD,KAA5B,CAAkCO,CAAlC,EAAqCC,OAArC;AACH,KAlBH;AAoBA,WAAOd,OAAP;AACD,GA3Ee,EA2Eb,CACDJ,cADC,EAEDC,eAFC,EAGDC,YAHC,EAIDH,qBAJC,CA3Ea,CAAhB;AAkFA,sDAAuBK,OAAvB,EAAgCD,OAAhC;AAEA,SAAOC,OAAP;AACD,CAtGM","sourcesContent":["import { useMemo } from \"react\";\nimport type { GestureStateChangeEvent, GestureUpdateEvent, PanGesture, PanGestureHandlerEventPayload } from \"react-native-gesture-handler\";\nimport { Gesture } from \"react-native-gesture-handler\";\n\nimport type { GestureConfig } from \"./useUpdateGestureConfig\";\nimport { useUpdateGestureConfig } from \"./useUpdateGestureConfig\";\n\nexport const usePanGestureProxy = (\n customization: {\n onConfigurePanGesture?: (gesture: PanGesture) => void\n onGestureStart: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => void\n onGestureUpdate: (event: GestureUpdateEvent<PanGestureHandlerEventPayload>) => void\n onGestureEnd: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>, success: boolean) => void\n options?: GestureConfig\n },\n) => {\n const {\n onConfigurePanGesture,\n onGestureStart,\n onGestureUpdate,\n onGestureEnd,\n options = {},\n } = customization;\n\n const gesture = useMemo(() => {\n const gesture = Gesture.Pan();\n\n // Save the original gesture callbacks\n const originalGestures = {\n onStart: gesture.onStart,\n onUpdate: gesture.onUpdate,\n onEnd: gesture.onEnd,\n };\n\n // Save the user defined gesture callbacks\n const userDefinedConflictGestures: {\n onStart?: Parameters<(typeof gesture)[\"onStart\"]>[0]\n onUpdate?: Parameters<(typeof gesture)[\"onUpdate\"]>[0]\n onEnd?: Parameters<(typeof gesture)[\"onEnd\"]>[0]\n } = {\n onStart: undefined,\n onUpdate: undefined,\n onEnd: undefined,\n };\n\n const fakeOnStart: typeof gesture.onStart = (cb) => {\n // Using fakeOnStart to save the user defined callback\n userDefinedConflictGestures.onStart = cb;\n return gesture;\n };\n\n const fakeOnUpdate: typeof gesture.onUpdate = (cb) => {\n // Using fakeOnUpdate to save the user defined callback\n userDefinedConflictGestures.onUpdate = cb;\n return gesture;\n };\n\n const fakeOnEnd: typeof gesture.onEnd = (cb) => {\n // Using fakeOnEnd to save the user defined callback\n userDefinedConflictGestures.onEnd = cb;\n return gesture;\n };\n\n // Setup the fake callbacks\n gesture.onStart = fakeOnStart;\n gesture.onUpdate = fakeOnUpdate;\n gesture.onEnd = fakeOnEnd;\n\n if (onConfigurePanGesture)\n // Get the gesture with the user defined configuration\n onConfigurePanGesture(gesture);\n\n // Restore the original callbacks\n gesture.onStart = originalGestures.onStart;\n gesture.onUpdate = originalGestures.onUpdate;\n gesture.onEnd = originalGestures.onEnd;\n\n // Setup the original callbacks with the user defined callbacks\n gesture\n .onStart((e) => {\n onGestureStart(e);\n\n if (userDefinedConflictGestures.onStart)\n userDefinedConflictGestures.onStart(e);\n })\n .onUpdate((e) => {\n onGestureUpdate(e);\n\n if (userDefinedConflictGestures.onUpdate)\n userDefinedConflictGestures.onUpdate(e);\n })\n .onEnd((e, success) => {\n onGestureEnd(e, success);\n\n if (userDefinedConflictGestures.onEnd)\n userDefinedConflictGestures.onEnd(e, success);\n });\n\n return gesture;\n }, [\n onGestureStart,\n onGestureUpdate,\n onGestureEnd,\n onConfigurePanGesture,\n ]);\n\n useUpdateGestureConfig(gesture, options);\n\n return gesture;\n};\n"]}