react-native-reanimated-carousel 3.1.5 → 3.3.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 (56) hide show
  1. package/README.md +9 -0
  2. package/README.zh-CN.md +38 -30
  3. package/lib/commonjs/Carousel.js +1 -1
  4. package/lib/commonjs/Carousel.js.map +1 -1
  5. package/lib/commonjs/ScrollViewGesture.js +1 -1
  6. package/lib/commonjs/ScrollViewGesture.js.map +1 -1
  7. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js +1 -1
  8. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js.map +1 -1
  9. package/lib/commonjs/hooks/index.test.js +1 -1
  10. package/lib/commonjs/hooks/index.test.js.map +1 -1
  11. package/lib/commonjs/hooks/useCarouselController.js +1 -1
  12. package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
  13. package/lib/commonjs/hooks/useCommonVariables.js +1 -1
  14. package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
  15. package/lib/commonjs/hooks/useInitProps.js +1 -1
  16. package/lib/commonjs/hooks/useInitProps.js.map +1 -1
  17. package/lib/commonjs/hooks/useOffsetX.js +1 -1
  18. package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
  19. package/lib/commonjs/hooks/useOnProgressChange.js +1 -1
  20. package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
  21. package/lib/commonjs/hooks/useVisibleRanges.js +1 -1
  22. package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
  23. package/lib/commonjs/layouts/BaseLayout.js +1 -1
  24. package/lib/commonjs/layouts/BaseLayout.js.map +1 -1
  25. package/lib/commonjs/layouts/ParallaxLayout.js +1 -1
  26. package/lib/commonjs/layouts/ParallaxLayout.js.map +1 -1
  27. package/lib/commonjs/layouts/normal.js +1 -1
  28. package/lib/commonjs/layouts/normal.js.map +1 -1
  29. package/lib/commonjs/layouts/parallax.js +1 -1
  30. package/lib/commonjs/layouts/parallax.js.map +1 -1
  31. package/lib/commonjs/layouts/stack.js +1 -1
  32. package/lib/commonjs/layouts/stack.js.map +1 -1
  33. package/lib/commonjs/utils/computedWithAutoFillData.js +1 -1
  34. package/lib/commonjs/utils/computedWithAutoFillData.js.map +1 -1
  35. package/lib/commonjs/utils/dealWithAnimation.js +1 -1
  36. package/lib/commonjs/utils/dealWithAnimation.js.map +1 -1
  37. package/lib/commonjs/utils/handlerOffsetDirection.js +1 -1
  38. package/lib/commonjs/utils/log.js +1 -1
  39. package/lib/module/ScrollViewGesture.js +79 -37
  40. package/lib/module/ScrollViewGesture.js.map +1 -1
  41. package/lib/module/hooks/index.test.js +0 -1
  42. package/lib/module/hooks/index.test.js.map +1 -1
  43. package/lib/module/hooks/useInitProps.js +5 -2
  44. package/lib/module/hooks/useInitProps.js.map +1 -1
  45. package/lib/module/layouts/BaseLayout.js +7 -0
  46. package/lib/module/layouts/BaseLayout.js.map +1 -1
  47. package/lib/module/utils/dealWithAnimation.js +2 -6
  48. package/lib/module/utils/dealWithAnimation.js.map +1 -1
  49. package/lib/typescript/types.d.ts +10 -5
  50. package/package.json +13 -10
  51. package/src/ScrollViewGesture.tsx +80 -39
  52. package/src/hooks/index.test.ts +0 -2
  53. package/src/hooks/useInitProps.ts +5 -2
  54. package/src/layouts/BaseLayout.tsx +7 -1
  55. package/src/types.ts +12 -5
  56. package/src/utils/dealWithAnimation.ts +6 -10
package/README.md CHANGED
@@ -148,6 +148,15 @@ export default Index;
148
148
  - Working principle
149
149
  - [About RNRC](./docs/about.md)
150
150
 
151
+ - How to run tests in `exampleExpo`
152
+ ```shell
153
+ $ yarn prepare
154
+ $ yarn link --global
155
+ $ cd ./exampleExpo
156
+ $ yarn link react-native-reanimated-carousel --global
157
+ $ yarn test
158
+ ```
159
+
151
160
  ## Reason
152
161
 
153
162
  <details>
package/README.zh-CN.md CHANGED
@@ -84,38 +84,38 @@ npm install react-native-reanimated-carousel
84
84
  ## 使用
85
85
 
86
86
  ```tsx
87
- import * as React from 'react';
88
- import { Dimensions, Text, View } from 'react-native';
89
- import Carousel from 'react-native-reanimated-carousel';
87
+ import * as React from "react";
88
+ import { Dimensions, Text, View } from "react-native";
89
+ import Carousel from "react-native-reanimated-carousel";
90
90
 
91
91
  function Index() {
92
- const width = Dimensions.get('window').width;
93
- return (
94
- <View style={{ flex: 1 }}>
95
- <Carousel
96
- loop
97
- width={width}
98
- height={width / 2}
99
- autoPlay={true}
100
- data={[...new Array(6).keys()]}
101
- scrollAnimationDuration={1000}
102
- onSnapToItem={(index) => console.log('current index:', index)}
103
- renderItem={({ index }) => (
104
- <View
105
- style={{
106
- flex: 1,
107
- borderWidth: 1,
108
- justifyContent: 'center',
109
- }}
110
- >
111
- <Text style={{ textAlign: 'center', fontSize: 30 }}>
112
- {index}
113
- </Text>
114
- </View>
115
- )}
116
- />
117
- </View>
118
- );
92
+ const width = Dimensions.get("window").width;
93
+ return (
94
+ <View style={{ flex: 1 }}>
95
+ <Carousel
96
+ loop
97
+ width={width}
98
+ height={width / 2}
99
+ autoPlay={true}
100
+ data={[...new Array(6).keys()]}
101
+ scrollAnimationDuration={1000}
102
+ onSnapToItem={index => console.log("current index:", index)}
103
+ renderItem={({ index }) => (
104
+ <View
105
+ style={{
106
+ flex: 1,
107
+ borderWidth: 1,
108
+ justifyContent: "center",
109
+ }}
110
+ >
111
+ <Text style={{ textAlign: "center", fontSize: 30 }}>
112
+ {index}
113
+ </Text>
114
+ </View>
115
+ )}
116
+ />
117
+ </View>
118
+ );
119
119
  }
120
120
 
121
121
  export default Index;
@@ -144,6 +144,14 @@ export default Index;
144
144
  - 如果你使用 EXPO 托管工作流,请确定你的 EXPO SDK 版本大于 41,因为旧的版本并不支持`Reanimated(v2)`。
145
145
  - 工作原理
146
146
  - [关于RNRC](./docs/about.zh-CN.md)
147
+ - 如何运行`exampleExpo`的测试
148
+ ```shell
149
+ $ yarn prepare
150
+ $ yarn link --global
151
+ $ cd ./exampleExpo
152
+ $ yarn link react-native-reanimated-carousel --global
153
+ $ yarn test
154
+ ```
147
155
 
148
156
  ## 原因
149
157
 
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeReanimated=require("react-native-reanimated");var _useAutoPlay2=require("./hooks/useAutoPlay");var _useCarouselController=require("./hooks/useCarouselController");var _useCommonVariables=require("./hooks/useCommonVariables");var _useInitProps=require("./hooks/useInitProps");var _useLayoutConfig=require("./hooks/useLayoutConfig");var _useOnProgressChange=require("./hooks/useOnProgressChange");var _usePropsErrorBoundary=require("./hooks/usePropsErrorBoundary");var _useVisibleRanges=require("./hooks/useVisibleRanges");var _BaseLayout=require("./layouts/BaseLayout");var _ScrollViewGesture=require("./ScrollViewGesture");var _store=require("./store");var _computedWithAutoFillData=require("./utils/computedWithAutoFillData");var _this=this,_jsxFileName="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/Carousel.tsx";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var Carousel=_react.default.forwardRef(function(_props,ref){var props=(0,_useInitProps.useInitProps)(_props);var testID=props.testID,loop=props.loop,autoFillData=props.autoFillData,data=props.data,dataLength=props.dataLength,rawData=props.rawData,rawDataLength=props.rawDataLength,mode=props.mode,style=props.style,width=props.width,height=props.height,vertical=props.vertical,autoPlay=props.autoPlay,windowSize=props.windowSize,autoPlayReverse=props.autoPlayReverse,autoPlayInterval=props.autoPlayInterval,scrollAnimationDuration=props.scrollAnimationDuration,withAnimation=props.withAnimation,renderItem=props.renderItem,onScrollEnd=props.onScrollEnd,onSnapToItem=props.onSnapToItem,_onScrollBegin=props.onScrollBegin,onProgressChange=props.onProgressChange,customAnimation=props.customAnimation,defaultIndex=props.defaultIndex;var commonVariables=(0,_useCommonVariables.useCommonVariables)(props);var size=commonVariables.size,handlerOffset=commonVariables.handlerOffset;var offsetX=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var totalSize=size*dataLength;var x=handlerOffset.value%totalSize;if(!loop)return handlerOffset.value;return isNaN(x)?0:x;};_f._closure={size:size,dataLength:dataLength,handlerOffset:handlerOffset,loop:loop};_f.asString="function _f(){const{size,dataLength,handlerOffset,loop}=jsThis._closure;{const totalSize=size*dataLength;const x=handlerOffset.value%totalSize;if(!loop)return handlerOffset.value;return isNaN(x)?0:x;}}";_f.__workletHash=9793733890185;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/Carousel.tsx (59:36)";return _f;}(),[loop,size,dataLength]);(0,_usePropsErrorBoundary.usePropsErrorBoundary)(_objectSpread(_objectSpread({},props),{},{dataLength:dataLength}));(0,_useOnProgressChange.useOnProgressChange)({autoFillData:autoFillData,loop:loop,size:size,offsetX:offsetX,rawDataLength:rawDataLength,onProgressChange:onProgressChange});var carouselController=(0,_useCarouselController.useCarouselController)({loop:loop,size:size,dataLength:dataLength,autoFillData:autoFillData,handlerOffset:handlerOffset,withAnimation:withAnimation,defaultIndex:defaultIndex,onScrollEnd:function onScrollEnd(){return(0,_reactNativeReanimated.runOnJS)(_onScrollEnd)();},onScrollBegin:function onScrollBegin(){return!!_onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(_onScrollBegin)();},duration:scrollAnimationDuration});var next=carouselController.next,prev=carouselController.prev,scrollTo=carouselController.scrollTo,getSharedIndex=carouselController.getSharedIndex,getCurrentIndex=carouselController.getCurrentIndex;var _useAutoPlay=(0,_useAutoPlay2.useAutoPlay)({autoPlay:autoPlay,autoPlayInterval:autoPlayInterval,autoPlayReverse:autoPlayReverse,carouselController:carouselController}),startAutoPlay=_useAutoPlay.start,pauseAutoPlay=_useAutoPlay.pause;var _onScrollEnd=_react.default.useCallback(function(){var _sharedIndex=Math.round(getSharedIndex());var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:_sharedIndex,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});if(onSnapToItem)onSnapToItem(realIndex);if(onScrollEnd)onScrollEnd(realIndex);},[loop,autoFillData,rawDataLength,getSharedIndex,onSnapToItem,onScrollEnd]);var scrollViewGestureOnScrollBegin=_react.default.useCallback(function(){pauseAutoPlay();_onScrollBegin==null?void 0:_onScrollBegin();},[_onScrollBegin,pauseAutoPlay]);var scrollViewGestureOnScrollEnd=_react.default.useCallback(function(){startAutoPlay();_onScrollEnd();},[_onScrollEnd,startAutoPlay]);var scrollViewGestureOnTouchBegin=_react.default.useCallback(pauseAutoPlay,[pauseAutoPlay]);var scrollViewGestureOnTouchEnd=_react.default.useCallback(startAutoPlay,[startAutoPlay]);_react.default.useImperativeHandle(ref,function(){return{next:next,prev:prev,getCurrentIndex:getCurrentIndex,scrollTo:scrollTo};},[getCurrentIndex,next,prev,scrollTo]);var visibleRanges=(0,_useVisibleRanges.useVisibleRanges)({total:dataLength,viewSize:size,translation:handlerOffset,windowSize:windowSize});var layoutConfig=(0,_useLayoutConfig.useLayoutConfig)(_objectSpread(_objectSpread({},props),{},{size:size}));var renderLayout=_react.default.useCallback(function(item,i){var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:i,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});return _react.default.createElement(_BaseLayout.BaseLayout,{key:i,index:i,handlerOffset:offsetX,visibleRanges:visibleRanges,animationStyle:customAnimation||layoutConfig,__self:_this,__source:{fileName:_jsxFileName,lineNumber:174,columnNumber:11}},function(_ref){var animationValue=_ref.animationValue;return renderItem({item:item,index:realIndex,animationValue:animationValue});});},[loop,rawData,offsetX,visibleRanges,autoFillData,renderItem,layoutConfig,customAnimation]);return _react.default.createElement(_store.CTX.Provider,{value:{props:props,common:commonVariables},__self:_this,__source:{fileName:_jsxFileName,lineNumber:204,columnNumber:7}},_react.default.createElement(_ScrollViewGesture.ScrollViewGesture,{key:mode,size:size,translation:handlerOffset,style:[styles.container,{width:width||"100%",height:height||"100%"},style,vertical?styles.itemsVertical:styles.itemsHorizontal],testID:testID,onScrollBegin:scrollViewGestureOnScrollBegin,onScrollEnd:scrollViewGestureOnScrollEnd,onTouchBegin:scrollViewGestureOnTouchBegin,onTouchEnd:scrollViewGestureOnTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:205,columnNumber:9}},data.map(renderLayout)));});var _default=Carousel;exports.default=_default;var styles=_reactNative.StyleSheet.create({container:{overflow:"hidden"},itemsHorizontal:{flexDirection:"row"},itemsVertical:{flexDirection:"column"}});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeReanimated=require("react-native-reanimated");var _useAutoPlay2=require("./hooks/useAutoPlay");var _useCarouselController=require("./hooks/useCarouselController");var _useCommonVariables=require("./hooks/useCommonVariables");var _useInitProps=require("./hooks/useInitProps");var _useLayoutConfig=require("./hooks/useLayoutConfig");var _useOnProgressChange=require("./hooks/useOnProgressChange");var _usePropsErrorBoundary=require("./hooks/usePropsErrorBoundary");var _useVisibleRanges=require("./hooks/useVisibleRanges");var _BaseLayout=require("./layouts/BaseLayout");var _ScrollViewGesture=require("./ScrollViewGesture");var _store=require("./store");var _computedWithAutoFillData=require("./utils/computedWithAutoFillData");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}var Carousel=_react.default.forwardRef(function(_props,ref){var props=(0,_useInitProps.useInitProps)(_props);var testID=props.testID,loop=props.loop,autoFillData=props.autoFillData,data=props.data,dataLength=props.dataLength,rawData=props.rawData,rawDataLength=props.rawDataLength,mode=props.mode,style=props.style,width=props.width,height=props.height,vertical=props.vertical,autoPlay=props.autoPlay,windowSize=props.windowSize,autoPlayReverse=props.autoPlayReverse,autoPlayInterval=props.autoPlayInterval,scrollAnimationDuration=props.scrollAnimationDuration,withAnimation=props.withAnimation,renderItem=props.renderItem,onScrollEnd=props.onScrollEnd,onSnapToItem=props.onSnapToItem,_onScrollBegin=props.onScrollBegin,onProgressChange=props.onProgressChange,customAnimation=props.customAnimation,defaultIndex=props.defaultIndex;var commonVariables=(0,_useCommonVariables.useCommonVariables)(props);var size=commonVariables.size,handlerOffset=commonVariables.handlerOffset;var offsetX=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var totalSize=size*dataLength;var x=handlerOffset.value%totalSize;if(!loop)return handlerOffset.value;return isNaN(x)?0:x;};_f._closure={size:size,dataLength:dataLength,handlerOffset:handlerOffset,loop:loop};_f.asString="function _f(){const{size,dataLength,handlerOffset,loop}=jsThis._closure;{const totalSize=size*dataLength;const x=handlerOffset.value%totalSize;if(!loop)return handlerOffset.value;return isNaN(x)?0:x;}}";_f.__workletHash=9793733890185;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx (59:36)";return _f;}(),[loop,size,dataLength]);(0,_usePropsErrorBoundary.usePropsErrorBoundary)(_objectSpread(_objectSpread({},props),{},{dataLength:dataLength}));(0,_useOnProgressChange.useOnProgressChange)({autoFillData:autoFillData,loop:loop,size:size,offsetX:offsetX,rawDataLength:rawDataLength,onProgressChange:onProgressChange});var carouselController=(0,_useCarouselController.useCarouselController)({loop:loop,size:size,dataLength:dataLength,autoFillData:autoFillData,handlerOffset:handlerOffset,withAnimation:withAnimation,defaultIndex:defaultIndex,onScrollEnd:function onScrollEnd(){return(0,_reactNativeReanimated.runOnJS)(_onScrollEnd)();},onScrollBegin:function onScrollBegin(){return!!_onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(_onScrollBegin)();},duration:scrollAnimationDuration});var next=carouselController.next,prev=carouselController.prev,scrollTo=carouselController.scrollTo,getSharedIndex=carouselController.getSharedIndex,getCurrentIndex=carouselController.getCurrentIndex;var _useAutoPlay=(0,_useAutoPlay2.useAutoPlay)({autoPlay:autoPlay,autoPlayInterval:autoPlayInterval,autoPlayReverse:autoPlayReverse,carouselController:carouselController}),startAutoPlay=_useAutoPlay.start,pauseAutoPlay=_useAutoPlay.pause;var _onScrollEnd=_react.default.useCallback(function(){var _sharedIndex=Math.round(getSharedIndex());var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:_sharedIndex,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});if(onSnapToItem)onSnapToItem(realIndex);if(onScrollEnd)onScrollEnd(realIndex);},[loop,autoFillData,rawDataLength,getSharedIndex,onSnapToItem,onScrollEnd]);var scrollViewGestureOnScrollBegin=_react.default.useCallback(function(){pauseAutoPlay();_onScrollBegin==null?void 0:_onScrollBegin();},[_onScrollBegin,pauseAutoPlay]);var scrollViewGestureOnScrollEnd=_react.default.useCallback(function(){startAutoPlay();_onScrollEnd();},[_onScrollEnd,startAutoPlay]);var scrollViewGestureOnTouchBegin=_react.default.useCallback(pauseAutoPlay,[pauseAutoPlay]);var scrollViewGestureOnTouchEnd=_react.default.useCallback(startAutoPlay,[startAutoPlay]);_react.default.useImperativeHandle(ref,function(){return{next:next,prev:prev,getCurrentIndex:getCurrentIndex,scrollTo:scrollTo};},[getCurrentIndex,next,prev,scrollTo]);var visibleRanges=(0,_useVisibleRanges.useVisibleRanges)({total:dataLength,viewSize:size,translation:handlerOffset,windowSize:windowSize});var layoutConfig=(0,_useLayoutConfig.useLayoutConfig)(_objectSpread(_objectSpread({},props),{},{size:size}));var renderLayout=_react.default.useCallback(function(item,i){var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:i,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});return _react.default.createElement(_BaseLayout.BaseLayout,{key:i,index:i,handlerOffset:offsetX,visibleRanges:visibleRanges,animationStyle:customAnimation||layoutConfig,__self:_this,__source:{fileName:_jsxFileName,lineNumber:174,columnNumber:11}},function(_ref){var animationValue=_ref.animationValue;return renderItem({item:item,index:realIndex,animationValue:animationValue});});},[loop,rawData,offsetX,visibleRanges,autoFillData,renderItem,layoutConfig,customAnimation]);return _react.default.createElement(_store.CTX.Provider,{value:{props:props,common:commonVariables},__self:_this,__source:{fileName:_jsxFileName,lineNumber:204,columnNumber:7}},_react.default.createElement(_ScrollViewGesture.ScrollViewGesture,{key:mode,size:size,translation:handlerOffset,style:[styles.container,{width:width||"100%",height:height||"100%"},style,vertical?styles.itemsVertical:styles.itemsHorizontal],testID:testID,onScrollBegin:scrollViewGestureOnScrollBegin,onScrollEnd:scrollViewGestureOnScrollEnd,onTouchBegin:scrollViewGestureOnTouchBegin,onTouchEnd:scrollViewGestureOnTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:205,columnNumber:9}},data.map(renderLayout)));});var _default=Carousel;exports.default=_default;var styles=_reactNative.StyleSheet.create({container:{overflow:"hidden"},itemsHorizontal:{flexDirection:"row"},itemsVertical:{flexDirection:"column"}});
2
2
  //# sourceMappingURL=Carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Carousel.tsx"],"names":["Carousel","React","forwardRef","_props","ref","props","testID","loop","autoFillData","data","dataLength","rawData","rawDataLength","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffset","offsetX","totalSize","x","value","isNaN","carouselController","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","startAutoPlay","start","pauseAutoPlay","pause","useCallback","_sharedIndex","Math","round","realIndex","index","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","useImperativeHandle","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","i","animationValue","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"iQACA,oDACA,yCACA,8DAEA,iDACA,oEACA,8DACA,kDACA,wDACA,gEACA,oEACA,0DACA,gDACA,sDACA,8BAEA,0E,i4BAEA,GAAMA,CAAAA,QAAQ,CAAGC,eAAMC,UAAN,CACf,SAACC,MAAD,CAASC,GAAT,CAAiB,CACf,GAAMC,CAAAA,KAAK,CAAG,+BAAaF,MAAb,CAAd,CAEA,GACEG,CAAAA,MADF,CA8BID,KA9BJ,CACEC,MADF,CAEEC,IAFF,CA8BIF,KA9BJ,CAEEE,IAFF,CAGEC,YAHF,CA8BIH,KA9BJ,CAGEG,YAHF,CAKEC,IALF,CA8BIJ,KA9BJ,CAKEI,IALF,CAOEC,UAPF,CA8BIL,KA9BJ,CAOEK,UAPF,CASEC,OATF,CA8BIN,KA9BJ,CASEM,OATF,CAWEC,aAXF,CA8BIP,KA9BJ,CAWEO,aAXF,CAYEC,IAZF,CA8BIR,KA9BJ,CAYEQ,IAZF,CAaEC,KAbF,CA8BIT,KA9BJ,CAaES,KAbF,CAcEC,KAdF,CA8BIV,KA9BJ,CAcEU,KAdF,CAeEC,MAfF,CA8BIX,KA9BJ,CAeEW,MAfF,CAgBEC,QAhBF,CA8BIZ,KA9BJ,CAgBEY,QAhBF,CAiBEC,QAjBF,CA8BIb,KA9BJ,CAiBEa,QAjBF,CAkBEC,UAlBF,CA8BId,KA9BJ,CAkBEc,UAlBF,CAmBEC,eAnBF,CA8BIf,KA9BJ,CAmBEe,eAnBF,CAoBEC,gBApBF,CA8BIhB,KA9BJ,CAoBEgB,gBApBF,CAqBEC,uBArBF,CA8BIjB,KA9BJ,CAqBEiB,uBArBF,CAsBEC,aAtBF,CA8BIlB,KA9BJ,CAsBEkB,aAtBF,CAuBEC,UAvBF,CA8BInB,KA9BJ,CAuBEmB,UAvBF,CAwBEC,WAxBF,CA8BIpB,KA9BJ,CAwBEoB,WAxBF,CAyBEC,YAzBF,CA8BIrB,KA9BJ,CAyBEqB,YAzBF,CA0BEC,cA1BF,CA8BItB,KA9BJ,CA0BEsB,aA1BF,CA2BEC,gBA3BF,CA8BIvB,KA9BJ,CA2BEuB,gBA3BF,CA4BEC,eA5BF,CA8BIxB,KA9BJ,CA4BEwB,eA5BF,CA6BEC,YA7BF,CA8BIzB,KA9BJ,CA6BEyB,YA7BF,CAgCA,GAAMC,CAAAA,eAAe,CAAG,2CAAmB1B,KAAnB,CAAxB,CACA,GAAQ2B,CAAAA,IAAR,CAAgCD,eAAhC,CAAQC,IAAR,CAAcC,aAAd,CAAgCF,eAAhC,CAAcE,aAAd,CAEA,GAAMC,CAAAA,OAAO,CAAG,0EAAsB,CACpC,GAAMC,CAAAA,SAAS,CAAGH,IAAI,CAAGtB,UAAzB,CACA,GAAM0B,CAAAA,CAAC,CAAGH,aAAa,CAACI,KAAd,CAAsBF,SAAhC,CAEA,GAAI,CAAC5B,IAAL,CACE,MAAO0B,CAAAA,aAAa,CAACI,KAArB,CAEF,MAAOC,CAAAA,KAAK,CAACF,CAAD,CAAL,CAAW,CAAX,CAAeA,CAAtB,CACD,CARe,mBAxDAJ,IAwDA,YAxDOtB,UAwDP,eAtDAuB,aAsDA,MAtDb1B,IAsDa,gXAQb,CAACA,IAAD,CAAOyB,IAAP,CAAatB,UAAb,CARa,CAAhB,CAUA,gFAA2BL,KAA3B,MAAkCK,UAAU,CAAVA,UAAlC,IACA,6CAAoB,CAClBF,YAAY,CAAZA,YADkB,CAElBD,IAAI,CAAJA,IAFkB,CAGlByB,IAAI,CAAJA,IAHkB,CAIlBE,OAAO,CAAPA,OAJkB,CAKlBtB,aAAa,CAAbA,aALkB,CAMlBgB,gBAAgB,CAAhBA,gBANkB,CAApB,EASA,GAAMW,CAAAA,kBAAkB,CAAG,iDAAsB,CAC/ChC,IAAI,CAAJA,IAD+C,CAE/CyB,IAAI,CAAJA,IAF+C,CAG/CtB,UAAU,CAAVA,UAH+C,CAI/CF,YAAY,CAAZA,YAJ+C,CAK/CyB,aAAa,CAAbA,aAL+C,CAM/CV,aAAa,CAAbA,aAN+C,CAO/CO,YAAY,CAAZA,YAP+C,CAQ/CL,WAAW,CAAE,6BAAM,mCAAQe,YAAR,GAAN,EARkC,CAS/Cb,aAAa,CAAE,+BAAM,CAAC,CAACA,cAAF,EAAmB,mCAAQA,cAAR,GAAzB,EATgC,CAU/Cc,QAAQ,CAAEnB,uBAVqC,CAAtB,CAA3B,CAaA,GAAQoB,CAAAA,IAAR,CACUH,kBADV,CAAQG,IAAR,CAAcC,IAAd,CACUJ,kBADV,CAAcI,IAAd,CAAoBC,QAApB,CACUL,kBADV,CAAoBK,QAApB,CAA8BC,cAA9B,CACUN,kBADV,CAA8BM,cAA9B,CAA8CC,eAA9C,CACUP,kBADV,CAA8CO,eAA9C,CAGA,iBAAuD,8BAAY,CACjE5B,QAAQ,CAARA,QADiE,CAEjEG,gBAAgB,CAAhBA,gBAFiE,CAGjED,eAAe,CAAfA,eAHiE,CAIjEmB,kBAAkB,CAAlBA,kBAJiE,CAAZ,CAAvD,CAAeQ,aAAf,cAAQC,KAAR,CAAqCC,aAArC,cAA8BC,KAA9B,CAOA,GAAMV,CAAAA,YAAY,CAAGvC,eAAMkD,WAAN,CAAkB,UAAM,CAC3C,GAAMC,CAAAA,YAAY,CAAGC,IAAI,CAACC,KAAL,CAAWT,cAAc,EAAzB,CAArB,CAEA,GAAMU,CAAAA,SAAS,CAAG,gEAAkC,CAClDC,KAAK,CAAEJ,YAD2C,CAElD1C,UAAU,CAAEE,aAFsC,CAGlDL,IAAI,CAAJA,IAHkD,CAIlDC,YAAY,CAAZA,YAJkD,CAAlC,CAAlB,CAOA,GAAIkB,YAAJ,CACEA,YAAY,CAAC6B,SAAD,CAAZ,CAEF,GAAI9B,WAAJ,CACEA,WAAW,CAAC8B,SAAD,CAAX,CACH,CAfoB,CAelB,CACDhD,IADC,CAEDC,YAFC,CAGDI,aAHC,CAIDiC,cAJC,CAKDnB,YALC,CAMDD,WANC,CAfkB,CAArB,CAwBA,GAAMgC,CAAAA,8BAA8B,CAAGxD,eAAMkD,WAAN,CAAkB,UAAM,CAC7DF,aAAa,GACbtB,cAAa,MAAb,QAAAA,cAAa,GACd,CAHsC,CAGpC,CAACA,cAAD,CAAgBsB,aAAhB,CAHoC,CAAvC,CAKA,GAAMS,CAAAA,4BAA4B,CAAGzD,eAAMkD,WAAN,CAAkB,UAAM,CAC3DJ,aAAa,GACbP,YAAY,GACb,CAHoC,CAGlC,CAACA,YAAD,CAAeO,aAAf,CAHkC,CAArC,CAKA,GAAMY,CAAAA,6BAA6B,CAAG1D,eAAMkD,WAAN,CAAkBF,aAAlB,CAAiC,CACrEA,aADqE,CAAjC,CAAtC,CAIA,GAAMW,CAAAA,2BAA2B,CAAG3D,eAAMkD,WAAN,CAAkBJ,aAAlB,CAAiC,CACnEA,aADmE,CAAjC,CAApC,CAIA9C,eAAM4D,mBAAN,CACEzD,GADF,CAEE,iBAAO,CACLsC,IAAI,CAAJA,IADK,CAELC,IAAI,CAAJA,IAFK,CAGLG,eAAe,CAAfA,eAHK,CAILF,QAAQ,CAARA,QAJK,CAAP,EAFF,CAQE,CAACE,eAAD,CAAkBJ,IAAlB,CAAwBC,IAAxB,CAA8BC,QAA9B,CARF,EAWA,GAAMkB,CAAAA,aAAa,CAAG,uCAAiB,CACrCC,KAAK,CAAErD,UAD8B,CAErCsD,QAAQ,CAAEhC,IAF2B,CAGrCiC,WAAW,CAAEhC,aAHwB,CAIrCd,UAAU,CAAVA,UAJqC,CAAjB,CAAtB,CAOA,GAAM+C,CAAAA,YAAY,CAAG,oEAAqB7D,KAArB,MAA4B2B,IAAI,CAAJA,IAA5B,GAArB,CAEA,GAAMmC,CAAAA,YAAY,CAAGlE,eAAMkD,WAAN,CACnB,SAACiB,IAAD,CAAYC,CAAZ,CAA0B,CACxB,GAAMd,CAAAA,SAAS,CAAG,gEAAkC,CAClDC,KAAK,CAAEa,CAD2C,CAElD3D,UAAU,CAAEE,aAFsC,CAGlDL,IAAI,CAAJA,IAHkD,CAIlDC,YAAY,CAAZA,YAJkD,CAAlC,CAAlB,CAOA,MACE,8BAAC,sBAAD,EACE,GAAG,CAAE6D,CADP,CAEE,KAAK,CAAEA,CAFT,CAGE,aAAa,CAAEnC,OAHjB,CAIE,aAAa,CAAE4B,aAJjB,CAKE,cAAc,CAAEjC,eAAe,EAAIqC,YALrC,+EAOG,kBAAGI,CAAAA,cAAH,MAAGA,cAAH,OACC9C,CAAAA,UAAU,CAAC,CACT4C,IAAI,CAAJA,IADS,CAETZ,KAAK,CAAED,SAFE,CAGTe,cAAc,CAAdA,cAHS,CAAD,CADX,EAPH,CADF,CAiBD,CA1BkB,CA2BnB,CACE/D,IADF,CAEEI,OAFF,CAGEuB,OAHF,CAIE4B,aAJF,CAKEtD,YALF,CAMEgB,UANF,CAOE0C,YAPF,CAQErC,eARF,CA3BmB,CAArB,CAuCA,MACE,8BAAC,UAAD,CAAK,QAAL,EAAc,KAAK,CAAE,CAAExB,KAAK,CAALA,KAAF,CAASkE,MAAM,CAAExC,eAAjB,CAArB,8EACE,6BAAC,oCAAD,EACE,GAAG,CAAElB,IADP,CAEE,IAAI,CAAEmB,IAFR,CAGE,WAAW,CAAEC,aAHf,CAIE,KAAK,CAAE,CACLuC,MAAM,CAACC,SADF,CAEL,CACE1D,KAAK,CAAEA,KAAK,EAAI,MADlB,CAEEC,MAAM,CAAEA,MAAM,EAAI,MAFpB,CAFK,CAMLF,KANK,CAOLG,QAAQ,CACJuD,MAAM,CAACE,aADH,CAEJF,MAAM,CAACG,eATN,CAJT,CAeE,MAAM,CAAErE,MAfV,CAgBE,aAAa,CAAEmD,8BAhBjB,CAiBE,WAAW,CAAEC,4BAjBf,CAkBE,YAAY,CAAEC,6BAlBhB,CAmBE,UAAU,CAAEC,2BAnBd,8EAqBGnD,IAAI,CAACmE,GAAL,CAAST,YAAT,CArBH,CADF,CADF,CA2BD,CAlNc,CAAjB,C,aAqNenE,Q,0BAIf,GAAMwE,CAAAA,MAAM,CAAGK,wBAAWC,MAAX,CAAkB,CAC/BL,SAAS,CAAE,CACTM,QAAQ,CAAE,QADD,CADoB,CAI/BJ,eAAe,CAAE,CACfK,aAAa,CAAE,KADA,CAJc,CAO/BN,aAAa,CAAE,CACbM,aAAa,CAAE,QADF,CAPgB,CAAlB,CAAf","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { runOnJS, useDerivedValue } from \"react-native-reanimated\";\n\nimport { useAutoPlay } from \"./hooks/useAutoPlay\";\nimport { useCarouselController } from \"./hooks/useCarouselController\";\nimport { useCommonVariables } from \"./hooks/useCommonVariables\";\nimport { useInitProps } from \"./hooks/useInitProps\";\nimport { useLayoutConfig } from \"./hooks/useLayoutConfig\";\nimport { useOnProgressChange } from \"./hooks/useOnProgressChange\";\nimport { usePropsErrorBoundary } from \"./hooks/usePropsErrorBoundary\";\nimport { useVisibleRanges } from \"./hooks/useVisibleRanges\";\nimport { BaseLayout } from \"./layouts/BaseLayout\";\nimport { ScrollViewGesture } from \"./ScrollViewGesture\";\nimport { CTX } from \"./store\";\nimport type { ICarouselInstance, TCarouselProps } from \"./types\";\nimport { computedRealIndexWithAutoFillData } from \"./utils/computedWithAutoFillData\";\n\nconst Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(\n (_props, ref) => {\n const props = useInitProps(_props);\n\n const {\n testID,\n loop,\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 mode,\n style,\n width,\n height,\n vertical,\n autoPlay,\n windowSize,\n autoPlayReverse,\n autoPlayInterval,\n scrollAnimationDuration,\n withAnimation,\n renderItem,\n onScrollEnd,\n onSnapToItem,\n onScrollBegin,\n onProgressChange,\n customAnimation,\n defaultIndex,\n } = props;\n\n const commonVariables = useCommonVariables(props);\n const { size, handlerOffset } = commonVariables;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n\n if (!loop)\n return handlerOffset.value;\n\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary({ ...props, dataLength });\n useOnProgressChange({\n autoFillData,\n loop,\n size,\n offsetX,\n rawDataLength,\n onProgressChange,\n });\n\n const carouselController = useCarouselController({\n loop,\n size,\n dataLength,\n autoFillData,\n handlerOffset,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex }\n = carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem)\n onSnapToItem(realIndex);\n\n if (onScrollEnd)\n onScrollEnd(realIndex);\n }, [\n loop,\n autoFillData,\n rawDataLength,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo],\n );\n\n const visibleRanges = useVisibleRanges({\n total: dataLength,\n viewSize: size,\n translation: handlerOffset,\n windowSize,\n });\n\n const layoutConfig = useLayoutConfig({ ...props, size });\n\n const renderLayout = React.useCallback(\n (item: any, i: number) => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: i,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffset={offsetX}\n visibleRanges={visibleRanges}\n animationStyle={customAnimation || layoutConfig}\n >\n {({ animationValue }) =>\n renderItem({\n item,\n index: realIndex,\n animationValue,\n })\n }\n </BaseLayout>\n );\n },\n [\n loop,\n rawData,\n offsetX,\n visibleRanges,\n autoFillData,\n renderItem,\n layoutConfig,\n customAnimation,\n ],\n );\n\n return (\n <CTX.Provider value={{ props, common: commonVariables }}>\n <ScrollViewGesture\n key={mode}\n size={size}\n translation={handlerOffset}\n style={[\n styles.container,\n {\n width: width || \"100%\",\n height: height || \"100%\",\n },\n style,\n vertical\n ? styles.itemsVertical\n : styles.itemsHorizontal,\n ]}\n testID={testID}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n {data.map(renderLayout)}\n </ScrollViewGesture>\n </CTX.Provider>\n );\n },\n);\n\nexport default Carousel as <T extends any>(\n props: React.PropsWithChildren<TCarouselProps<T>>\n) => React.ReactElement;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: \"hidden\",\n },\n itemsHorizontal: {\n flexDirection: \"row\",\n },\n itemsVertical: {\n flexDirection: \"column\",\n },\n});\n"]}
1
+ {"version":3,"sources":["Carousel.tsx"],"names":["Carousel","React","forwardRef","_props","ref","props","testID","loop","autoFillData","data","dataLength","rawData","rawDataLength","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffset","offsetX","totalSize","x","value","isNaN","carouselController","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","startAutoPlay","start","pauseAutoPlay","pause","useCallback","_sharedIndex","Math","round","realIndex","index","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","useImperativeHandle","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","i","animationValue","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { runOnJS, useDerivedValue } from \"react-native-reanimated\";\n\nimport { useAutoPlay } from \"./hooks/useAutoPlay\";\nimport { useCarouselController } from \"./hooks/useCarouselController\";\nimport { useCommonVariables } from \"./hooks/useCommonVariables\";\nimport { useInitProps } from \"./hooks/useInitProps\";\nimport { useLayoutConfig } from \"./hooks/useLayoutConfig\";\nimport { useOnProgressChange } from \"./hooks/useOnProgressChange\";\nimport { usePropsErrorBoundary } from \"./hooks/usePropsErrorBoundary\";\nimport { useVisibleRanges } from \"./hooks/useVisibleRanges\";\nimport { BaseLayout } from \"./layouts/BaseLayout\";\nimport { ScrollViewGesture } from \"./ScrollViewGesture\";\nimport { CTX } from \"./store\";\nimport type { ICarouselInstance, TCarouselProps } from \"./types\";\nimport { computedRealIndexWithAutoFillData } from \"./utils/computedWithAutoFillData\";\n\nconst Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(\n (_props, ref) => {\n const props = useInitProps(_props);\n\n const {\n testID,\n loop,\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 mode,\n style,\n width,\n height,\n vertical,\n autoPlay,\n windowSize,\n autoPlayReverse,\n autoPlayInterval,\n scrollAnimationDuration,\n withAnimation,\n renderItem,\n onScrollEnd,\n onSnapToItem,\n onScrollBegin,\n onProgressChange,\n customAnimation,\n defaultIndex,\n } = props;\n\n const commonVariables = useCommonVariables(props);\n const { size, handlerOffset } = commonVariables;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n\n if (!loop)\n return handlerOffset.value;\n\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary({ ...props, dataLength });\n useOnProgressChange({\n autoFillData,\n loop,\n size,\n offsetX,\n rawDataLength,\n onProgressChange,\n });\n\n const carouselController = useCarouselController({\n loop,\n size,\n dataLength,\n autoFillData,\n handlerOffset,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex }\n = carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem)\n onSnapToItem(realIndex);\n\n if (onScrollEnd)\n onScrollEnd(realIndex);\n }, [\n loop,\n autoFillData,\n rawDataLength,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo],\n );\n\n const visibleRanges = useVisibleRanges({\n total: dataLength,\n viewSize: size,\n translation: handlerOffset,\n windowSize,\n });\n\n const layoutConfig = useLayoutConfig({ ...props, size });\n\n const renderLayout = React.useCallback(\n (item: any, i: number) => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: i,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffset={offsetX}\n visibleRanges={visibleRanges}\n animationStyle={customAnimation || layoutConfig}\n >\n {({ animationValue }) =>\n renderItem({\n item,\n index: realIndex,\n animationValue,\n })\n }\n </BaseLayout>\n );\n },\n [\n loop,\n rawData,\n offsetX,\n visibleRanges,\n autoFillData,\n renderItem,\n layoutConfig,\n customAnimation,\n ],\n );\n\n return (\n <CTX.Provider value={{ props, common: commonVariables }}>\n <ScrollViewGesture\n key={mode}\n size={size}\n translation={handlerOffset}\n style={[\n styles.container,\n {\n width: width || \"100%\",\n height: height || \"100%\",\n },\n style,\n vertical\n ? styles.itemsVertical\n : styles.itemsHorizontal,\n ]}\n testID={testID}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n {data.map(renderLayout)}\n </ScrollViewGesture>\n </CTX.Provider>\n );\n },\n);\n\nexport default Carousel as <T extends any>(\n props: React.PropsWithChildren<TCarouselProps<T>>\n) => React.ReactElement;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: \"hidden\",\n },\n itemsHorizontal: {\n flexDirection: \"row\",\n },\n itemsVertical: {\n flexDirection: \"column\",\n },\n});\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ScrollViewGesture=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _constants=require("./constants");var _store=require("./store");var _dealWithAnimation=require("./utils/dealWithAnimation");var _this=this,_jsxFileName="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var IScrollViewGesture=function IScrollViewGesture(props){var _React$useContext=_react.default.useContext(_store.CTX),_React$useContext$pro=_React$useContext.props,vertical=_React$useContext$pro.vertical,pagingEnabled=_React$useContext$pro.pagingEnabled,snapEnabled=_React$useContext$pro.snapEnabled,panGestureHandlerProps=_React$useContext$pro.panGestureHandlerProps,infinite=_React$useContext$pro.loop,scrollAnimationDuration=_React$useContext$pro.scrollAnimationDuration,withAnimation=_React$useContext$pro.withAnimation,enabled=_React$useContext$pro.enabled,dataLength=_React$useContext$pro.dataLength;var size=props.size,translation=props.translation,testID=props.testID,_props$style=props.style,style=_props$style===void 0?{}:_props$style,onScrollBegin=props.onScrollBegin,onScrollEnd=props.onScrollEnd,onTouchBegin=props.onTouchBegin,onTouchEnd=props.onTouchEnd;var maxPage=dataLength;var isHorizontal=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){return!vertical;};_f._closure={vertical:vertical};_f.asString="function _f(){const{vertical}=jsThis._closure;{return!vertical;}}";_f.__workletHash=14495821007639;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (67:39)";return _f;}(),[vertical]);var touching=(0,_reactNativeReanimated.useSharedValue)(false);var scrollEndTranslation=(0,_reactNativeReanimated.useSharedValue)(0);var scrollEndVelocity=(0,_reactNativeReanimated.useSharedValue)(0);var _withSpring=_react.default.useCallback(function(){var _f=function _f(toValue,onFinished){var defaultWithAnimation={type:"timing",config:{duration:scrollAnimationDuration+100,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,function(){var _f=function _f(isFinished){if(isFinished)onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();};_f._closure={onFinished:onFinished,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(isFinished){const{onFinished,runOnJS}=jsThis._closure;{if(isFinished)onFinished&&runOnJS(onFinished)();}}";_f.__workletHash=3881957308013;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (85:8)";return _f;}());};_f._closure={scrollAnimationDuration:scrollAnimationDuration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(toValue,onFinished){const{scrollAnimationDuration,Easing,dealWithAnimation,withAnimation,runOnJS}=jsThis._closure;{var _withAnimation;const defaultWithAnimation={type:\"timing\",config:{duration:scrollAnimationDuration+100,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,function(isFinished){\"worklet\";if(isFinished)onFinished&&runOnJS(onFinished)();});}}";_f.__workletHash=4492029393801;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (73:4)";return _f;}(),[scrollAnimationDuration,withAnimation]);var endWithSpring=_react.default.useCallback(function(){var _f=function _f(onFinished){var origin=translation.value;var velocity=scrollEndVelocity.value;if(!pagingEnabled){if(snapEnabled){var nextPage=Math.round((origin+velocity*0.4)/size)*size;translation.value=_withSpring(nextPage,onFinished);return;}translation.value=(0,_reactNativeReanimated.withDecay)({velocity:velocity,deceleration:0.999});return;}var direction=-(scrollEndTranslation.value>=0?1:-1);var computed=direction<0?Math.ceil:Math.floor;var page=computed(-translation.value/size);var finalPage=page+direction;if(!infinite)finalPage=Math.min(maxPage-1,Math.max(0,finalPage));translation.value=_withSpring(-finalPage*size,onFinished);};_f._closure={translation:translation,scrollEndVelocity:scrollEndVelocity,pagingEnabled:pagingEnabled,snapEnabled:snapEnabled,size:size,_withSpring:_withSpring,withDecay:_reactNativeReanimated.withDecay,scrollEndTranslation:scrollEndTranslation,infinite:infinite,maxPage:maxPage};_f.asString="function _f(onFinished){const{translation,scrollEndVelocity,pagingEnabled,snapEnabled,size,_withSpring,withDecay,scrollEndTranslation,infinite,maxPage}=jsThis._closure;{const origin=translation.value;const velocity=scrollEndVelocity.value;if(!pagingEnabled){if(snapEnabled){const nextPage=Math.round((origin+velocity*0.4)/size)*size;translation.value=_withSpring(nextPage,onFinished);return;}translation.value=withDecay({velocity:velocity,deceleration:0.999});return;}const direction=-(scrollEndTranslation.value>=0?1:-1);const computed=direction<0?Math.ceil:Math.floor;const page=computed(-translation.value/size);let finalPage=page+direction;if(!infinite)finalPage=Math.min(maxPage-1,Math.max(0,finalPage));translation.value=_withSpring(-finalPage*size,onFinished);}}";_f.__workletHash=7195121800163;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (96:4)";return _f;}(),[translation,scrollEndVelocity.value,pagingEnabled,size,scrollEndTranslation.value,infinite,_withSpring,snapEnabled,maxPage]);var onFinish=_react.default.useCallback(function(){var _f=function _f(isFinished){if(isFinished){touching.value=false;onScrollEnd&&(0,_reactNativeReanimated.runOnJS)(onScrollEnd)();}};_f._closure={touching:touching,onScrollEnd:onScrollEnd,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(isFinished){const{touching,onScrollEnd,runOnJS}=jsThis._closure;{if(isFinished){touching.value=false;onScrollEnd&&runOnJS(onScrollEnd)();}}}";_f.__workletHash=12308424749737;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (143:4)";return _f;}(),[onScrollEnd,touching]);var activeDecay=_react.default.useCallback(function(){var _f=function _f(){touching.value=true;translation.value=(0,_reactNativeReanimated.withDecay)({velocity:scrollEndVelocity.value},function(){var _f=function _f(isFinished){return onFinish(isFinished);};_f._closure={onFinish:onFinish};_f.asString="function _f(isFinished){const{onFinish}=jsThis._closure;{return onFinish(isFinished);}}";_f.__workletHash=12004837605207;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (158:6)";return _f;}());};_f._closure={touching:touching,translation:translation,withDecay:_reactNativeReanimated.withDecay,scrollEndVelocity:scrollEndVelocity,onFinish:onFinish};_f.asString="function _f(){const{touching,translation,withDecay,scrollEndVelocity,onFinish}=jsThis._closure;{touching.value=true;translation.value=withDecay({velocity:scrollEndVelocity.value},function(isFinished){return onFinish(isFinished);});}}";_f.__workletHash=1701548878343;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (153:40)";return _f;}(),[onFinish,scrollEndVelocity.value,touching,translation]);var resetBoundary=_react.default.useCallback(function(){var _f=function _f(){if(touching.value)return;if(translation.value>0){if(scrollEndTranslation.value<0){activeDecay();return;}if(!infinite){translation.value=_withSpring(0);return;}}if(translation.value<-((maxPage-1)*size)){if(scrollEndTranslation.value>0){activeDecay();return;}if(!infinite)translation.value=_withSpring(-((maxPage-1)*size));}};_f._closure={touching:touching,translation:translation,scrollEndTranslation:scrollEndTranslation,activeDecay:activeDecay,infinite:infinite,_withSpring:_withSpring,maxPage:maxPage,size:size};_f.asString="function _f(){const{touching,translation,scrollEndTranslation,activeDecay,infinite,_withSpring,maxPage,size}=jsThis._closure;{if(touching.value)return;if(translation.value>0){if(scrollEndTranslation.value<0){activeDecay();return;}if(!infinite){translation.value=_withSpring(0);return;}}if(translation.value<-((maxPage-1)*size)){if(scrollEndTranslation.value>0){activeDecay();return;}if(!infinite)translation.value=_withSpring(-((maxPage-1)*size));}}}";_f.__workletHash=17032900471906;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (162:42)";return _f;}(),[touching.value,translation,maxPage,size,scrollEndTranslation.value,infinite,activeDecay,_withSpring]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return translation.value;};_f._closure={translation:translation};_f.asString="function _f(){const{translation}=jsThis._closure;{return translation.value;}}";_f.__workletHash=9829368032147;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (198:4)";return _f;}(),function(){var _f=function _f(){if(!pagingEnabled)resetBoundary();};_f._closure={pagingEnabled:pagingEnabled,resetBoundary:resetBoundary};_f.asString="function _f(){const{pagingEnabled,resetBoundary}=jsThis._closure;{if(!pagingEnabled)resetBoundary();}}";_f.__workletHash=3586615076030;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (199:4)";return _f;}(),[pagingEnabled,resetBoundary]);var panGestureEventHandler=(0,_reactNativeReanimated.useAnimatedGestureHandler)({onStart:function(){var _f=function _f(_,ctx){touching.value=true;ctx.validStart=true;onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(onScrollBegin)();ctx.max=(maxPage-1)*size;ctx.panOffset=translation.value;};_f._closure={touching:touching,onScrollBegin:onScrollBegin,runOnJS:_reactNativeReanimated.runOnJS,maxPage:maxPage,size:size,translation:translation};_f.asString="function _f(_,ctx){const{touching,onScrollBegin,runOnJS,maxPage,size,translation}=jsThis._closure;{touching.value=true;ctx.validStart=true;onScrollBegin&&runOnJS(onScrollBegin)();ctx.max=(maxPage-1)*size;ctx.panOffset=translation.value;}}";_f.__workletHash=1789833551681;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (211:15)";return _f;}(),onActive:function(){var _f=function _f(e,ctx){if(ctx.validStart){ctx.validStart=false;(0,_reactNativeReanimated.cancelAnimation)(translation);}touching.value=true;var translationX=e.translationX,translationY=e.translationY;var panTranslation=isHorizontal.value?translationX:translationY;if(!infinite&&(translation.value>0||translation.value<-ctx.max)){var boundary=translation.value>0?0:-ctx.max;var fixed=boundary-ctx.panOffset;var dynamic=panTranslation-fixed;translation.value=boundary+dynamic*0.5;return;}translation.value=ctx.panOffset+panTranslation;};_f._closure={cancelAnimation:_reactNativeReanimated.cancelAnimation,translation:translation,touching:touching,isHorizontal:isHorizontal,infinite:infinite};_f.asString="function _f(e,ctx){const{cancelAnimation,translation,touching,isHorizontal,infinite}=jsThis._closure;{if(ctx.validStart){ctx.validStart=false;cancelAnimation(translation);}touching.value=true;const{translationX:translationX,translationY:translationY}=e;const panTranslation=isHorizontal.value?translationX:translationY;if(!infinite&&(translation.value>0||translation.value<-ctx.max)){const boundary=translation.value>0?0:-ctx.max;const fixed=boundary-ctx.panOffset;const dynamic=panTranslation-fixed;translation.value=boundary+dynamic*0.5;return;}translation.value=ctx.panOffset+panTranslation;}}";_f.__workletHash=11738845597539;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (218:16)";return _f;}(),onEnd:function(){var _f=function _f(e){var velocityX=e.velocityX,velocityY=e.velocityY,translationX=e.translationX,translationY=e.translationY;scrollEndVelocity.value=isHorizontal.value?velocityX:velocityY;scrollEndTranslation.value=isHorizontal.value?translationX:translationY;endWithSpring(onScrollEnd);if(!infinite)touching.value=false;};_f._closure={scrollEndVelocity:scrollEndVelocity,isHorizontal:isHorizontal,scrollEndTranslation:scrollEndTranslation,endWithSpring:endWithSpring,onScrollEnd:onScrollEnd,infinite:infinite,touching:touching};_f.asString="function _f(e){const{scrollEndVelocity,isHorizontal,scrollEndTranslation,endWithSpring,onScrollEnd,infinite,touching}=jsThis._closure;{const{velocityX:velocityX,velocityY:velocityY,translationX:translationX,translationY:translationY}=e;scrollEndVelocity.value=isHorizontal.value?velocityX:velocityY;scrollEndTranslation.value=isHorizontal.value?translationX:translationY;endWithSpring(onScrollEnd);if(!infinite)touching.value=false;}}";_f.__workletHash=10638018947905;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (242:13)";return _f;}()},[pagingEnabled,isHorizontal.value,infinite,maxPage,size,snapEnabled,onScrollBegin,onScrollEnd]);return _react.default.createElement(_reactNativeGestureHandler.PanGestureHandler,(0,_extends2.default)({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:270,columnNumber:5}}),_react.default.createElement(_reactNativeReanimated.default.View,{testID:testID,style:style,onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:275,columnNumber:7}},props.children));};var ScrollViewGesture=IScrollViewGesture;exports.ScrollViewGesture=ScrollViewGesture;
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ScrollViewGesture=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _constants=require("./constants");var _store=require("./store");var _dealWithAnimation=require("./utils/dealWithAnimation");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var IScrollViewGesture=function IScrollViewGesture(props){var _React$useContext=_react.default.useContext(_store.CTX),_React$useContext$pro=_React$useContext.props,vertical=_React$useContext$pro.vertical,pagingEnabled=_React$useContext$pro.pagingEnabled,snapEnabled=_React$useContext$pro.snapEnabled,panGestureHandlerProps=_React$useContext$pro.panGestureHandlerProps,infinite=_React$useContext$pro.loop,scrollAnimationDuration=_React$useContext$pro.scrollAnimationDuration,withAnimation=_React$useContext$pro.withAnimation,enabled=_React$useContext$pro.enabled,dataLength=_React$useContext$pro.dataLength,overscrollEnabled=_React$useContext$pro.overscrollEnabled;var size=props.size,translation=props.translation,testID=props.testID,_props$style=props.style,style=_props$style===void 0?{}:_props$style,onScrollBegin=props.onScrollBegin,onScrollEnd=props.onScrollEnd,onTouchBegin=props.onTouchBegin,onTouchEnd=props.onTouchEnd;var maxPage=dataLength;var isHorizontal=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){return!vertical;};_f._closure={vertical:vertical};_f.asString="function _f(){const{vertical}=jsThis._closure;{return!vertical;}}";_f.__workletHash=14495821007639;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (70:39)";return _f;}(),[vertical]);var touching=(0,_reactNativeReanimated.useSharedValue)(false);var scrollEndTranslation=(0,_reactNativeReanimated.useSharedValue)(0);var scrollEndVelocity=(0,_reactNativeReanimated.useSharedValue)(0);var containerRef=(0,_reactNativeReanimated.useAnimatedRef)();var getLimit=_react.default.useCallback(function(){var _f=function _f(){if(!infinite&&!overscrollEnabled){var _measure=(0,_reactNativeReanimated.measure)(containerRef),_measure$width=_measure.width,containerWidth=_measure$width===void 0?0:_measure$width;if(dataLength*size<containerWidth)return 0;return dataLength*size-containerWidth;}return dataLength*size;};_f._closure={infinite:infinite,overscrollEnabled:overscrollEnabled,measure:_reactNativeReanimated.measure,containerRef:containerRef,dataLength:dataLength,size:size};_f.asString="function _f(){const{infinite,overscrollEnabled,measure,containerRef,dataLength,size}=jsThis._closure;{if(!infinite&&!overscrollEnabled){const{width:containerWidth=0}=measure(containerRef);if(dataLength*size<containerWidth)return 0;return dataLength*size-containerWidth;}return dataLength*size;}}";_f.__workletHash=11841077662563;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (77:37)";return _f;}(),[infinite,size,dataLength,overscrollEnabled]);var withSpring=_react.default.useCallback(function(){var _f=function _f(toValue,onFinished){var defaultWithAnimation={type:"timing",config:{duration:scrollAnimationDuration+100,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,function(){var _f=function _f(isFinished){if(isFinished)onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();};_f._closure={onFinished:onFinished,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(isFinished){const{onFinished,runOnJS}=jsThis._closure;{if(isFinished)onFinished&&runOnJS(onFinished)();}}";_f.__workletHash=3881957308013;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (107:8)";return _f;}());};_f._closure={scrollAnimationDuration:scrollAnimationDuration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(toValue,onFinished){const{scrollAnimationDuration,Easing,dealWithAnimation,withAnimation,runOnJS}=jsThis._closure;{var _withAnimation;const defaultWithAnimation={type:\"timing\",config:{duration:scrollAnimationDuration+100,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,function(isFinished){\"worklet\";if(isFinished)onFinished&&runOnJS(onFinished)();});}}";_f.__workletHash=4492029393801;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (95:4)";return _f;}(),[scrollAnimationDuration,withAnimation]);var endWithSpring=_react.default.useCallback(function(){var _f=function _f(onFinished){var origin=translation.value;var velocity=scrollEndVelocity.value;var finalTranslation=(0,_reactNativeReanimated.withDecay)({velocity:velocity,deceleration:0.999});if(pagingEnabled){var offset=-(scrollEndTranslation.value>=0?1:-1);var computed=offset<0?Math.ceil:Math.floor;var page=computed(-translation.value/size);if(infinite){var finalPage=page+offset;finalTranslation=withSpring(withProcessTranslation(-finalPage*size),onFinished);}else{var _finalPage=Math.min(maxPage-1,Math.max(0,page+offset));finalTranslation=withSpring(withProcessTranslation(-_finalPage*size),onFinished);}}if(!pagingEnabled&&snapEnabled){var nextPage=Math.round((origin+velocity*0.4)/size)*size;finalTranslation=withSpring(withProcessTranslation(nextPage),onFinished);}translation.value=finalTranslation;function withProcessTranslation(translation){if(!infinite&&!overscrollEnabled){var limit=getLimit();var sign=Math.sign(translation);return sign*Math.max(0,Math.min(limit,Math.abs(translation)));}return translation;}};_f._closure={translation:translation,scrollEndVelocity:scrollEndVelocity,withDecay:_reactNativeReanimated.withDecay,pagingEnabled:pagingEnabled,scrollEndTranslation:scrollEndTranslation,size:size,infinite:infinite,withSpring:withSpring,maxPage:maxPage,snapEnabled:snapEnabled,overscrollEnabled:overscrollEnabled,getLimit:getLimit};_f.asString="function _f(onFinished){const{translation,scrollEndVelocity,withDecay,pagingEnabled,scrollEndTranslation,size,infinite,withSpring,maxPage,snapEnabled,overscrollEnabled,getLimit}=jsThis._closure;{const origin=translation.value;const velocity=scrollEndVelocity.value;let finalTranslation=withDecay({velocity:velocity,deceleration:0.999});if(pagingEnabled){const offset=-(scrollEndTranslation.value>=0?1:-1);const computed=offset<0?Math.ceil:Math.floor;const page=computed(-translation.value/size);if(infinite){const finalPage=page+offset;finalTranslation=withSpring(withProcessTranslation(-finalPage*size),onFinished);}else{const finalPage=Math.min(maxPage-1,Math.max(0,page+offset));finalTranslation=withSpring(withProcessTranslation(-finalPage*size),onFinished);}}if(!pagingEnabled&&snapEnabled){const nextPage=Math.round((origin+velocity*0.4)/size)*size;finalTranslation=withSpring(withProcessTranslation(nextPage),onFinished);}translation.value=finalTranslation;function withProcessTranslation(translation){if(!infinite&&!overscrollEnabled){const limit=getLimit();const sign=Math.sign(translation);return sign*Math.max(0,Math.min(limit,Math.abs(translation)));}return translation;}}}";_f.__workletHash=17058811688208;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (118:4)";return _f;}(),[translation,scrollEndVelocity.value,pagingEnabled,size,scrollEndTranslation.value,infinite,withSpring,snapEnabled,maxPage]);var onFinish=_react.default.useCallback(function(){var _f=function _f(isFinished){if(isFinished){touching.value=false;onScrollEnd&&(0,_reactNativeReanimated.runOnJS)(onScrollEnd)();}};_f._closure={touching:touching,onScrollEnd:onScrollEnd,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(isFinished){const{touching,onScrollEnd,runOnJS}=jsThis._closure;{if(isFinished){touching.value=false;onScrollEnd&&runOnJS(onScrollEnd)();}}}";_f.__workletHash=12308424749737;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (180:4)";return _f;}(),[onScrollEnd,touching]);var activeDecay=_react.default.useCallback(function(){var _f=function _f(){touching.value=true;translation.value=(0,_reactNativeReanimated.withDecay)({velocity:scrollEndVelocity.value},function(){var _f=function _f(isFinished){return onFinish(isFinished);};_f._closure={onFinish:onFinish};_f.asString="function _f(isFinished){const{onFinish}=jsThis._closure;{return onFinish(isFinished);}}";_f.__workletHash=12004837605207;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (195:6)";return _f;}());};_f._closure={touching:touching,translation:translation,withDecay:_reactNativeReanimated.withDecay,scrollEndVelocity:scrollEndVelocity,onFinish:onFinish};_f.asString="function _f(){const{touching,translation,withDecay,scrollEndVelocity,onFinish}=jsThis._closure;{touching.value=true;translation.value=withDecay({velocity:scrollEndVelocity.value},function(isFinished){return onFinish(isFinished);});}}";_f.__workletHash=1701548878343;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (190:40)";return _f;}(),[onFinish,scrollEndVelocity.value,touching,translation]);var resetBoundary=_react.default.useCallback(function(){var _f=function _f(){if(touching.value)return;if(translation.value>0){if(scrollEndTranslation.value<0){activeDecay();return;}if(!infinite){translation.value=withSpring(0);return;}}if(translation.value<-((maxPage-1)*size)){if(scrollEndTranslation.value>0){activeDecay();return;}if(!infinite)translation.value=withSpring(-((maxPage-1)*size));}};_f._closure={touching:touching,translation:translation,scrollEndTranslation:scrollEndTranslation,activeDecay:activeDecay,infinite:infinite,withSpring:withSpring,maxPage:maxPage,size:size};_f.asString="function _f(){const{touching,translation,scrollEndTranslation,activeDecay,infinite,withSpring,maxPage,size}=jsThis._closure;{if(touching.value)return;if(translation.value>0){if(scrollEndTranslation.value<0){activeDecay();return;}if(!infinite){translation.value=withSpring(0);return;}}if(translation.value<-((maxPage-1)*size)){if(scrollEndTranslation.value>0){activeDecay();return;}if(!infinite)translation.value=withSpring(-((maxPage-1)*size));}}}";_f.__workletHash=5584514378333;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (199:42)";return _f;}(),[touching.value,translation,maxPage,size,scrollEndTranslation.value,infinite,activeDecay,withSpring]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return translation.value;};_f._closure={translation:translation};_f.asString="function _f(){const{translation}=jsThis._closure;{return translation.value;}}";_f.__workletHash=9829368032147;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (235:4)";return _f;}(),function(){var _f=function _f(){if(!pagingEnabled)resetBoundary();};_f._closure={pagingEnabled:pagingEnabled,resetBoundary:resetBoundary};_f.asString="function _f(){const{pagingEnabled,resetBoundary}=jsThis._closure;{if(!pagingEnabled)resetBoundary();}}";_f.__workletHash=3586615076030;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (236:4)";return _f;}(),[pagingEnabled,resetBoundary]);var panGestureEventHandler=(0,_reactNativeReanimated.useAnimatedGestureHandler)({onStart:function(){var _f=function _f(_,ctx){touching.value=true;ctx.validStart=true;onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(onScrollBegin)();ctx.max=(maxPage-1)*size;if(!infinite&&!overscrollEnabled)ctx.max=getLimit();ctx.panOffset=translation.value;};_f._closure={touching:touching,onScrollBegin:onScrollBegin,runOnJS:_reactNativeReanimated.runOnJS,maxPage:maxPage,size:size,infinite:infinite,overscrollEnabled:overscrollEnabled,getLimit:getLimit,translation:translation};_f.asString="function _f(_,ctx){const{touching,onScrollBegin,runOnJS,maxPage,size,infinite,overscrollEnabled,getLimit,translation}=jsThis._closure;{touching.value=true;ctx.validStart=true;onScrollBegin&&runOnJS(onScrollBegin)();ctx.max=(maxPage-1)*size;if(!infinite&&!overscrollEnabled)ctx.max=getLimit();ctx.panOffset=translation.value;}}";_f.__workletHash=3619428160497;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (248:15)";return _f;}(),onActive:function(){var _f=function _f(e,ctx){if(ctx.validStart){ctx.validStart=false;(0,_reactNativeReanimated.cancelAnimation)(translation);}touching.value=true;var translationX=e.translationX,translationY=e.translationY;var panTranslation=isHorizontal.value?translationX:translationY;if(!infinite){if(translation.value>0||translation.value<-ctx.max){var boundary=translation.value>0?0:-ctx.max;var fixed=boundary-ctx.panOffset;var dynamic=panTranslation-fixed;translation.value=boundary+dynamic*0.5;return;}}var translationValue=ctx.panOffset+panTranslation;translation.value=translationValue;};_f._closure={cancelAnimation:_reactNativeReanimated.cancelAnimation,translation:translation,touching:touching,isHorizontal:isHorizontal,infinite:infinite};_f.asString="function _f(e,ctx){const{cancelAnimation,translation,touching,isHorizontal,infinite}=jsThis._closure;{if(ctx.validStart){ctx.validStart=false;cancelAnimation(translation);}touching.value=true;const{translationX:translationX,translationY:translationY}=e;const panTranslation=isHorizontal.value?translationX:translationY;if(!infinite){if(translation.value>0||translation.value<-ctx.max){const boundary=translation.value>0?0:-ctx.max;const fixed=boundary-ctx.panOffset;const dynamic=panTranslation-fixed;translation.value=boundary+dynamic*0.5;return;}}const translationValue=ctx.panOffset+panTranslation;translation.value=translationValue;}}";_f.__workletHash=11300048714025;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (259:16)";return _f;}(),onEnd:function(){var _f=function _f(e){var velocityX=e.velocityX,velocityY=e.velocityY,translationX=e.translationX,translationY=e.translationY;scrollEndVelocity.value=isHorizontal.value?velocityX:velocityY;scrollEndTranslation.value=isHorizontal.value?translationX:translationY;endWithSpring(onScrollEnd);if(!infinite)touching.value=false;};_f._closure={scrollEndVelocity:scrollEndVelocity,isHorizontal:isHorizontal,scrollEndTranslation:scrollEndTranslation,endWithSpring:endWithSpring,onScrollEnd:onScrollEnd,infinite:infinite,touching:touching};_f.asString="function _f(e){const{scrollEndVelocity,isHorizontal,scrollEndTranslation,endWithSpring,onScrollEnd,infinite,touching}=jsThis._closure;{const{velocityX:velocityX,velocityY:velocityY,translationX:translationX,translationY:translationY}=e;scrollEndVelocity.value=isHorizontal.value?velocityX:velocityY;scrollEndTranslation.value=isHorizontal.value?translationX:translationY;endWithSpring(onScrollEnd);if(!infinite)touching.value=false;}}";_f.__workletHash=10638018947905;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (282:13)";return _f;}()},[pagingEnabled,isHorizontal.value,infinite,maxPage,size,snapEnabled,onScrollBegin,onScrollEnd]);return _react.default.createElement(_reactNativeGestureHandler.PanGestureHandler,(0,_extends2.default)({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:310,columnNumber:5}}),_react.default.createElement(_reactNativeReanimated.default.View,{ref:containerRef,testID:testID,style:style,onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:315,columnNumber:7}},props.children));};var ScrollViewGesture=IScrollViewGesture;exports.ScrollViewGesture=ScrollViewGesture;
2
2
  //# sourceMappingURL=ScrollViewGesture.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ScrollViewGesture.tsx"],"names":["IScrollViewGesture","props","React","useContext","CTX","vertical","pagingEnabled","snapEnabled","panGestureHandlerProps","infinite","loop","scrollAnimationDuration","withAnimation","enabled","dataLength","size","translation","testID","style","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","_withSpring","useCallback","toValue","onFinished","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","isFinished","runOnJS","dealWithAnimation","endWithSpring","origin","value","velocity","nextPage","Math","round","deceleration","direction","computed","ceil","floor","page","finalPage","min","max","withDecay","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","panTranslation","boundary","fixed","dynamic","cancelAnimation","onEnd","velocityX","velocityY","children","ScrollViewGesture"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { StyleProp, ViewStyle } from \"react-native\";\nimport type { PanGestureHandlerGestureEvent } from \"react-native-gesture-handler\";\nimport {\n PanGestureHandler,\n} from \"react-native-gesture-handler\";\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedReaction,\n useDerivedValue,\n useSharedValue,\n withDecay,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"./constants\";\nimport { CTX } from \"./store\";\nimport type { WithTimingAnimation } from \"./types\";\nimport { dealWithAnimation } from \"./utils/dealWithAnimation\";\n\ninterface GestureContext extends Record<string, unknown> {\n validStart: boolean\n panOffset: number\n max: number\n}\n\ninterface Props {\n size: number\n infinite?: boolean\n testID?: string\n style?: StyleProp<ViewStyle>\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n onTouchBegin?: () => void\n onTouchEnd?: () => void\n translation: Animated.SharedValue<number>\n}\n\nconst IScrollViewGesture: React.FC<Props> = (props) => {\n const {\n props: {\n vertical,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n dataLength,\n },\n } = React.useContext(CTX);\n\n const {\n size,\n translation,\n testID,\n style = {},\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = dataLength;\n const isHorizontal = useDerivedValue(() => !vertical, [vertical]);\n const touching = useSharedValue(false);\n const scrollEndTranslation = useSharedValue(0);\n const scrollEndVelocity = useSharedValue(0);\n\n const _withSpring = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished)\n onFinished && runOnJS(onFinished)();\n },\n );\n },\n [scrollAnimationDuration, withAnimation],\n );\n\n const endWithSpring = React.useCallback(\n (onFinished?: () => void) => {\n \"worklet\";\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n if (!pagingEnabled) {\n /**\n * If enabled, releasing the touch will scroll to the nearest item.\n * valid when pagingEnabled=false\n */\n if (snapEnabled) {\n const nextPage\n = Math.round((origin + velocity * 0.4) / size) * size;\n\n translation.value = _withSpring(nextPage, onFinished);\n return;\n }\n translation.value = withDecay({\n velocity,\n deceleration: 0.999,\n });\n return;\n }\n\n const direction = -(scrollEndTranslation.value >= 0 ? 1 : -1);\n const computed = direction < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n let finalPage = page + direction;\n\n if (!infinite)\n finalPage = Math.min(maxPage - 1, Math.max(0, finalPage));\n\n translation.value = _withSpring(-finalPage * size, onFinished);\n },\n [\n translation,\n scrollEndVelocity.value,\n pagingEnabled,\n size,\n scrollEndTranslation.value,\n infinite,\n _withSpring,\n snapEnabled,\n maxPage,\n ],\n );\n\n const onFinish = React.useCallback(\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n },\n [onScrollEnd, touching],\n );\n\n const activeDecay = React.useCallback(() => {\n \"worklet\";\n touching.value = true;\n translation.value = withDecay(\n { velocity: scrollEndVelocity.value },\n isFinished => onFinish(isFinished as boolean),\n );\n }, [onFinish, scrollEndVelocity.value, touching, translation]);\n\n const resetBoundary = React.useCallback(() => {\n \"worklet\";\n if (touching.value)\n return;\n\n if (translation.value > 0) {\n if (scrollEndTranslation.value < 0) {\n activeDecay();\n return;\n }\n if (!infinite) {\n translation.value = _withSpring(0);\n return;\n }\n }\n\n if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite)\n translation.value = _withSpring(-((maxPage - 1) * size));\n }\n }, [\n touching.value,\n translation,\n maxPage,\n size,\n scrollEndTranslation.value,\n infinite,\n activeDecay,\n _withSpring,\n ]);\n\n useAnimatedReaction(\n () => translation.value,\n () => {\n if (!pagingEnabled)\n resetBoundary();\n },\n [pagingEnabled, resetBoundary],\n );\n\n const panGestureEventHandler = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n GestureContext\n >(\n {\n onStart: (_, ctx) => {\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n ctx.max = (maxPage - 1) * size;\n ctx.panOffset = translation.value;\n },\n onActive: (e, ctx) => {\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n const { translationX, translationY } = e;\n const panTranslation = isHorizontal.value\n ? translationX\n : translationY;\n\n if (\n !infinite\n && (translation.value > 0 || translation.value < -ctx.max)\n ) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n\n translation.value = ctx.panOffset + panTranslation;\n },\n onEnd: (e) => {\n const { velocityX, velocityY, translationX, translationY } = e;\n scrollEndVelocity.value = isHorizontal.value\n ? velocityX\n : velocityY;\n scrollEndTranslation.value = isHorizontal.value\n ? translationX\n : translationY;\n\n endWithSpring(onScrollEnd);\n\n if (!infinite)\n touching.value = false;\n },\n },\n [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ],\n );\n\n return (\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n <Animated.View\n testID={testID}\n style={style}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n {props.children}\n </Animated.View>\n </PanGestureHandler>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n"]}
1
+ {"version":3,"sources":["ScrollViewGesture.tsx"],"names":["IScrollViewGesture","props","React","useContext","CTX","vertical","pagingEnabled","snapEnabled","panGestureHandlerProps","infinite","loop","scrollAnimationDuration","withAnimation","enabled","dataLength","overscrollEnabled","size","translation","testID","style","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","containerRef","getLimit","useCallback","width","containerWidth","measure","withSpring","toValue","onFinished","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","isFinished","runOnJS","dealWithAnimation","endWithSpring","origin","value","velocity","finalTranslation","deceleration","offset","computed","Math","ceil","floor","page","finalPage","withProcessTranslation","min","max","nextPage","round","limit","sign","abs","withDecay","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","panTranslation","boundary","fixed","dynamic","translationValue","cancelAnimation","onEnd","velocityX","velocityY","children","ScrollViewGesture"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { StyleProp, ViewStyle } from \"react-native\";\nimport type { PanGestureHandlerGestureEvent } from \"react-native-gesture-handler\";\nimport {\n PanGestureHandler,\n} from \"react-native-gesture-handler\";\nimport Animated, {\n cancelAnimation,\n measure,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedReaction,\n useAnimatedRef,\n useDerivedValue,\n useSharedValue,\n withDecay,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"./constants\";\nimport { CTX } from \"./store\";\nimport type { WithTimingAnimation } from \"./types\";\nimport { dealWithAnimation } from \"./utils/dealWithAnimation\";\n\ninterface GestureContext extends Record<string, unknown> {\n validStart: boolean\n panOffset: number\n max: number\n}\n\ninterface Props {\n size: number\n infinite?: boolean\n testID?: string\n style?: StyleProp<ViewStyle>\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n onTouchBegin?: () => void\n onTouchEnd?: () => void\n translation: Animated.SharedValue<number>\n}\n\nconst IScrollViewGesture: React.FC<Props> = (props) => {\n const {\n props: {\n vertical,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n dataLength,\n overscrollEnabled,\n },\n } = React.useContext(CTX);\n\n const {\n size,\n translation,\n testID,\n style = {},\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = dataLength;\n const isHorizontal = useDerivedValue(() => !vertical, [vertical]);\n const touching = useSharedValue(false);\n const scrollEndTranslation = useSharedValue(0);\n const scrollEndVelocity = useSharedValue(0);\n const containerRef = useAnimatedRef<Animated.View>();\n\n // Get the limit of the scroll.\n const getLimit = React.useCallback(() => {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const { width: containerWidth = 0 } = measure(containerRef);\n\n // If the item's total width is less than the container's width, then there is no need to scroll.\n if (dataLength * size < containerWidth)\n return 0;\n\n // Disable the \"overscroll\" effect\n return dataLength * size - containerWidth;\n }\n\n return dataLength * size;\n }, [infinite, size, dataLength, overscrollEnabled]);\n\n const withSpring = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished)\n onFinished && runOnJS(onFinished)();\n },\n );\n },\n [scrollAnimationDuration, withAnimation],\n );\n\n const endWithSpring = React.useCallback(\n (onFinished?: () => void) => {\n \"worklet\";\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n // Default to scroll in the direction of the slide (with deceleration)\n let finalTranslation: number = withDecay({ velocity, deceleration: 0.999 });\n\n /**\n * The page size is the same as the item size.\n * If direction is vertical, the page size is the height of the item.\n * If direction is horizontal, the page size is the width of the item.\n *\n * `page size` equals to `size` variable.\n * */\n if (pagingEnabled) {\n // distance with direction\n const offset = -(scrollEndTranslation.value >= 0 ? 1 : -1); // 1 or -1\n const computed = offset < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n\n if (infinite) {\n const finalPage = page + offset;\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n else {\n const finalPage = Math.min(maxPage - 1, Math.max(0, page + offset));\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n }\n\n if (!pagingEnabled && snapEnabled) {\n // scroll to the nearest item\n const nextPage = Math.round((origin + velocity * 0.4) / size) * size;\n finalTranslation = withSpring(withProcessTranslation(nextPage), onFinished);\n }\n\n translation.value = finalTranslation;\n\n function withProcessTranslation(translation: number) {\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n },\n [\n translation,\n scrollEndVelocity.value,\n pagingEnabled,\n size,\n scrollEndTranslation.value,\n infinite,\n withSpring,\n snapEnabled,\n maxPage,\n ],\n );\n\n const onFinish = React.useCallback(\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n },\n [onScrollEnd, touching],\n );\n\n const activeDecay = React.useCallback(() => {\n \"worklet\";\n touching.value = true;\n translation.value = withDecay(\n { velocity: scrollEndVelocity.value },\n isFinished => onFinish(isFinished as boolean),\n );\n }, [onFinish, scrollEndVelocity.value, touching, translation]);\n\n const resetBoundary = React.useCallback(() => {\n \"worklet\";\n if (touching.value)\n return;\n\n if (translation.value > 0) {\n if (scrollEndTranslation.value < 0) {\n activeDecay();\n return;\n }\n if (!infinite) {\n translation.value = withSpring(0);\n return;\n }\n }\n\n if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite)\n translation.value = withSpring(-((maxPage - 1) * size));\n }\n }, [\n touching.value,\n translation,\n maxPage,\n size,\n scrollEndTranslation.value,\n infinite,\n activeDecay,\n withSpring,\n ]);\n\n useAnimatedReaction(\n () => translation.value,\n () => {\n if (!pagingEnabled)\n resetBoundary();\n },\n [pagingEnabled, resetBoundary],\n );\n\n const panGestureEventHandler = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n GestureContext\n >(\n {\n onStart: (_, ctx) => {\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n\n ctx.max = (maxPage - 1) * size;\n if (!infinite && !overscrollEnabled)\n ctx.max = getLimit();\n\n ctx.panOffset = translation.value;\n },\n onActive: (e, ctx) => {\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n const { translationX, translationY } = e;\n const panTranslation = isHorizontal.value\n ? translationX\n : translationY;\n if (!infinite) {\n if ((translation.value > 0 || translation.value < -ctx.max)) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n }\n\n const translationValue = ctx.panOffset + panTranslation;\n translation.value = translationValue;\n },\n onEnd: (e) => {\n const { velocityX, velocityY, translationX, translationY } = e;\n scrollEndVelocity.value = isHorizontal.value\n ? velocityX\n : velocityY;\n scrollEndTranslation.value = isHorizontal.value\n ? translationX\n : translationY;\n\n endWithSpring(onScrollEnd);\n\n if (!infinite)\n touching.value = false;\n },\n },\n [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ],\n );\n\n return (\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n <Animated.View\n ref={containerRef}\n testID={testID}\n style={style}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n {props.children}\n </Animated.View>\n </PanGestureHandler>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n"]}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.omitZero=exports.computeNewIndexWhenDataChanges=void 0;var omitZero=function(){var _f=function _f(a,b){if(a===0)return 0;return b;};_f._closure={};_f.asString="function omitZero(a,b){if(a===0)return 0;return b;}";_f.__workletHash=5890945945056;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/computeNewIndexWhenDataChanges.ts (1:7)";return _f;}();exports.omitZero=omitZero;var computeNewIndexWhenDataChanges=function(){var _f=function _f(params){var direction=params.direction,_handlerOffset=params.handlerOffset,size=params.size,previousLength=params.previousLength,currentLength=params.currentLength;var handlerOffset=_handlerOffset;var positionIndex;var round;var isPositive=direction<0;if(isPositive){positionIndex=Math.abs(handlerOffset)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)));}else{positionIndex=(Math.abs(handlerOffset)-size)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)))+1;}var prevOffset=omitZero(previousLength,positionIndex%previousLength);var prevIndex=isPositive?prevOffset:previousLength-prevOffset-1;var changedLength=round*(currentLength-previousLength);var changedOffset=changedLength*size;if(prevIndex>currentLength-1&&currentLength<previousLength){if(isPositive)handlerOffset=(currentLength-1)*size*direction;else handlerOffset=(currentLength-1)*size*-1;}else{handlerOffset+=changedOffset*direction;}return handlerOffset;};_f._closure={omitZero:omitZero};_f.asString="function computeNewIndexWhenDataChanges(params){const{omitZero}=jsThis._closure;{const{direction:direction,handlerOffset:_handlerOffset,size:size,previousLength:previousLength,currentLength:currentLength}=params;let handlerOffset=_handlerOffset;let positionIndex;let round;const isPositive=direction<0;if(isPositive){positionIndex=Math.abs(handlerOffset)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)));}else{positionIndex=(Math.abs(handlerOffset)-size)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)))+1;}const prevOffset=omitZero(previousLength,positionIndex%previousLength);const prevIndex=isPositive?prevOffset:previousLength-prevOffset-1;const changedLength=round*(currentLength-previousLength);const changedOffset=changedLength*size;if(prevIndex>currentLength-1&&currentLength<previousLength){if(isPositive)handlerOffset=(currentLength-1)*size*direction;else handlerOffset=(currentLength-1)*size*-1;}else{handlerOffset+=changedOffset*direction;}return handlerOffset;}}";_f.__workletHash=10599245670129;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/computeNewIndexWhenDataChanges.ts (9:7)";return _f;}();exports.computeNewIndexWhenDataChanges=computeNewIndexWhenDataChanges;
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.omitZero=exports.computeNewIndexWhenDataChanges=void 0;var omitZero=function(){var _f=function _f(a,b){if(a===0)return 0;return b;};_f._closure={};_f.asString="function omitZero(a,b){if(a===0)return 0;return b;}";_f.__workletHash=5890945945056;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/computeNewIndexWhenDataChanges.ts (1:7)";return _f;}();exports.omitZero=omitZero;var computeNewIndexWhenDataChanges=function(){var _f=function _f(params){var direction=params.direction,_handlerOffset=params.handlerOffset,size=params.size,previousLength=params.previousLength,currentLength=params.currentLength;var handlerOffset=_handlerOffset;var positionIndex;var round;var isPositive=direction<0;if(isPositive){positionIndex=Math.abs(handlerOffset)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)));}else{positionIndex=(Math.abs(handlerOffset)-size)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)))+1;}var prevOffset=omitZero(previousLength,positionIndex%previousLength);var prevIndex=isPositive?prevOffset:previousLength-prevOffset-1;var changedLength=round*(currentLength-previousLength);var changedOffset=changedLength*size;if(prevIndex>currentLength-1&&currentLength<previousLength){if(isPositive)handlerOffset=(currentLength-1)*size*direction;else handlerOffset=(currentLength-1)*size*-1;}else{handlerOffset+=changedOffset*direction;}return handlerOffset;};_f._closure={omitZero:omitZero};_f.asString="function computeNewIndexWhenDataChanges(params){const{omitZero}=jsThis._closure;{const{direction:direction,handlerOffset:_handlerOffset,size:size,previousLength:previousLength,currentLength:currentLength}=params;let handlerOffset=_handlerOffset;let positionIndex;let round;const isPositive=direction<0;if(isPositive){positionIndex=Math.abs(handlerOffset)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)));}else{positionIndex=(Math.abs(handlerOffset)-size)/size;round=parseInt(String(omitZero(previousLength,positionIndex/previousLength)))+1;}const prevOffset=omitZero(previousLength,positionIndex%previousLength);const prevIndex=isPositive?prevOffset:previousLength-prevOffset-1;const changedLength=round*(currentLength-previousLength);const changedOffset=changedLength*size;if(prevIndex>currentLength-1&&currentLength<previousLength){if(isPositive)handlerOffset=(currentLength-1)*size*direction;else handlerOffset=(currentLength-1)*size*-1;}else{handlerOffset+=changedOffset*direction;}return handlerOffset;}}";_f.__workletHash=10599245670129;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/computeNewIndexWhenDataChanges.ts (9:7)";return _f;}();exports.computeNewIndexWhenDataChanges=computeNewIndexWhenDataChanges;
2
2
  //# sourceMappingURL=computeNewIndexWhenDataChanges.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["computeNewIndexWhenDataChanges.ts"],"names":["omitZero","a","b","computeNewIndexWhenDataChanges","params","direction","_handlerOffset","handlerOffset","size","previousLength","currentLength","positionIndex","round","isPositive","Math","abs","parseInt","String","prevOffset","prevIndex","changedLength","changedOffset"],"mappings":"2HAAgBA,CAAAA,Q,+BAASC,C,CAAWC,C,CAAW,CAE7C,GAAID,CAAC,GAAK,CAAV,CACE,MAAO,EAAP,CAEF,MAAOC,CAAAA,CAAP,CACD,C,8RAEeC,CAAAA,8B,+BAA+BC,M,CAM5C,CAED,GAAQC,CAAAA,SAAR,CAA0FD,MAA1F,CAAQC,SAAR,CAAkCC,cAAlC,CAA0FF,MAA1F,CAAmBG,aAAnB,CAAkDC,IAAlD,CAA0FJ,MAA1F,CAAkDI,IAAlD,CAAwDC,cAAxD,CAA0FL,MAA1F,CAAwDK,cAAxD,CAAwEC,aAAxE,CAA0FN,MAA1F,CAAwEM,aAAxE,CAEA,GAAIH,CAAAA,aAAa,CAAGD,cAApB,CACA,GAAIK,CAAAA,aAAJ,CACA,GAAIC,CAAAA,KAAJ,CAEA,GAAMC,CAAAA,UAAU,CAAGR,SAAS,CAAG,CAA/B,CAEA,GAAIQ,UAAJ,CAAgB,CACdF,aAAa,CAAIG,IAAI,CAACC,GAAL,CAASR,aAAT,CAAD,CAA4BC,IAA5C,CACAI,KAAK,CAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,CAAiBE,aAAa,CAAGF,cAAjC,CAAT,CAAP,CAAhB,CACD,CAHD,IAIK,CACHE,aAAa,CAAG,CAACG,IAAI,CAACC,GAAL,CAASR,aAAT,EAA0BC,IAA3B,EAAmCA,IAAnD,CACAI,KAAK,CAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,CAAiBE,aAAa,CAAGF,cAAjC,CAAT,CAAP,CAAR,CAA6E,CAArF,CACD,CAED,GAAMS,CAAAA,UAAU,CAAGlB,QAAQ,CAACS,cAAD,CAAiBE,aAAa,CAAGF,cAAjC,CAA3B,CACA,GAAMU,CAAAA,SAAS,CAAGN,UAAU,CAAGK,UAAH,CAAgBT,cAAc,CAAGS,UAAjB,CAA8B,CAA1E,CACA,GAAME,CAAAA,aAAa,CAAGR,KAAK,EAAIF,aAAa,CAAGD,cAApB,CAA3B,CACA,GAAMY,CAAAA,aAAa,CAAGD,aAAa,CAAGZ,IAAtC,CACA,GAAIW,SAAS,CAAGT,aAAa,CAAG,CAA5B,EAAiCA,aAAa,CAAGD,cAArD,CAAqE,CACnE,GAAII,UAAJ,CACEN,aAAa,CAAG,CAACG,aAAa,CAAG,CAAjB,EAAsBF,IAAtB,CAA6BH,SAA7C,CADF,IAIEE,CAAAA,aAAa,CAAG,CAACG,aAAa,CAAG,CAAjB,EAAsBF,IAAtB,CAA6B,CAAC,CAA9C,CACH,CAND,IAOK,CACHD,aAAa,EAAIc,aAAa,CAAGhB,SAAjC,CACD,CAED,MAAOE,CAAAA,aAAP,CACD,C,uBArBoBP,Q","sourcesContent":["export function omitZero(a: number, b: number) {\n \"worklet\";\n if (a === 0)\n return 0;\n\n return b;\n}\n\nexport function computeNewIndexWhenDataChanges(params: {\n direction: number\n handlerOffset: number\n size: number\n previousLength: number\n currentLength: number\n}) {\n \"worklet\";\n const { direction, handlerOffset: _handlerOffset, size, previousLength, currentLength } = params;\n\n let handlerOffset = _handlerOffset;\n let positionIndex;\n let round;\n\n const isPositive = direction < 0;\n\n if (isPositive) {\n positionIndex = (Math.abs(handlerOffset)) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength)));\n }\n else {\n positionIndex = (Math.abs(handlerOffset) - size) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength))) + 1;\n }\n\n const prevOffset = omitZero(previousLength, positionIndex % previousLength);\n const prevIndex = isPositive ? prevOffset : previousLength - prevOffset - 1;\n const changedLength = round * (currentLength - previousLength);\n const changedOffset = changedLength * size;\n if (prevIndex > currentLength - 1 && currentLength < previousLength) {\n if (isPositive)\n handlerOffset = (currentLength - 1) * size * direction;\n\n else\n handlerOffset = (currentLength - 1) * size * -1;\n }\n else {\n handlerOffset += changedOffset * direction;\n }\n\n return handlerOffset;\n}\n\n"]}
1
+ {"version":3,"sources":["computeNewIndexWhenDataChanges.ts"],"names":["omitZero","a","b","computeNewIndexWhenDataChanges","params","direction","_handlerOffset","handlerOffset","size","previousLength","currentLength","positionIndex","round","isPositive","Math","abs","parseInt","String","prevOffset","prevIndex","changedLength","changedOffset"],"mappings":"2HAAgBA,CAAAA,Q,+BAASC,C,CAAWC,C,CAAW,CAE7C,GAAID,CAAC,GAAK,CAAV,CACE,MAAO,EAAP,CAEF,MAAOC,CAAAA,CAAP,CACD,C,kTAEeC,CAAAA,8B,+BAA+BC,M,CAM5C,CAED,GAAQC,CAAAA,SAAR,CAA0FD,MAA1F,CAAQC,SAAR,CAAkCC,cAAlC,CAA0FF,MAA1F,CAAmBG,aAAnB,CAAkDC,IAAlD,CAA0FJ,MAA1F,CAAkDI,IAAlD,CAAwDC,cAAxD,CAA0FL,MAA1F,CAAwDK,cAAxD,CAAwEC,aAAxE,CAA0FN,MAA1F,CAAwEM,aAAxE,CAEA,GAAIH,CAAAA,aAAa,CAAGD,cAApB,CACA,GAAIK,CAAAA,aAAJ,CACA,GAAIC,CAAAA,KAAJ,CAEA,GAAMC,CAAAA,UAAU,CAAGR,SAAS,CAAG,CAA/B,CAEA,GAAIQ,UAAJ,CAAgB,CACdF,aAAa,CAAIG,IAAI,CAACC,GAAL,CAASR,aAAT,CAAD,CAA4BC,IAA5C,CACAI,KAAK,CAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,CAAiBE,aAAa,CAAGF,cAAjC,CAAT,CAAP,CAAhB,CACD,CAHD,IAIK,CACHE,aAAa,CAAG,CAACG,IAAI,CAACC,GAAL,CAASR,aAAT,EAA0BC,IAA3B,EAAmCA,IAAnD,CACAI,KAAK,CAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,CAAiBE,aAAa,CAAGF,cAAjC,CAAT,CAAP,CAAR,CAA6E,CAArF,CACD,CAED,GAAMS,CAAAA,UAAU,CAAGlB,QAAQ,CAACS,cAAD,CAAiBE,aAAa,CAAGF,cAAjC,CAA3B,CACA,GAAMU,CAAAA,SAAS,CAAGN,UAAU,CAAGK,UAAH,CAAgBT,cAAc,CAAGS,UAAjB,CAA8B,CAA1E,CACA,GAAME,CAAAA,aAAa,CAAGR,KAAK,EAAIF,aAAa,CAAGD,cAApB,CAA3B,CACA,GAAMY,CAAAA,aAAa,CAAGD,aAAa,CAAGZ,IAAtC,CACA,GAAIW,SAAS,CAAGT,aAAa,CAAG,CAA5B,EAAiCA,aAAa,CAAGD,cAArD,CAAqE,CACnE,GAAII,UAAJ,CACEN,aAAa,CAAG,CAACG,aAAa,CAAG,CAAjB,EAAsBF,IAAtB,CAA6BH,SAA7C,CADF,IAIEE,CAAAA,aAAa,CAAG,CAACG,aAAa,CAAG,CAAjB,EAAsBF,IAAtB,CAA6B,CAAC,CAA9C,CACH,CAND,IAOK,CACHD,aAAa,EAAIc,aAAa,CAAGhB,SAAjC,CACD,CAED,MAAOE,CAAAA,aAAP,CACD,C,uBArBoBP,Q","sourcesContent":["export function omitZero(a: number, b: number) {\n \"worklet\";\n if (a === 0)\n return 0;\n\n return b;\n}\n\nexport function computeNewIndexWhenDataChanges(params: {\n direction: number\n handlerOffset: number\n size: number\n previousLength: number\n currentLength: number\n}) {\n \"worklet\";\n const { direction, handlerOffset: _handlerOffset, size, previousLength, currentLength } = params;\n\n let handlerOffset = _handlerOffset;\n let positionIndex;\n let round;\n\n const isPositive = direction < 0;\n\n if (isPositive) {\n positionIndex = (Math.abs(handlerOffset)) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength)));\n }\n else {\n positionIndex = (Math.abs(handlerOffset) - size) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength))) + 1;\n }\n\n const prevOffset = omitZero(previousLength, positionIndex % previousLength);\n const prevIndex = isPositive ? prevOffset : previousLength - prevOffset - 1;\n const changedLength = round * (currentLength - previousLength);\n const changedOffset = changedLength * size;\n if (prevIndex > currentLength - 1 && currentLength < previousLength) {\n if (isPositive)\n handlerOffset = (currentLength - 1) * size * direction;\n\n else\n handlerOffset = (currentLength - 1) * size * -1;\n }\n else {\n handlerOffset += changedOffset * direction;\n }\n\n return handlerOffset;\n}\n\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _vitest=require("vitest");var _computeNewIndexWhenDataChanges=require("./computeNewIndexWhenDataChanges");(0,_vitest.describe)("should work as expected",function(){var size=375;var positive=-1;var negative=1;var params=function params(_params){var currentIndex=_params.currentIndex,_direction=_params.direction,previousLength=_params.previousLength,currentLength=_params.currentLength;var direction=_direction==="negative"?negative:positive;return{direction:direction,handlerOffset:size*currentIndex*direction,size:size,previousLength:previousLength,currentLength:currentLength};};(0,_vitest.it)("The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.",function _callee(){var currentIndex,handlerOffset;return _regenerator.default.async(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:currentIndex=1;handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:currentIndex,direction:"negative",previousLength:4,currentLength:3}));(0,_vitest.expect)(handlerOffset/size).toBe(2*positive);case 3:case"end":return _context.stop();}}},null,null,null,Promise);});(0,_vitest.it)("The direction is negative, Changing length of data set from 4 to 3, the index remains original.",function _callee2(){var handlerOffset;return _regenerator.default.async(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:2,direction:"negative",previousLength:4,currentLength:3}));(0,_vitest.expect)(handlerOffset/size).toBe(1*negative);case 2:case"end":return _context2.stop();}}},null,null,null,Promise);});(0,_vitest.it)("The direction is positive, Changing length of data set from 4 to 5, the index remains original.",function _callee3(){var handlerOffset;return _regenerator.default.async(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:3,direction:"positive",previousLength:4,currentLength:5}));(0,_vitest.expect)(handlerOffset/size).toBe(3*positive);case 2:case"end":return _context3.stop();}}},null,null,null,Promise);});(0,_vitest.it)("The direction is negative, Changing length of data set from 4 to 5, the index remains original.",function _callee4(){var handlerOffset;return _regenerator.default.async(function _callee4$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:3,direction:"negative",previousLength:4,currentLength:5}));(0,_vitest.expect)(handlerOffset/size).toBe(4*negative);case 2:case"end":return _context4.stop();}}},null,null,null,Promise);});(0,_vitest.it)("Changing length of data set from 0 to 3, the index remains original.",function _callee5(){var handlerOffset;return _regenerator.default.async(function _callee5$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:0,direction:"positive",previousLength:0,currentLength:3}));(0,_vitest.expect)(handlerOffset/size).toBe(0*positive);case 2:case"end":return _context5.stop();}}},null,null,null,Promise);});});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _computeNewIndexWhenDataChanges=require("./computeNewIndexWhenDataChanges");describe("should work as expected",function(){var size=375;var positive=-1;var negative=1;var params=function params(_params){var currentIndex=_params.currentIndex,_direction=_params.direction,previousLength=_params.previousLength,currentLength=_params.currentLength;var direction=_direction==="negative"?negative:positive;return{direction:direction,handlerOffset:size*currentIndex*direction,size:size,previousLength:previousLength,currentLength:currentLength};};it("The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.",function _callee(){var currentIndex,handlerOffset;return _regenerator.default.async(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:currentIndex=1;handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:currentIndex,direction:"negative",previousLength:4,currentLength:3}));expect(handlerOffset/size).toBe(2*positive);case 3:case"end":return _context.stop();}}},null,null,null,Promise);});it("The direction is negative, Changing length of data set from 4 to 3, the index remains original.",function _callee2(){var handlerOffset;return _regenerator.default.async(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:2,direction:"negative",previousLength:4,currentLength:3}));expect(handlerOffset/size).toBe(1*negative);case 2:case"end":return _context2.stop();}}},null,null,null,Promise);});it("The direction is positive, Changing length of data set from 4 to 5, the index remains original.",function _callee3(){var handlerOffset;return _regenerator.default.async(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:3,direction:"positive",previousLength:4,currentLength:5}));expect(handlerOffset/size).toBe(3*positive);case 2:case"end":return _context3.stop();}}},null,null,null,Promise);});it("The direction is negative, Changing length of data set from 4 to 5, the index remains original.",function _callee4(){var handlerOffset;return _regenerator.default.async(function _callee4$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:3,direction:"negative",previousLength:4,currentLength:5}));expect(handlerOffset/size).toBe(4*negative);case 2:case"end":return _context4.stop();}}},null,null,null,Promise);});it("Changing length of data set from 0 to 3, the index remains original.",function _callee5(){var handlerOffset;return _regenerator.default.async(function _callee5$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:handlerOffset=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({currentIndex:0,direction:"positive",previousLength:0,currentLength:3}));expect(handlerOffset/size).toBe(0*positive);case 2:case"end":return _context5.stop();}}},null,null,null,Promise);});});
2
2
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.test.ts"],"names":["size","positive","negative","params","currentIndex","_direction","direction","previousLength","currentLength","handlerOffset","toBe"],"mappings":"kKAAA,8BAEA,gFAEA,qBAAS,yBAAT,CAAoC,UAAM,CACxC,GAAMA,CAAAA,IAAI,CAAG,GAAb,CACA,GAAMC,CAAAA,QAAQ,CAAG,CAAC,CAAlB,CACA,GAAMC,CAAAA,QAAQ,CAAG,CAAjB,CAEA,GAAMC,CAAAA,MAAM,CAAG,gBAACA,OAAD,CAKT,CACJ,GAAQC,CAAAA,YAAR,CAA+ED,OAA/E,CAAQC,YAAR,CAAiCC,UAAjC,CAA+EF,OAA/E,CAAsBG,SAAtB,CAA6CC,cAA7C,CAA+EJ,OAA/E,CAA6CI,cAA7C,CAA6DC,aAA7D,CAA+EL,OAA/E,CAA6DK,aAA7D,CACA,GAAMF,CAAAA,SAAS,CAAGD,UAAU,GAAK,UAAf,CAA4BH,QAA5B,CAAuCD,QAAzD,CACA,MAAO,CACLK,SAAS,CAATA,SADK,CAELG,aAAa,CAAET,IAAI,CAAGI,YAAP,CAAsBE,SAFhC,CAGLN,IAAI,CAAJA,IAHK,CAILO,cAAc,CAAdA,cAJK,CAKLC,aAAa,CAAbA,aALK,CAAP,CAOD,CAfD,CAiBA,eAAG,qGAAH,CAA0G,oKAClGJ,YADkG,CACnF,CADmF,CAElGK,aAFkG,CAElF,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAZA,YAD0D,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAFkF,CASxG,mBAAOC,aAAa,CAAGT,IAAvB,EAA6BU,IAA7B,CAAkC,EAAIT,QAAtC,EATwG,qEAA1G,EAYA,eAAG,iGAAH,CAAsG,4JAC9FQ,aAD8F,CAC9E,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAD8E,CAQpG,mBAAOC,aAAa,CAAGT,IAAvB,EAA6BU,IAA7B,CAAkC,EAAIR,QAAtC,EARoG,sEAAtG,EAWA,eAAG,iGAAH,CAAsG,4JAC9FO,aAD8F,CAC9E,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAD8E,CAQpG,mBAAOC,aAAa,CAAGT,IAAvB,EAA6BU,IAA7B,CAAkC,EAAIT,QAAtC,EARoG,sEAAtG,EAWA,eAAG,iGAAH,CAAsG,4JAC9FQ,aAD8F,CAC9E,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAD8E,CAQpG,mBAAOC,aAAa,CAAGT,IAAvB,EAA6BU,IAA7B,CAAkC,EAAIR,QAAtC,EARoG,sEAAtG,EAWA,eAAG,sEAAH,CAA2E,4JACnEO,aADmE,CACnD,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CADmD,CAQzE,mBAAOC,aAAa,CAAGT,IAAvB,EAA6BU,IAA7B,CAAkC,EAAIT,QAAtC,EARyE,sEAA3E,EAUD,CA7ED","sourcesContent":["import { describe, expect, it } from \"vitest\";\n\nimport { computeNewIndexWhenDataChanges } from \"./computeNewIndexWhenDataChanges\";\n\ndescribe(\"should work as expected\", () => {\n const size = 375;\n const positive = -1;\n const negative = 1;\n\n const params = (params: {\n direction: \"positive\" | \"negative\"\n currentIndex: number\n previousLength: number\n currentLength: number\n }) => {\n const { currentIndex, direction: _direction, previousLength, currentLength } = params;\n const direction = _direction === \"negative\" ? negative : positive;\n return {\n direction,\n handlerOffset: size * currentIndex * direction,\n size,\n previousLength,\n currentLength,\n };\n };\n\n it(\"The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.\", async () => {\n const currentIndex = 1;\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(2 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 2,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(1 * negative);\n });\n\n it(\"The direction is positive, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"positive\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(3 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(4 * negative);\n });\n\n it(\"Changing length of data set from 0 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 0,\n direction: \"positive\",\n previousLength: 0,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(0 * positive);\n });\n});\n"]}
1
+ {"version":3,"sources":["index.test.ts"],"names":["describe","size","positive","negative","params","currentIndex","_direction","direction","previousLength","currentLength","handlerOffset","it","expect","toBe"],"mappings":"kKAAA,gFAEAA,QAAQ,CAAC,yBAAD,CAA4B,UAAM,CACxC,GAAMC,CAAAA,IAAI,CAAG,GAAb,CACA,GAAMC,CAAAA,QAAQ,CAAG,CAAC,CAAlB,CACA,GAAMC,CAAAA,QAAQ,CAAG,CAAjB,CAEA,GAAMC,CAAAA,MAAM,CAAG,gBAACA,OAAD,CAKT,CACJ,GAAQC,CAAAA,YAAR,CAA+ED,OAA/E,CAAQC,YAAR,CAAiCC,UAAjC,CAA+EF,OAA/E,CAAsBG,SAAtB,CAA6CC,cAA7C,CAA+EJ,OAA/E,CAA6CI,cAA7C,CAA6DC,aAA7D,CAA+EL,OAA/E,CAA6DK,aAA7D,CACA,GAAMF,CAAAA,SAAS,CAAGD,UAAU,GAAK,UAAf,CAA4BH,QAA5B,CAAuCD,QAAzD,CACA,MAAO,CACLK,SAAS,CAATA,SADK,CAELG,aAAa,CAAET,IAAI,CAAGI,YAAP,CAAsBE,SAFhC,CAGLN,IAAI,CAAJA,IAHK,CAILO,cAAc,CAAdA,cAJK,CAKLC,aAAa,CAAbA,aALK,CAAP,CAOD,CAfD,CAiBAE,EAAE,CAAC,qGAAD,CAAwG,oKAClGN,YADkG,CACnF,CADmF,CAElGK,aAFkG,CAElF,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAZA,YAD0D,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAFkF,CASxGG,MAAM,CAACF,aAAa,CAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,EAAIX,QAAtC,EATwG,qEAAxG,CAAF,CAYAS,EAAE,CAAC,iGAAD,CAAoG,4JAC9FD,aAD8F,CAC9E,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAD8E,CAQpGG,MAAM,CAACF,aAAa,CAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,EAAIV,QAAtC,EARoG,sEAApG,CAAF,CAWAQ,EAAE,CAAC,iGAAD,CAAoG,4JAC9FD,aAD8F,CAC9E,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAD8E,CAQpGG,MAAM,CAACF,aAAa,CAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,EAAIX,QAAtC,EARoG,sEAApG,CAAF,CAWAS,EAAE,CAAC,iGAAD,CAAoG,4JAC9FD,aAD8F,CAC9E,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CAD8E,CAQpGG,MAAM,CAACF,aAAa,CAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,EAAIV,QAAtC,EARoG,sEAApG,CAAF,CAWAQ,EAAE,CAAC,sEAAD,CAAyE,4JACnED,aADmE,CACnD,mEAA+BN,MAAM,CAAC,CAC1DC,YAAY,CAAE,CAD4C,CAE1DE,SAAS,CAAE,UAF+C,CAG1DC,cAAc,CAAE,CAH0C,CAI1DC,aAAa,CAAE,CAJ2C,CAAD,CAArC,CADmD,CAQzEG,MAAM,CAACF,aAAa,CAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,EAAIX,QAAtC,EARyE,sEAAzE,CAAF,CAUD,CA7EO,CAAR","sourcesContent":["import { computeNewIndexWhenDataChanges } from \"./computeNewIndexWhenDataChanges\";\n\ndescribe(\"should work as expected\", () => {\n const size = 375;\n const positive = -1;\n const negative = 1;\n\n const params = (params: {\n direction: \"positive\" | \"negative\"\n currentIndex: number\n previousLength: number\n currentLength: number\n }) => {\n const { currentIndex, direction: _direction, previousLength, currentLength } = params;\n const direction = _direction === \"negative\" ? negative : positive;\n return {\n direction,\n handlerOffset: size * currentIndex * direction,\n size,\n previousLength,\n currentLength,\n };\n };\n\n it(\"The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.\", async () => {\n const currentIndex = 1;\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(2 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 2,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(1 * negative);\n });\n\n it(\"The direction is positive, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"positive\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(3 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(4 * negative);\n });\n\n it(\"Changing length of data set from 0 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 0,\n direction: \"positive\",\n previousLength: 0,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(0 * positive);\n });\n});\n"]}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.useCarouselController=useCarouselController;var _react=_interopRequireWildcard(require("react"));var _reactNativeReanimated=require("react-native-reanimated");var _constants=require("../constants");var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");var _dealWithAnimation=require("../utils/dealWithAnimation");var _handlerOffsetDirection=require("../utils/handlerOffsetDirection");var _log=require("../utils/log");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function useCarouselController(options){var size=options.size,loop=options.loop,dataLength=options.dataLength,handlerOffset=options.handlerOffset,withAnimation=options.withAnimation,_options$defaultIndex=options.defaultIndex,defaultIndex=_options$defaultIndex===void 0?0:_options$defaultIndex,duration=options.duration,autoFillData=options.autoFillData;var dataInfo=_react.default.useMemo(function(){return{length:dataLength,disable:!dataLength,originalLength:dataLength};},[dataLength]);var index=(0,_reactNativeReanimated.useSharedValue)(defaultIndex);var sharedIndex=(0,_react.useRef)(defaultIndex);var sharedPreIndex=(0,_react.useRef)(defaultIndex);var currentFixedPage=_react.default.useCallback(function(){if(loop)return-Math.round(handlerOffset.value/size);var fixed=handlerOffset.value/size%dataInfo.length;return Math.round(handlerOffset.value<=0?Math.abs(fixed):Math.abs(fixed>0?dataInfo.length-fixed:0));},[handlerOffset,dataInfo,size,loop]);function setSharedIndex(newSharedIndex){sharedIndex.current=newSharedIndex;}(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){var handlerOffsetValue=handlerOffset.value;var toInt=(0,_log.round)(handlerOffsetValue/size)%dataInfo.length;var isPositive=handlerOffsetValue<=0;var i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);var newSharedIndexValue=(0,_computedWithAutoFillData.convertToSharedIndex)({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};};_f._closure={handlerOffset:handlerOffset,round:_log.round,size:size,dataInfo:dataInfo,convertToSharedIndex:_computedWithAutoFillData.convertToSharedIndex,loop:loop,autoFillData:autoFillData};_f.asString="function _f(){const{handlerOffset,round,size,dataInfo,convertToSharedIndex,loop,autoFillData}=jsThis._closure;{const handlerOffsetValue=handlerOffset.value;const toInt=round(handlerOffsetValue/size)%dataInfo.length;const isPositive=handlerOffsetValue<=0;const i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);const newSharedIndexValue=convertToSharedIndex({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};}}";_f.__workletHash=442719064151;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (84:4)";return _f;}(),function(){var _f=function _f(_ref){var i=_ref.i,newSharedIndexValue=_ref.newSharedIndexValue;index.value=i;(0,_reactNativeReanimated.runOnJS)(setSharedIndex)(newSharedIndexValue);};_f._closure={index:index,runOnJS:_reactNativeReanimated.runOnJS,setSharedIndex:setSharedIndex};_f.asString="function _f({i:i,newSharedIndexValue:newSharedIndexValue}){const{index,runOnJS,setSharedIndex}=jsThis._closure;{index.value=i;runOnJS(setSharedIndex)(newSharedIndexValue);}}";_f.__workletHash=16638491076412;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (104:4)";return _f;}(),[sharedPreIndex,sharedIndex,size,dataInfo,index,loop,autoFillData,handlerOffset]);var getCurrentIndex=_react.default.useCallback(function(){var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:index.value,dataLength:dataInfo.originalLength,loop:loop,autoFillData:autoFillData});return realIndex;},[index,autoFillData,dataInfo,loop]);var canSliding=_react.default.useCallback(function(){return!dataInfo.disable;},[dataInfo]);var onScrollEnd=_react.default.useCallback(function(){options.onScrollEnd==null?void 0:options.onScrollEnd();},[options]);var onScrollBegin=_react.default.useCallback(function(){options.onScrollBegin==null?void 0:options.onScrollBegin();},[options]);var scrollWithTiming=_react.default.useCallback(function(){var _f=function _f(toValue,onFinished){var callback=function(){var _f=function _f(isFinished){if(isFinished){(0,_reactNativeReanimated.runOnJS)(onScrollEnd)();onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();}};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,onFinished:onFinished};_f.asString="function _f(isFinished){const{runOnJS,onScrollEnd,onFinished}=jsThis._closure;{if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}}}";_f.__workletHash=7767198641261;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (146:23)";return _f;}();var defaultWithAnimation={type:"timing",config:{duration:duration,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,callback);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,duration:duration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation};_f.asString="function _f(toValue,onFinished){const{runOnJS,onScrollEnd,duration,Easing,dealWithAnimation,withAnimation}=jsThis._closure;{var _withAnimation;const callback=function(isFinished){\"worklet\";if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}};const defaultWithAnimation={type:\"timing\",config:{duration:duration,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,callback);}}";_f.__workletHash=12575476119920;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (144:4)";return _f;}(),[duration,withAnimation,onScrollEnd]);var next=_react.default.useCallback(function(){var _f=function _f(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count=opts.count,count=_opts$count===void 0?1:_opts$count,_opts$animated=opts.animated,animated=_opts$animated===void 0?true:_opts$animated,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;onScrollBegin==null?void 0:onScrollBegin();var nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffset.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffset.value=-nextPage*size;onFinished==null?void 0:onFinished();}};_f._closure={canSliding:canSliding,loop:loop,index:index,dataInfo:dataInfo,onScrollBegin:onScrollBegin,currentFixedPage:currentFixedPage,handlerOffset:handlerOffset,scrollWithTiming:scrollWithTiming,size:size};_f.asString="function _f(opts={}){const{canSliding,loop,index,dataInfo,onScrollBegin,currentFixedPage,handlerOffset,scrollWithTiming,size}=jsThis._closure;{var _onScrollBegin;const{count=1,animated=true,onFinished:onFinished}=opts;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;(_onScrollBegin=onScrollBegin)===null||_onScrollBegin===void 0?void 0:_onScrollBegin();const nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffset.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffset.value=-nextPage*size;onFinished===null||onFinished===void 0?void 0:onFinished();}}}";_f.__workletHash=10530429864168;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (168:4)";return _f;}(),[canSliding,loop,index,dataInfo,onScrollBegin,handlerOffset,size,scrollWithTiming,currentFixedPage]);var prev=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count2=opts.count,count=_opts$count2===void 0?1:_opts$count2,_opts$animated2=opts.animated,animated=_opts$animated2===void 0?true:_opts$animated2,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value<=0)return;onScrollBegin==null?void 0:onScrollBegin();var prevPage=currentFixedPage()-count;index.value=prevPage;if(animated){handlerOffset.value=scrollWithTiming(-prevPage*size,onFinished);}else{handlerOffset.value=-prevPage*size;onFinished==null?void 0:onFinished();}},[canSliding,loop,index,onScrollBegin,handlerOffset,size,scrollWithTiming,currentFixedPage]);var to=_react.default.useCallback(function(opts){var i=opts.i,_opts$animated3=opts.animated,animated=_opts$animated3===void 0?false:_opts$animated3,onFinished=opts.onFinished;if(i===index.value)return;if(!canSliding())return;onScrollBegin==null?void 0:onScrollBegin();var direction=(0,_handlerOffsetDirection.handlerOffsetDirection)(handlerOffset);var offset=i*size*direction;var totalSize=dataInfo.length*size;var isCloseToNextLoop=false;if(loop){isCloseToNextLoop=Math.abs(handlerOffset.value%totalSize)/totalSize>=0.5;}var finalOffset=(Math.floor(Math.abs(handlerOffset.value/totalSize))+(isCloseToNextLoop?1:0))*totalSize*direction+offset;if(animated){index.value=i;handlerOffset.value=scrollWithTiming(finalOffset,onFinished);}else{handlerOffset.value=finalOffset;index.value=i;onFinished==null?void 0:onFinished();}},[index,canSliding,onScrollBegin,handlerOffset,size,dataInfo.length,loop,scrollWithTiming]);var scrollTo=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=opts.index,count=opts.count,_opts$animated4=opts.animated,animated=_opts$animated4===void 0?false:_opts$animated4,onFinished=opts.onFinished;if(typeof i==="number"&&i>-1){to({i:i,animated:animated,onFinished:onFinished});return;}if(!count)return;var n=Math.round(count);if(n<0)prev({count:Math.abs(n),animated:animated,onFinished:onFinished});else next({count:n,animated:animated,onFinished:onFinished});},[prev,next,to]);return{next:next,prev:prev,scrollTo:scrollTo,getCurrentIndex:getCurrentIndex,getSharedIndex:function getSharedIndex(){return sharedIndex.current;}};}
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.useCarouselController=useCarouselController;var _react=_interopRequireWildcard(require("react"));var _reactNativeReanimated=require("react-native-reanimated");var _constants=require("../constants");var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");var _dealWithAnimation=require("../utils/dealWithAnimation");var _handlerOffsetDirection=require("../utils/handlerOffsetDirection");var _log=require("../utils/log");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function useCarouselController(options){var size=options.size,loop=options.loop,dataLength=options.dataLength,handlerOffset=options.handlerOffset,withAnimation=options.withAnimation,_options$defaultIndex=options.defaultIndex,defaultIndex=_options$defaultIndex===void 0?0:_options$defaultIndex,duration=options.duration,autoFillData=options.autoFillData;var dataInfo=_react.default.useMemo(function(){return{length:dataLength,disable:!dataLength,originalLength:dataLength};},[dataLength]);var index=(0,_reactNativeReanimated.useSharedValue)(defaultIndex);var sharedIndex=(0,_react.useRef)(defaultIndex);var sharedPreIndex=(0,_react.useRef)(defaultIndex);var currentFixedPage=_react.default.useCallback(function(){if(loop)return-Math.round(handlerOffset.value/size);var fixed=handlerOffset.value/size%dataInfo.length;return Math.round(handlerOffset.value<=0?Math.abs(fixed):Math.abs(fixed>0?dataInfo.length-fixed:0));},[handlerOffset,dataInfo,size,loop]);function setSharedIndex(newSharedIndex){sharedIndex.current=newSharedIndex;}(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){var handlerOffsetValue=handlerOffset.value;var toInt=(0,_log.round)(handlerOffsetValue/size)%dataInfo.length;var isPositive=handlerOffsetValue<=0;var i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);var newSharedIndexValue=(0,_computedWithAutoFillData.convertToSharedIndex)({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};};_f._closure={handlerOffset:handlerOffset,round:_log.round,size:size,dataInfo:dataInfo,convertToSharedIndex:_computedWithAutoFillData.convertToSharedIndex,loop:loop,autoFillData:autoFillData};_f.asString="function _f(){const{handlerOffset,round,size,dataInfo,convertToSharedIndex,loop,autoFillData}=jsThis._closure;{const handlerOffsetValue=handlerOffset.value;const toInt=round(handlerOffsetValue/size)%dataInfo.length;const isPositive=handlerOffsetValue<=0;const i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);const newSharedIndexValue=convertToSharedIndex({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};}}";_f.__workletHash=442719064151;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (84:4)";return _f;}(),function(){var _f=function _f(_ref){var i=_ref.i,newSharedIndexValue=_ref.newSharedIndexValue;index.value=i;(0,_reactNativeReanimated.runOnJS)(setSharedIndex)(newSharedIndexValue);};_f._closure={index:index,runOnJS:_reactNativeReanimated.runOnJS,setSharedIndex:setSharedIndex};_f.asString="function _f({i:i,newSharedIndexValue:newSharedIndexValue}){const{index,runOnJS,setSharedIndex}=jsThis._closure;{index.value=i;runOnJS(setSharedIndex)(newSharedIndexValue);}}";_f.__workletHash=16638491076412;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (104:4)";return _f;}(),[sharedPreIndex,sharedIndex,size,dataInfo,index,loop,autoFillData,handlerOffset]);var getCurrentIndex=_react.default.useCallback(function(){var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:index.value,dataLength:dataInfo.originalLength,loop:loop,autoFillData:autoFillData});return realIndex;},[index,autoFillData,dataInfo,loop]);var canSliding=_react.default.useCallback(function(){return!dataInfo.disable;},[dataInfo]);var onScrollEnd=_react.default.useCallback(function(){options.onScrollEnd==null?void 0:options.onScrollEnd();},[options]);var onScrollBegin=_react.default.useCallback(function(){options.onScrollBegin==null?void 0:options.onScrollBegin();},[options]);var scrollWithTiming=_react.default.useCallback(function(){var _f=function _f(toValue,onFinished){var callback=function(){var _f=function _f(isFinished){if(isFinished){(0,_reactNativeReanimated.runOnJS)(onScrollEnd)();onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();}};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,onFinished:onFinished};_f.asString="function _f(isFinished){const{runOnJS,onScrollEnd,onFinished}=jsThis._closure;{if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}}}";_f.__workletHash=7767198641261;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (146:23)";return _f;}();var defaultWithAnimation={type:"timing",config:{duration:duration,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,callback);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,duration:duration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation};_f.asString="function _f(toValue,onFinished){const{runOnJS,onScrollEnd,duration,Easing,dealWithAnimation,withAnimation}=jsThis._closure;{var _withAnimation;const callback=function(isFinished){\"worklet\";if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}};const defaultWithAnimation={type:\"timing\",config:{duration:duration,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,callback);}}";_f.__workletHash=12575476119920;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (144:4)";return _f;}(),[duration,withAnimation,onScrollEnd]);var next=_react.default.useCallback(function(){var _f=function _f(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count=opts.count,count=_opts$count===void 0?1:_opts$count,_opts$animated=opts.animated,animated=_opts$animated===void 0?true:_opts$animated,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;onScrollBegin==null?void 0:onScrollBegin();var nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffset.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffset.value=-nextPage*size;onFinished==null?void 0:onFinished();}};_f._closure={canSliding:canSliding,loop:loop,index:index,dataInfo:dataInfo,onScrollBegin:onScrollBegin,currentFixedPage:currentFixedPage,handlerOffset:handlerOffset,scrollWithTiming:scrollWithTiming,size:size};_f.asString="function _f(opts={}){const{canSliding,loop,index,dataInfo,onScrollBegin,currentFixedPage,handlerOffset,scrollWithTiming,size}=jsThis._closure;{var _onScrollBegin;const{count=1,animated=true,onFinished:onFinished}=opts;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;(_onScrollBegin=onScrollBegin)===null||_onScrollBegin===void 0?void 0:_onScrollBegin();const nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffset.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffset.value=-nextPage*size;onFinished===null||onFinished===void 0?void 0:onFinished();}}}";_f.__workletHash=10530429864168;_f.__location="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (168:4)";return _f;}(),[canSliding,loop,index,dataInfo,onScrollBegin,handlerOffset,size,scrollWithTiming,currentFixedPage]);var prev=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count2=opts.count,count=_opts$count2===void 0?1:_opts$count2,_opts$animated2=opts.animated,animated=_opts$animated2===void 0?true:_opts$animated2,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value<=0)return;onScrollBegin==null?void 0:onScrollBegin();var prevPage=currentFixedPage()-count;index.value=prevPage;if(animated){handlerOffset.value=scrollWithTiming(-prevPage*size,onFinished);}else{handlerOffset.value=-prevPage*size;onFinished==null?void 0:onFinished();}},[canSliding,loop,index,onScrollBegin,handlerOffset,size,scrollWithTiming,currentFixedPage]);var to=_react.default.useCallback(function(opts){var i=opts.i,_opts$animated3=opts.animated,animated=_opts$animated3===void 0?false:_opts$animated3,onFinished=opts.onFinished;if(i===index.value)return;if(!canSliding())return;onScrollBegin==null?void 0:onScrollBegin();var direction=(0,_handlerOffsetDirection.handlerOffsetDirection)(handlerOffset);var offset=i*size*direction;var totalSize=dataInfo.length*size;var isCloseToNextLoop=false;if(loop){isCloseToNextLoop=Math.abs(handlerOffset.value%totalSize)/totalSize>=0.5;}var finalOffset=(Math.floor(Math.abs(handlerOffset.value/totalSize))+(isCloseToNextLoop?1:0))*totalSize*direction+offset;if(animated){index.value=i;handlerOffset.value=scrollWithTiming(finalOffset,onFinished);}else{handlerOffset.value=finalOffset;index.value=i;onFinished==null?void 0:onFinished();}},[index,canSliding,onScrollBegin,handlerOffset,size,dataInfo.length,loop,scrollWithTiming]);var scrollTo=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=opts.index,count=opts.count,_opts$animated4=opts.animated,animated=_opts$animated4===void 0?false:_opts$animated4,onFinished=opts.onFinished;if(typeof i==="number"&&i>-1){to({i:i,animated:animated,onFinished:onFinished});return;}if(!count)return;var n=Math.round(count);if(n<0)prev({count:Math.abs(n),animated:animated,onFinished:onFinished});else next({count:n,animated:animated,onFinished:onFinished});},[prev,next,to]);return{next:next,prev:prev,scrollTo:scrollTo,getCurrentIndex:getCurrentIndex,getSharedIndex:function getSharedIndex(){return sharedIndex.current;}};}
2
2
  //# sourceMappingURL=useCarouselController.js.map