react-native-reanimated-carousel 2.3.4 → 2.3.7

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 (64) hide show
  1. package/lib/commonjs/Carousel.js +1 -1
  2. package/lib/commonjs/Carousel.js.map +1 -1
  3. package/lib/commonjs/ScrollViewGesture.js +1 -1
  4. package/lib/commonjs/ScrollViewGesture.js.map +1 -1
  5. package/lib/commonjs/hooks/useAutoPlay.js +1 -1
  6. package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
  7. package/lib/commonjs/hooks/useCommonVariables.js +1 -1
  8. package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
  9. package/lib/commonjs/hooks/useInitProps.js +1 -1
  10. package/lib/commonjs/hooks/useInitProps.js.map +1 -1
  11. package/lib/commonjs/hooks/useOnProgressChange.js +1 -1
  12. package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
  13. package/lib/commonjs/utils/computedWithAutoFillData.js +2 -0
  14. package/lib/commonjs/utils/computedWithAutoFillData.js.map +1 -0
  15. package/lib/module/Carousel.js +11 -12
  16. package/lib/module/Carousel.js.map +1 -1
  17. package/lib/module/ScrollViewGesture.js +1 -2
  18. package/lib/module/ScrollViewGesture.js.map +1 -1
  19. package/lib/module/hooks/useAutoPlay.js +2 -1
  20. package/lib/module/hooks/useAutoPlay.js.map +1 -1
  21. package/lib/module/hooks/useCommonVariables.js +3 -2
  22. package/lib/module/hooks/useCommonVariables.js.map +1 -1
  23. package/lib/module/hooks/useInitProps.js +9 -14
  24. package/lib/module/hooks/useInitProps.js.map +1 -1
  25. package/lib/module/hooks/useOnProgressChange.js +13 -9
  26. package/lib/module/hooks/useOnProgressChange.js.map +1 -1
  27. package/lib/module/utils/computedWithAutoFillData.js +85 -0
  28. package/lib/module/utils/computedWithAutoFillData.js.map +1 -0
  29. package/lib/typescript/exampleBare/App.d.ts +2 -0
  30. package/lib/typescript/{Carousel.d.ts → src/Carousel.d.ts} +0 -0
  31. package/lib/typescript/{LazyView.d.ts → src/LazyView.d.ts} +0 -0
  32. package/lib/typescript/{ScrollViewGesture.d.ts → src/ScrollViewGesture.d.ts} +0 -0
  33. package/lib/typescript/{constants → src/constants}/index.d.ts +0 -0
  34. package/lib/typescript/{hooks → src/hooks}/useAutoPlay.d.ts +0 -0
  35. package/lib/typescript/{hooks → src/hooks}/useCarouselController.d.ts +0 -0
  36. package/lib/typescript/{hooks → src/hooks}/useCheckMounted.d.ts +0 -0
  37. package/lib/typescript/{hooks → src/hooks}/useCommonVariables.d.ts +0 -0
  38. package/lib/typescript/{hooks → src/hooks}/useInitProps.d.ts +1 -1
  39. package/lib/typescript/{hooks → src/hooks}/useLayoutConfig.d.ts +0 -0
  40. package/lib/typescript/{hooks → src/hooks}/useOffsetX.d.ts +0 -0
  41. package/lib/typescript/{hooks → src/hooks}/useOnProgressChange.d.ts +2 -0
  42. package/lib/typescript/{hooks → src/hooks}/usePropsErrorBoundary.d.ts +0 -0
  43. package/lib/typescript/{hooks → src/hooks}/useVisibleRanges.d.ts +0 -0
  44. package/lib/typescript/{index.d.ts → src/index.d.ts} +0 -0
  45. package/lib/typescript/{layouts → src/layouts}/BaseLayout.d.ts +0 -0
  46. package/lib/typescript/{layouts → src/layouts}/ParallaxLayout.d.ts +0 -0
  47. package/lib/typescript/{layouts → src/layouts}/index.d.ts +0 -0
  48. package/lib/typescript/{layouts → src/layouts}/normal.d.ts +0 -0
  49. package/lib/typescript/{layouts → src/layouts}/parallax.d.ts +0 -0
  50. package/lib/typescript/{layouts → src/layouts}/stack.d.ts +0 -0
  51. package/lib/typescript/{store → src/store}/index.d.ts +0 -0
  52. package/lib/typescript/{types.d.ts → src/types.d.ts} +8 -1
  53. package/lib/typescript/src/utils/computedWithAutoFillData.d.ts +18 -0
  54. package/lib/typescript/{utils → src/utils}/dealWithAnimation.d.ts +0 -0
  55. package/lib/typescript/{utils → src/utils}/log.d.ts +0 -0
  56. package/package.json +1 -1
  57. package/src/Carousel.tsx +18 -10
  58. package/src/ScrollViewGesture.tsx +1 -2
  59. package/src/hooks/useAutoPlay.ts +2 -1
  60. package/src/hooks/useCommonVariables.ts +2 -2
  61. package/src/hooks/useInitProps.ts +14 -14
  62. package/src/hooks/useOnProgressChange.ts +20 -10
  63. package/src/types.ts +8 -0
  64. package/src/utils/computedWithAutoFillData.ts +76 -0
@@ -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 _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _useCarouselController=require("./hooks/useCarouselController");var _useAutoPlay2=require("./hooks/useAutoPlay");var _usePropsErrorBoundary=require("./hooks/usePropsErrorBoundary");var _ScrollViewGesture=require("./ScrollViewGesture");var _useVisibleRanges=require("./hooks/useVisibleRanges");var _reactNative=require("react-native");var _constants=require("./constants");var _BaseLayout=require("./layouts/BaseLayout");var _useLayoutConfig=require("./hooks/useLayoutConfig");var _useInitProps=require("./hooks/useInitProps");var _store=require("./store");var _useCommonVariables=require("./hooks/useCommonVariables");var _useOnProgressChange=require("./hooks/useOnProgressChange");var _this=this,_jsxFileName="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/Carousel.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;}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 data=props.data,rawData=props.rawData,loop=props.loop,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,handlerOffsetX=commonVariables.handlerOffsetX;var dataLength=data.length;var offsetX=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var totalSize=size*dataLength;var x=handlerOffsetX.value%totalSize;if(!loop){return handlerOffsetX.value;}return isNaN(x)?0:x;};_f._closure={size:size,dataLength:dataLength,handlerOffsetX:handlerOffsetX,loop:loop};_f.asString="function _f(){const{size,dataLength,handlerOffsetX,loop}=jsThis._closure;{const totalSize=size*dataLength;const x=handlerOffsetX.value%totalSize;if(!loop){return handlerOffsetX.value;}return isNaN(x)?0:x;}}";_f.__workletHash=17456063948631;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/Carousel.tsx (52:40)";global.__reanimatedWorkletInit(_f);return _f;}(),[loop,size,dataLength]);(0,_usePropsErrorBoundary.usePropsErrorBoundary)(props);(0,_useOnProgressChange.useOnProgressChange)({size:size,offsetX:offsetX,rawData:rawData,onProgressChange:onProgressChange});var carouselController=(0,_useCarouselController.useCarouselController)({loop:loop,size:size,handlerOffsetX:handlerOffsetX,length:data.length,disable:!data.length,withAnimation:withAnimation,originalLength:data.length,defaultIndex:defaultIndex,onScrollEnd:function onScrollEnd(){return(0,_reactNativeReanimated.runOnJS)(_onScrollEnd)();},onScrollBegin:function onScrollBegin(){return!!_onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(_onScrollBegin)();},onChange:function onChange(i){return!!onSnapToItem&&(0,_reactNativeReanimated.runOnJS)(onSnapToItem)(i);},duration:scrollAnimationDuration});var next=carouselController.next,prev=carouselController.prev,sharedPreIndex=carouselController.sharedPreIndex,sharedIndex=carouselController.sharedIndex,computedIndex=carouselController.computedIndex,getCurrentIndex=carouselController.getCurrentIndex;var _useAutoPlay=(0,_useAutoPlay2.useAutoPlay)({autoPlay:autoPlay,autoPlayInterval:autoPlayInterval,autoPlayReverse:autoPlayReverse,carouselController:carouselController}),start=_useAutoPlay.start,pause=_useAutoPlay.pause;var _onScrollEnd=_react.default.useCallback(function(){computedIndex();onScrollEnd==null?void 0:onScrollEnd(sharedPreIndex.current,sharedIndex.current);},[sharedPreIndex,sharedIndex,computedIndex,onScrollEnd]);var scrollViewGestureOnScrollBegin=_react.default.useCallback(function(){pause();_onScrollBegin==null?void 0:_onScrollBegin();},[_onScrollBegin,pause]);var scrollViewGestureOnScrollEnd=_react.default.useCallback(function(){start();_onScrollEnd();},[_onScrollEnd,start]);var scrollViewGestureOnTouchBegin=_react.default.useCallback(pause,[pause]);var scrollViewGestureOnTouchEnd=_react.default.useCallback(start,[start]);var goToIndex=_react.default.useCallback(function(i,animated){carouselController.to(i,animated);},[carouselController]);_react.default.useImperativeHandle(ref,function(){return{next:next,prev:prev,getCurrentIndex:getCurrentIndex,goToIndex:goToIndex,scrollTo:carouselController.scrollTo};},[getCurrentIndex,goToIndex,next,prev,carouselController.scrollTo]);var visibleRanges=(0,_useVisibleRanges.useVisibleRanges)({total:data.length,viewSize:size,translation:handlerOffsetX,windowSize:windowSize});var layoutConfig=(0,_useLayoutConfig.useLayoutConfig)(_objectSpread(_objectSpread({},props),{},{size:size}));var renderLayout=_react.default.useCallback(function(item,i){var realIndex=i;if(rawData.length===_constants.DATA_LENGTH.SINGLE_ITEM){realIndex=i%1;}if(rawData.length===_constants.DATA_LENGTH.DOUBLE_ITEM){realIndex=i%2;}return _react.default.createElement(_BaseLayout.BaseLayout,{key:i,index:i,handlerOffsetX:offsetX,visibleRanges:visibleRanges,animationStyle:customAnimation||layoutConfig,__self:_this,__source:{fileName:_jsxFileName,lineNumber:161,columnNumber:21}},function(_ref){var animationValue=_ref.animationValue;return renderItem({item:item,index:realIndex,animationValue:animationValue});});},[rawData,offsetX,visibleRanges,renderItem,layoutConfig,customAnimation]);return _react.default.createElement(_store.CTX.Provider,{value:{props:props,common:commonVariables},__self:_this,__source:{fileName:_jsxFileName,lineNumber:189,columnNumber:13}},_react.default.createElement(_reactNative.View,{style:[styles.container,{width:width||'100%',height:height||'100%'},style],__self:_this,__source:{fileName:_jsxFileName,lineNumber:190,columnNumber:17}},_react.default.createElement(_ScrollViewGesture.ScrollViewGesture,{size:size,translation:handlerOffsetX,onScrollBegin:scrollViewGestureOnScrollBegin,onScrollEnd:scrollViewGestureOnScrollEnd,onTouchBegin:scrollViewGestureOnTouchBegin,onTouchEnd:scrollViewGestureOnTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:197,columnNumber:21}},_react.default.createElement(_reactNativeReanimated.default.View,{key:mode,style:[styles.container,{width:width||'100%',height:height||'100%'},style,vertical?styles.itemsVertical:styles.itemsHorizontal],__self:_this,__source:{fileName:_jsxFileName,lineNumber:205,columnNumber:25}},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 _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _useCarouselController=require("./hooks/useCarouselController");var _useAutoPlay2=require("./hooks/useAutoPlay");var _usePropsErrorBoundary=require("./hooks/usePropsErrorBoundary");var _ScrollViewGesture=require("./ScrollViewGesture");var _useVisibleRanges=require("./hooks/useVisibleRanges");var _reactNative=require("react-native");var _BaseLayout=require("./layouts/BaseLayout");var _useLayoutConfig=require("./hooks/useLayoutConfig");var _useInitProps=require("./hooks/useInitProps");var _store=require("./store");var _useCommonVariables=require("./hooks/useCommonVariables");var _useOnProgressChange=require("./hooks/useOnProgressChange");var _computedWithAutoFillData=require("./utils/computedWithAutoFillData");var _this=this,_jsxFileName="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/Carousel.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;}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 data=props.data,rawData=props.rawData,loop=props.loop,autoFillData=props.autoFillData,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,handlerOffsetX=commonVariables.handlerOffsetX;var dataLength=data.length;var offsetX=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var totalSize=size*dataLength;var x=handlerOffsetX.value%totalSize;if(!loop){return handlerOffsetX.value;}return isNaN(x)?0:x;};_f._closure={size:size,dataLength:dataLength,handlerOffsetX:handlerOffsetX,loop:loop};_f.asString="function _f(){const{size,dataLength,handlerOffsetX,loop}=jsThis._closure;{const totalSize=size*dataLength;const x=handlerOffsetX.value%totalSize;if(!loop){return handlerOffsetX.value;}return isNaN(x)?0:x;}}";_f.__workletHash=17456063948631;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/Carousel.tsx (53:40)";global.__reanimatedWorkletInit(_f);return _f;}(),[loop,size,dataLength]);(0,_usePropsErrorBoundary.usePropsErrorBoundary)(props);(0,_useOnProgressChange.useOnProgressChange)({autoFillData:autoFillData,loop:loop,size:size,offsetX:offsetX,rawData:rawData,onProgressChange:onProgressChange});var carouselController=(0,_useCarouselController.useCarouselController)({loop:loop,size:size,handlerOffsetX:handlerOffsetX,length:data.length,disable:!data.length,withAnimation:withAnimation,originalLength:data.length,defaultIndex:defaultIndex,onScrollEnd:function onScrollEnd(){return(0,_reactNativeReanimated.runOnJS)(_onScrollEnd)();},onScrollBegin:function onScrollBegin(){return!!_onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(_onScrollBegin)();},onChange:function onChange(i){return!!onSnapToItem&&(0,_reactNativeReanimated.runOnJS)(onSnapToItem)(i);},duration:scrollAnimationDuration});var next=carouselController.next,prev=carouselController.prev,sharedPreIndex=carouselController.sharedPreIndex,sharedIndex=carouselController.sharedIndex,computedIndex=carouselController.computedIndex,getCurrentIndex=carouselController.getCurrentIndex;var _useAutoPlay=(0,_useAutoPlay2.useAutoPlay)({autoPlay:autoPlay,autoPlayInterval:autoPlayInterval,autoPlayReverse:autoPlayReverse,carouselController:carouselController}),start=_useAutoPlay.start,pause=_useAutoPlay.pause;var _onScrollEnd=_react.default.useCallback(function(){computedIndex();onScrollEnd==null?void 0:onScrollEnd(sharedPreIndex.current,sharedIndex.current);},[sharedPreIndex,sharedIndex,computedIndex,onScrollEnd]);var scrollViewGestureOnScrollBegin=_react.default.useCallback(function(){pause();_onScrollBegin==null?void 0:_onScrollBegin();},[_onScrollBegin,pause]);var scrollViewGestureOnScrollEnd=_react.default.useCallback(function(){start();_onScrollEnd();},[_onScrollEnd,start]);var scrollViewGestureOnTouchBegin=_react.default.useCallback(pause,[pause]);var scrollViewGestureOnTouchEnd=_react.default.useCallback(start,[start]);var goToIndex=_react.default.useCallback(function(i,animated){carouselController.to(i,animated);},[carouselController]);_react.default.useImperativeHandle(ref,function(){return{next:next,prev:prev,getCurrentIndex:getCurrentIndex,goToIndex:goToIndex,scrollTo:carouselController.scrollTo};},[getCurrentIndex,goToIndex,next,prev,carouselController.scrollTo]);var visibleRanges=(0,_useVisibleRanges.useVisibleRanges)({total:data.length,viewSize:size,translation:handlerOffsetX,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:rawData.length,loop:loop,autoFillData:autoFillData});return _react.default.createElement(_BaseLayout.BaseLayout,{key:i,index:i,handlerOffsetX:offsetX,visibleRanges:visibleRanges,animationStyle:customAnimation||layoutConfig,__self:_this,__source:{fileName:_jsxFileName,lineNumber:167,columnNumber:21}},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:197,columnNumber:13}},_react.default.createElement(_reactNative.View,{style:[styles.container,{width:width||'100%',height:height||'100%'},style],__self:_this,__source:{fileName:_jsxFileName,lineNumber:198,columnNumber:17}},_react.default.createElement(_ScrollViewGesture.ScrollViewGesture,{size:size,translation:handlerOffsetX,onScrollBegin:scrollViewGestureOnScrollBegin,onScrollEnd:scrollViewGestureOnScrollEnd,onTouchBegin:scrollViewGestureOnTouchBegin,onTouchEnd:scrollViewGestureOnTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:205,columnNumber:21}},_react.default.createElement(_reactNativeReanimated.default.View,{key:mode,style:[styles.container,{width:width||'100%',height:height||'100%'},style,vertical?styles.itemsVertical:styles.itemsHorizontal],__self:_this,__source:{fileName:_jsxFileName,lineNumber:213,columnNumber:25}},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","data","rawData","loop","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffsetX","dataLength","length","offsetX","totalSize","x","value","isNaN","carouselController","disable","originalLength","_onScrollEnd","onChange","i","duration","next","prev","sharedPreIndex","sharedIndex","computedIndex","getCurrentIndex","start","pause","useCallback","current","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","goToIndex","animated","to","useImperativeHandle","scrollTo","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","realIndex","DATA_LENGTH","SINGLE_ITEM","DOUBLE_ITEM","animationValue","index","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Animated, { runOnJS, useDerivedValue } from 'react-native-reanimated';\n\nimport { useCarouselController } from './hooks/useCarouselController';\nimport { useAutoPlay } from './hooks/useAutoPlay';\nimport { usePropsErrorBoundary } from './hooks/usePropsErrorBoundary';\nimport { ScrollViewGesture } from './ScrollViewGesture';\nimport { useVisibleRanges } from './hooks/useVisibleRanges';\n\nimport type { ICarouselInstance, TCarouselProps } from './types';\nimport { StyleSheet, View } from 'react-native';\nimport { DATA_LENGTH } from './constants';\nimport { BaseLayout } from './layouts/BaseLayout';\nimport { useLayoutConfig } from './hooks/useLayoutConfig';\nimport { useInitProps } from './hooks/useInitProps';\nimport { CTX } from './store';\nimport { useCommonVariables } from './hooks/useCommonVariables';\nimport { useOnProgressChange } from './hooks/useOnProgressChange';\n\nconst Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(\n (_props, ref) => {\n const props = useInitProps(_props);\n\n const {\n data,\n rawData,\n loop,\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, handlerOffsetX } = commonVariables;\n const dataLength = data.length;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffsetX.value % totalSize;\n\n if (!loop) {\n return handlerOffsetX.value;\n }\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary(props);\n useOnProgressChange({ size, offsetX, rawData, onProgressChange });\n\n const carouselController = useCarouselController({\n loop,\n size,\n handlerOffsetX,\n length: data.length,\n disable: !data.length,\n withAnimation,\n originalLength: data.length,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n onChange: (i) => !!onSnapToItem && runOnJS(onSnapToItem)(i),\n duration: scrollAnimationDuration,\n });\n\n const {\n next,\n prev,\n sharedPreIndex,\n sharedIndex,\n computedIndex,\n getCurrentIndex,\n } = carouselController;\n\n const { start, pause } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n computedIndex();\n onScrollEnd?.(sharedPreIndex.current, sharedIndex.current);\n }, [sharedPreIndex, sharedIndex, computedIndex, onScrollEnd]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pause();\n onScrollBegin?.();\n }, [onScrollBegin, pause]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n start();\n _onScrollEnd();\n }, [_onScrollEnd, start]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pause, [pause]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(start, [start]);\n\n const goToIndex = React.useCallback(\n (i: number, animated?: boolean) => {\n carouselController.to(i, animated);\n },\n [carouselController]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n goToIndex,\n scrollTo: carouselController.scrollTo,\n }),\n [\n getCurrentIndex,\n goToIndex,\n next,\n prev,\n carouselController.scrollTo,\n ]\n );\n\n const visibleRanges = useVisibleRanges({\n total: data.length,\n viewSize: size,\n translation: handlerOffsetX,\n windowSize,\n });\n\n const layoutConfig = useLayoutConfig({ ...props, size });\n\n const renderLayout = React.useCallback(\n (item: any, i: number) => {\n let realIndex = i;\n if (rawData.length === DATA_LENGTH.SINGLE_ITEM) {\n realIndex = i % 1;\n }\n\n if (rawData.length === DATA_LENGTH.DOUBLE_ITEM) {\n realIndex = i % 2;\n }\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffsetX={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 rawData,\n offsetX,\n visibleRanges,\n renderItem,\n layoutConfig,\n customAnimation,\n ]\n );\n\n return (\n <CTX.Provider value={{ props, common: commonVariables }}>\n <View\n style={[\n styles.container,\n { width: width || '100%', height: height || '100%' },\n style,\n ]}\n >\n <ScrollViewGesture\n size={size}\n translation={handlerOffsetX}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n <Animated.View\n key={mode}\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 >\n {data.map(renderLayout)}\n </Animated.View>\n </ScrollViewGesture>\n </View>\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","data","rawData","loop","autoFillData","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffsetX","dataLength","length","offsetX","totalSize","x","value","isNaN","carouselController","disable","originalLength","_onScrollEnd","onChange","i","duration","next","prev","sharedPreIndex","sharedIndex","computedIndex","getCurrentIndex","start","pause","useCallback","current","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","goToIndex","animated","to","useImperativeHandle","scrollTo","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","realIndex","index","animationValue","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Animated, { runOnJS, useDerivedValue } from 'react-native-reanimated';\n\nimport { useCarouselController } from './hooks/useCarouselController';\nimport { useAutoPlay } from './hooks/useAutoPlay';\nimport { usePropsErrorBoundary } from './hooks/usePropsErrorBoundary';\nimport { ScrollViewGesture } from './ScrollViewGesture';\nimport { useVisibleRanges } from './hooks/useVisibleRanges';\n\nimport type { ICarouselInstance, TCarouselProps } from './types';\nimport { StyleSheet, View } from 'react-native';\nimport { BaseLayout } from './layouts/BaseLayout';\nimport { useLayoutConfig } from './hooks/useLayoutConfig';\nimport { useInitProps } from './hooks/useInitProps';\nimport { CTX } from './store';\nimport { useCommonVariables } from './hooks/useCommonVariables';\nimport { useOnProgressChange } from './hooks/useOnProgressChange';\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 data,\n rawData,\n loop,\n autoFillData,\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, handlerOffsetX } = commonVariables;\n const dataLength = data.length;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffsetX.value % totalSize;\n\n if (!loop) {\n return handlerOffsetX.value;\n }\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary(props);\n useOnProgressChange({\n autoFillData,\n loop,\n size,\n offsetX,\n rawData,\n onProgressChange,\n });\n\n const carouselController = useCarouselController({\n loop,\n size,\n handlerOffsetX,\n length: data.length,\n disable: !data.length,\n withAnimation,\n originalLength: data.length,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n onChange: (i) => !!onSnapToItem && runOnJS(onSnapToItem)(i),\n duration: scrollAnimationDuration,\n });\n\n const {\n next,\n prev,\n sharedPreIndex,\n sharedIndex,\n computedIndex,\n getCurrentIndex,\n } = carouselController;\n\n const { start, pause } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n computedIndex();\n onScrollEnd?.(sharedPreIndex.current, sharedIndex.current);\n }, [sharedPreIndex, sharedIndex, computedIndex, onScrollEnd]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pause();\n onScrollBegin?.();\n }, [onScrollBegin, pause]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n start();\n _onScrollEnd();\n }, [_onScrollEnd, start]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pause, [pause]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(start, [start]);\n\n const goToIndex = React.useCallback(\n (i: number, animated?: boolean) => {\n carouselController.to(i, animated);\n },\n [carouselController]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n goToIndex,\n scrollTo: carouselController.scrollTo,\n }),\n [\n getCurrentIndex,\n goToIndex,\n next,\n prev,\n carouselController.scrollTo,\n ]\n );\n\n const visibleRanges = useVisibleRanges({\n total: data.length,\n viewSize: size,\n translation: handlerOffsetX,\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: rawData.length,\n loop,\n autoFillData,\n });\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffsetX={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 <View\n style={[\n styles.container,\n { width: width || '100%', height: height || '100%' },\n style,\n ]}\n >\n <ScrollViewGesture\n size={size}\n translation={handlerOffsetX}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n <Animated.View\n key={mode}\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 >\n {data.map(renderLayout)}\n </Animated.View>\n </ScrollViewGesture>\n </View>\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 _reactNative=require("react-native");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/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,style=_React$useContext$pro.style,data=_React$useContext$pro.data,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;var translation=props.translation,size=props.size,onScrollBegin=props.onScrollBegin,onScrollEnd=props.onScrollEnd,onTouchBegin=props.onTouchBegin,onTouchEnd=props.onTouchEnd;var maxPage=data.length;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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (64:41)";global.__reanimatedWorkletInit(_f);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 callback=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=9122154549195;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (72:29)";global.__reanimatedWorkletInit(_f);return _f;}();var defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,callback);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,scrollAnimationDuration:scrollAnimationDuration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation};_f.asString="function _f(toValue,onFinished){const{runOnJS,scrollAnimationDuration,Easing,dealWithAnimation,withAnimation}=jsThis._closure;{var _withAnimation;const callback=function(isFinished){'worklet';if(isFinished){onFinished&&runOnJS(onFinished)();}};const defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,callback);}}";_f.__workletHash=399949545942;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (70:8)";global.__reanimatedWorkletInit(_f);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 page=Math.round(-translation.value/size);var velocityPage=Math.round(-(translation.value+scrollEndVelocity.value)/size);var finalPage=Math.min(page+1,Math.max(page-1,velocityPage));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,infinite:infinite,maxPage:maxPage};_f.asString="function _f(onFinished){const{translation,scrollEndVelocity,pagingEnabled,snapEnabled,size,_withSpring,withDecay,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 page=Math.round(-translation.value/size);const velocityPage=Math.round(-(translation.value+scrollEndVelocity.value)/size);let finalPage=Math.min(page+1,Math.max(page-1,velocityPage));if(!infinite){finalPage=Math.min(maxPage-1,Math.max(0,finalPage));}translation.value=_withSpring(-finalPage*size,onFinished);}}";_f.__workletHash=6617882707805;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (96:8)";global.__reanimatedWorkletInit(_f);return _f;}(),[infinite,_withSpring,translation,scrollEndVelocity,size,maxPage,pagingEnabled,snapEnabled]);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (140:8)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (155:12)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (150:42)";global.__reanimatedWorkletInit(_f);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));return;}}};_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));return;}}}}";_f.__workletHash=3458376770899;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (159:44)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (198:8)";global.__reanimatedWorkletInit(_f);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=10686939088248;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (199:8)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (212:21)";global.__reanimatedWorkletInit(_f);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;let 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=10275621069851;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (219:22)";global.__reanimatedWorkletInit(_f);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=8095479445863;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (243:19)";global.__reanimatedWorkletInit(_f);return _f;}()},[pagingEnabled,isHorizontal.value,infinite,maxPage,size,snapEnabled,onScrollBegin,onScrollEnd]);var directionStyle=_react.default.useMemo(function(){return vertical?styles.contentHorizontal:styles.contentVertical;},[vertical]);return _react.default.createElement(_reactNativeReanimated.default.View,{style:[styles.container,directionStyle,style],onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:276,columnNumber:9}},_react.default.createElement(_reactNativeGestureHandler.PanGestureHandler,(0,_extends2.default)({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:281,columnNumber:13}}),props.children));};var ScrollViewGesture=IScrollViewGesture;exports.ScrollViewGesture=ScrollViewGesture;var styles=_reactNative.StyleSheet.create({container:{flex:1,overflow:'hidden'},contentVertical:{flexDirection:'column'},contentHorizontal:{flexDirection:'row'}});
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 _reactNative=require("react-native");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/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,data=_React$useContext$pro.data,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;var translation=props.translation,size=props.size,onScrollBegin=props.onScrollBegin,onScrollEnd=props.onScrollEnd,onTouchBegin=props.onTouchBegin,onTouchEnd=props.onTouchEnd;var maxPage=data.length;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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (63:41)";global.__reanimatedWorkletInit(_f);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 callback=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=9122154549195;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (71:29)";global.__reanimatedWorkletInit(_f);return _f;}();var defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,callback);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,scrollAnimationDuration:scrollAnimationDuration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation};_f.asString="function _f(toValue,onFinished){const{runOnJS,scrollAnimationDuration,Easing,dealWithAnimation,withAnimation}=jsThis._closure;{var _withAnimation;const callback=function(isFinished){'worklet';if(isFinished){onFinished&&runOnJS(onFinished)();}};const defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,callback);}}";_f.__workletHash=399949545942;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (69:8)";global.__reanimatedWorkletInit(_f);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 page=Math.round(-translation.value/size);var velocityPage=Math.round(-(translation.value+scrollEndVelocity.value)/size);var finalPage=Math.min(page+1,Math.max(page-1,velocityPage));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,infinite:infinite,maxPage:maxPage};_f.asString="function _f(onFinished){const{translation,scrollEndVelocity,pagingEnabled,snapEnabled,size,_withSpring,withDecay,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 page=Math.round(-translation.value/size);const velocityPage=Math.round(-(translation.value+scrollEndVelocity.value)/size);let finalPage=Math.min(page+1,Math.max(page-1,velocityPage));if(!infinite){finalPage=Math.min(maxPage-1,Math.max(0,finalPage));}translation.value=_withSpring(-finalPage*size,onFinished);}}";_f.__workletHash=6617882707805;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (95:8)";global.__reanimatedWorkletInit(_f);return _f;}(),[infinite,_withSpring,translation,scrollEndVelocity,size,maxPage,pagingEnabled,snapEnabled]);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (139:8)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (154:12)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (149:42)";global.__reanimatedWorkletInit(_f);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));return;}}};_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));return;}}}}";_f.__workletHash=3458376770899;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (158:44)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (197:8)";global.__reanimatedWorkletInit(_f);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=10686939088248;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (198:8)";global.__reanimatedWorkletInit(_f);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/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (211:21)";global.__reanimatedWorkletInit(_f);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;let 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=10275621069851;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (218:22)";global.__reanimatedWorkletInit(_f);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=8095479445863;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (242:19)";global.__reanimatedWorkletInit(_f);return _f;}()},[pagingEnabled,isHorizontal.value,infinite,maxPage,size,snapEnabled,onScrollBegin,onScrollEnd]);var directionStyle=_react.default.useMemo(function(){return vertical?styles.contentHorizontal:styles.contentVertical;},[vertical]);return _react.default.createElement(_reactNativeReanimated.default.View,{style:[styles.container,directionStyle],onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:275,columnNumber:9}},_react.default.createElement(_reactNativeGestureHandler.PanGestureHandler,(0,_extends2.default)({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:280,columnNumber:13}}),props.children));};var ScrollViewGesture=IScrollViewGesture;exports.ScrollViewGesture=ScrollViewGesture;var styles=_reactNative.StyleSheet.create({container:{flex:1,overflow:'hidden'},contentVertical:{flexDirection:'column'},contentHorizontal:{flexDirection:'row'}});
2
2
  //# sourceMappingURL=ScrollViewGesture.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ScrollViewGesture.tsx"],"names":["IScrollViewGesture","props","React","useContext","CTX","vertical","style","data","pagingEnabled","snapEnabled","panGestureHandlerProps","infinite","loop","scrollAnimationDuration","withAnimation","enabled","translation","size","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","length","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","_withSpring","useCallback","toValue","onFinished","callback","isFinished","runOnJS","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","dealWithAnimation","endWithSpring","origin","value","velocity","nextPage","Math","round","deceleration","page","velocityPage","finalPage","min","max","withDecay","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","panTranslation","boundary","fixed","dynamic","cancelAnimation","onEnd","velocityX","velocityY","directionStyle","useMemo","styles","contentHorizontal","contentVertical","container","children","ScrollViewGesture","StyleSheet","create","flex","overflow","flexDirection"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\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';\nimport { Easing } from './constants';\nimport { CTX } from './store';\nimport type { WithTimingAnimation } from './types';\nimport { dealWithAnimation } from './utils/dealWithAnimation';\n\ntype GestureContext = {\n validStart: boolean;\n panOffset: number;\n max: number;\n};\n\ninterface Props {\n size: number;\n infinite?: boolean;\n onScrollBegin?: () => void;\n onScrollEnd?: () => void;\n onTouchBegin?: () => void;\n onTouchEnd?: () => void;\n style?: StyleProp<ViewStyle>;\n translation: Animated.SharedValue<number>;\n}\n\nconst IScrollViewGesture: React.FC<Props> = (props) => {\n const {\n props: {\n vertical,\n style,\n data,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n },\n } = React.useContext(CTX);\n\n const {\n translation,\n size,\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = data.length;\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 callback = (isFinished: boolean) => {\n 'worklet';\n if (isFinished) {\n onFinished && runOnJS(onFinished)();\n }\n };\n\n const defaultWithAnimation: WithTimingAnimation = {\n type: 'timing',\n config: {\n duration: scrollAnimationDuration,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n callback\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 if (snapEnabled) {\n const nextPage =\n Math.round((origin + velocity * 0.4) / size) * size;\n translation.value = _withSpring(nextPage, onFinished);\n return;\n }\n translation.value = withDecay({\n velocity,\n deceleration: 0.999,\n });\n return;\n }\n const page = Math.round(-translation.value / size);\n const velocityPage = Math.round(\n -(translation.value + scrollEndVelocity.value) / size\n );\n let finalPage = Math.min(\n page + 1,\n Math.max(page - 1, velocityPage)\n );\n if (!infinite) {\n finalPage = Math.min(maxPage - 1, Math.max(0, finalPage));\n }\n\n translation.value = _withSpring(-finalPage * size, onFinished);\n },\n [\n infinite,\n _withSpring,\n translation,\n scrollEndVelocity,\n size,\n maxPage,\n pagingEnabled,\n snapEnabled,\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\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 return;\n }\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 },\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 let 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 [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ]\n );\n\n const directionStyle = React.useMemo(() => {\n return vertical ? styles.contentHorizontal : styles.contentVertical;\n }, [vertical]);\n\n return (\n <Animated.View\n style={[styles.container, directionStyle, style]}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n {props.children}\n </PanGestureHandler>\n </Animated.View>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden',\n },\n contentVertical: {\n flexDirection: 'column',\n },\n contentHorizontal: {\n flexDirection: 'row',\n },\n});\n"]}
1
+ {"version":3,"sources":["ScrollViewGesture.tsx"],"names":["IScrollViewGesture","props","React","useContext","CTX","vertical","data","pagingEnabled","snapEnabled","panGestureHandlerProps","infinite","loop","scrollAnimationDuration","withAnimation","enabled","translation","size","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","length","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","_withSpring","useCallback","toValue","onFinished","callback","isFinished","runOnJS","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","dealWithAnimation","endWithSpring","origin","value","velocity","nextPage","Math","round","deceleration","page","velocityPage","finalPage","min","max","withDecay","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","panTranslation","boundary","fixed","dynamic","cancelAnimation","onEnd","velocityX","velocityY","directionStyle","useMemo","styles","contentHorizontal","contentVertical","container","children","ScrollViewGesture","StyleSheet","create","flex","overflow","flexDirection"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\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';\nimport { Easing } from './constants';\nimport { CTX } from './store';\nimport type { WithTimingAnimation } from './types';\nimport { dealWithAnimation } from './utils/dealWithAnimation';\n\ntype GestureContext = {\n validStart: boolean;\n panOffset: number;\n max: number;\n};\n\ninterface Props {\n size: number;\n infinite?: boolean;\n onScrollBegin?: () => void;\n onScrollEnd?: () => void;\n onTouchBegin?: () => void;\n onTouchEnd?: () => void;\n style?: StyleProp<ViewStyle>;\n translation: Animated.SharedValue<number>;\n}\n\nconst IScrollViewGesture: React.FC<Props> = (props) => {\n const {\n props: {\n vertical,\n data,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n },\n } = React.useContext(CTX);\n\n const {\n translation,\n size,\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = data.length;\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 callback = (isFinished: boolean) => {\n 'worklet';\n if (isFinished) {\n onFinished && runOnJS(onFinished)();\n }\n };\n\n const defaultWithAnimation: WithTimingAnimation = {\n type: 'timing',\n config: {\n duration: scrollAnimationDuration,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n callback\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 if (snapEnabled) {\n const nextPage =\n Math.round((origin + velocity * 0.4) / size) * size;\n translation.value = _withSpring(nextPage, onFinished);\n return;\n }\n translation.value = withDecay({\n velocity,\n deceleration: 0.999,\n });\n return;\n }\n const page = Math.round(-translation.value / size);\n const velocityPage = Math.round(\n -(translation.value + scrollEndVelocity.value) / size\n );\n let finalPage = Math.min(\n page + 1,\n Math.max(page - 1, velocityPage)\n );\n if (!infinite) {\n finalPage = Math.min(maxPage - 1, Math.max(0, finalPage));\n }\n\n translation.value = _withSpring(-finalPage * size, onFinished);\n },\n [\n infinite,\n _withSpring,\n translation,\n scrollEndVelocity,\n size,\n maxPage,\n pagingEnabled,\n snapEnabled,\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\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 return;\n }\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 },\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 let 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 [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ]\n );\n\n const directionStyle = React.useMemo(() => {\n return vertical ? styles.contentHorizontal : styles.contentVertical;\n }, [vertical]);\n\n return (\n <Animated.View\n style={[styles.container, directionStyle]}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n {props.children}\n </PanGestureHandler>\n </Animated.View>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n overflow: 'hidden',\n },\n contentVertical: {\n flexDirection: 'column',\n },\n contentHorizontal: {\n flexDirection: 'row',\n },\n});\n"]}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.useAutoPlay=useAutoPlay;var React=_interopRequireWildcard(require("react"));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 useAutoPlay(opts){var _opts$autoPlay=opts.autoPlay,autoPlay=_opts$autoPlay===void 0?false:_opts$autoPlay,_opts$autoPlayReverse=opts.autoPlayReverse,autoPlayReverse=_opts$autoPlayReverse===void 0?false:_opts$autoPlayReverse,autoPlayInterval=opts.autoPlayInterval,carouselController=opts.carouselController;var timer=React.useRef();var stopped=React.useRef(!autoPlay);var play=React.useCallback(function(){if(stopped.current){return;}timer.current=setTimeout(function(){autoPlayReverse?carouselController.prev({onFinished:play}):carouselController.next({onFinished:play});},autoPlayInterval);},[autoPlayReverse,autoPlayInterval,carouselController]);var pause=React.useCallback(function(){if(!autoPlay){return;}timer.current&&clearInterval(timer.current);stopped.current=true;},[autoPlay]);var start=React.useCallback(function(){if(!autoPlay){return;}stopped.current=false;play();},[play,autoPlay]);React.useEffect(function(){if(autoPlay){start();}else{pause();}return pause;},[pause,start,autoPlay]);return{pause:pause,start:start};}
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.useAutoPlay=useAutoPlay;var React=_interopRequireWildcard(require("react"));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 useAutoPlay(opts){var _opts$autoPlay=opts.autoPlay,autoPlay=_opts$autoPlay===void 0?false:_opts$autoPlay,_opts$autoPlayReverse=opts.autoPlayReverse,autoPlayReverse=_opts$autoPlayReverse===void 0?false:_opts$autoPlayReverse,autoPlayInterval=opts.autoPlayInterval,carouselController=opts.carouselController;var timer=React.useRef();var stopped=React.useRef(!autoPlay);var play=React.useCallback(function(){if(stopped.current){return;}timer.current&&clearTimeout(timer.current);timer.current=setTimeout(function(){autoPlayReverse?carouselController.prev({onFinished:play}):carouselController.next({onFinished:play});},autoPlayInterval);},[autoPlayReverse,autoPlayInterval,carouselController]);var pause=React.useCallback(function(){if(!autoPlay){return;}timer.current&&clearTimeout(timer.current);stopped.current=true;},[autoPlay]);var start=React.useCallback(function(){if(!autoPlay){return;}stopped.current=false;play();},[play,autoPlay]);React.useEffect(function(){if(autoPlay){start();}else{pause();}return pause;},[pause,start,autoPlay]);return{pause:pause,start:start};}
2
2
  //# sourceMappingURL=useAutoPlay.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useAutoPlay.ts"],"names":["useAutoPlay","opts","autoPlay","autoPlayReverse","autoPlayInterval","carouselController","timer","React","useRef","stopped","play","useCallback","current","setTimeout","prev","onFinished","next","pause","clearInterval","start","useEffect"],"mappings":"yFAAA,oD,0/BAGO,QAASA,CAAAA,WAAT,CAAqBC,IAArB,CAKJ,CACC,mBAKIA,IALJ,CACIC,QADJ,CACIA,QADJ,yBACe,KADf,sCAKID,IALJ,CAEIE,eAFJ,CAEIA,eAFJ,gCAEsB,KAFtB,uBAGIC,gBAHJ,CAKIH,IALJ,CAGIG,gBAHJ,CAIIC,kBAJJ,CAKIJ,IALJ,CAIII,kBAJJ,CAOA,GAAMC,CAAAA,KAAK,CAAGC,KAAK,CAACC,MAAN,EAAd,CACA,GAAMC,CAAAA,OAAO,CAAGF,KAAK,CAACC,MAAN,CAAsB,CAACN,QAAvB,CAAhB,CAEA,GAAMQ,CAAAA,IAAI,CAAGH,KAAK,CAACI,WAAN,CAAkB,UAAM,CACjC,GAAIF,OAAO,CAACG,OAAZ,CAAqB,CACjB,OACH,CAEDN,KAAK,CAACM,OAAN,CAAgBC,UAAU,CAAC,UAAM,CAC7BV,eAAe,CACTE,kBAAkB,CAACS,IAAnB,CAAwB,CAAEC,UAAU,CAAEL,IAAd,CAAxB,CADS,CAETL,kBAAkB,CAACW,IAAnB,CAAwB,CAAED,UAAU,CAAEL,IAAd,CAAxB,CAFN,CAGH,CAJyB,CAIvBN,gBAJuB,CAA1B,CAKH,CAVY,CAUV,CAACD,eAAD,CAAkBC,gBAAlB,CAAoCC,kBAApC,CAVU,CAAb,CAYA,GAAMY,CAAAA,KAAK,CAAGV,KAAK,CAACI,WAAN,CAAkB,UAAM,CAClC,GAAI,CAACT,QAAL,CAAe,CACX,OACH,CACDI,KAAK,CAACM,OAAN,EAAiBM,aAAa,CAACZ,KAAK,CAACM,OAAP,CAA9B,CACAH,OAAO,CAACG,OAAR,CAAkB,IAAlB,CACH,CANa,CAMX,CAACV,QAAD,CANW,CAAd,CAQA,GAAMiB,CAAAA,KAAK,CAAGZ,KAAK,CAACI,WAAN,CAAkB,UAAM,CAClC,GAAI,CAACT,QAAL,CAAe,CACX,OACH,CACDO,OAAO,CAACG,OAAR,CAAkB,KAAlB,CACAF,IAAI,GACP,CANa,CAMX,CAACA,IAAD,CAAOR,QAAP,CANW,CAAd,CAQAK,KAAK,CAACa,SAAN,CAAgB,UAAM,CAClB,GAAIlB,QAAJ,CAAc,CACViB,KAAK,GACR,CAFD,IAEO,CACHF,KAAK,GACR,CACD,MAAOA,CAAAA,KAAP,CACH,CAPD,CAOG,CAACA,KAAD,CAAQE,KAAR,CAAejB,QAAf,CAPH,EASA,MAAO,CACHe,KAAK,CAALA,KADG,CAEHE,KAAK,CAALA,KAFG,CAAP,CAIH","sourcesContent":["import * as React from 'react';\nimport type { ICarouselController } from './useCarouselController';\n\nexport function useAutoPlay(opts: {\n autoPlay?: boolean;\n autoPlayInterval?: number;\n autoPlayReverse?: boolean;\n carouselController: ICarouselController;\n}) {\n const {\n autoPlay = false,\n autoPlayReverse = false,\n autoPlayInterval,\n carouselController,\n } = opts;\n\n const timer = React.useRef<NodeJS.Timer>();\n const stopped = React.useRef<boolean>(!autoPlay);\n\n const play = React.useCallback(() => {\n if (stopped.current) {\n return;\n }\n\n timer.current = setTimeout(() => {\n autoPlayReverse\n ? carouselController.prev({ onFinished: play })\n : carouselController.next({ onFinished: play });\n }, autoPlayInterval);\n }, [autoPlayReverse, autoPlayInterval, carouselController]);\n\n const pause = React.useCallback(() => {\n if (!autoPlay) {\n return;\n }\n timer.current && clearInterval(timer.current);\n stopped.current = true;\n }, [autoPlay]);\n\n const start = React.useCallback(() => {\n if (!autoPlay) {\n return;\n }\n stopped.current = false;\n play();\n }, [play, autoPlay]);\n\n React.useEffect(() => {\n if (autoPlay) {\n start();\n } else {\n pause();\n }\n return pause;\n }, [pause, start, autoPlay]);\n\n return {\n pause,\n start,\n };\n}\n"]}
1
+ {"version":3,"sources":["useAutoPlay.ts"],"names":["useAutoPlay","opts","autoPlay","autoPlayReverse","autoPlayInterval","carouselController","timer","React","useRef","stopped","play","useCallback","current","clearTimeout","setTimeout","prev","onFinished","next","pause","start","useEffect"],"mappings":"yFAAA,oD,0/BAGO,QAASA,CAAAA,WAAT,CAAqBC,IAArB,CAKJ,CACC,mBAKIA,IALJ,CACIC,QADJ,CACIA,QADJ,yBACe,KADf,sCAKID,IALJ,CAEIE,eAFJ,CAEIA,eAFJ,gCAEsB,KAFtB,uBAGIC,gBAHJ,CAKIH,IALJ,CAGIG,gBAHJ,CAIIC,kBAJJ,CAKIJ,IALJ,CAIII,kBAJJ,CAOA,GAAMC,CAAAA,KAAK,CAAGC,KAAK,CAACC,MAAN,EAAd,CACA,GAAMC,CAAAA,OAAO,CAAGF,KAAK,CAACC,MAAN,CAAsB,CAACN,QAAvB,CAAhB,CAEA,GAAMQ,CAAAA,IAAI,CAAGH,KAAK,CAACI,WAAN,CAAkB,UAAM,CACjC,GAAIF,OAAO,CAACG,OAAZ,CAAqB,CACjB,OACH,CAEDN,KAAK,CAACM,OAAN,EAAiBC,YAAY,CAACP,KAAK,CAACM,OAAP,CAA7B,CACAN,KAAK,CAACM,OAAN,CAAgBE,UAAU,CAAC,UAAM,CAC7BX,eAAe,CACTE,kBAAkB,CAACU,IAAnB,CAAwB,CAAEC,UAAU,CAAEN,IAAd,CAAxB,CADS,CAETL,kBAAkB,CAACY,IAAnB,CAAwB,CAAED,UAAU,CAAEN,IAAd,CAAxB,CAFN,CAGH,CAJyB,CAIvBN,gBAJuB,CAA1B,CAKH,CAXY,CAWV,CAACD,eAAD,CAAkBC,gBAAlB,CAAoCC,kBAApC,CAXU,CAAb,CAaA,GAAMa,CAAAA,KAAK,CAAGX,KAAK,CAACI,WAAN,CAAkB,UAAM,CAClC,GAAI,CAACT,QAAL,CAAe,CACX,OACH,CACDI,KAAK,CAACM,OAAN,EAAiBC,YAAY,CAACP,KAAK,CAACM,OAAP,CAA7B,CACAH,OAAO,CAACG,OAAR,CAAkB,IAAlB,CACH,CANa,CAMX,CAACV,QAAD,CANW,CAAd,CAQA,GAAMiB,CAAAA,KAAK,CAAGZ,KAAK,CAACI,WAAN,CAAkB,UAAM,CAClC,GAAI,CAACT,QAAL,CAAe,CACX,OACH,CACDO,OAAO,CAACG,OAAR,CAAkB,KAAlB,CACAF,IAAI,GACP,CANa,CAMX,CAACA,IAAD,CAAOR,QAAP,CANW,CAAd,CAQAK,KAAK,CAACa,SAAN,CAAgB,UAAM,CAClB,GAAIlB,QAAJ,CAAc,CACViB,KAAK,GACR,CAFD,IAEO,CACHD,KAAK,GACR,CACD,MAAOA,CAAAA,KAAP,CACH,CAPD,CAOG,CAACA,KAAD,CAAQC,KAAR,CAAejB,QAAf,CAPH,EASA,MAAO,CACHgB,KAAK,CAALA,KADG,CAEHC,KAAK,CAALA,KAFG,CAAP,CAIH","sourcesContent":["import * as React from 'react';\nimport type { ICarouselController } from './useCarouselController';\n\nexport function useAutoPlay(opts: {\n autoPlay?: boolean;\n autoPlayInterval?: number;\n autoPlayReverse?: boolean;\n carouselController: ICarouselController;\n}) {\n const {\n autoPlay = false,\n autoPlayReverse = false,\n autoPlayInterval,\n carouselController,\n } = opts;\n\n const timer = React.useRef<NodeJS.Timer>();\n const stopped = React.useRef<boolean>(!autoPlay);\n\n const play = React.useCallback(() => {\n if (stopped.current) {\n return;\n }\n\n timer.current && clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n autoPlayReverse\n ? carouselController.prev({ onFinished: play })\n : carouselController.next({ onFinished: play });\n }, autoPlayInterval);\n }, [autoPlayReverse, autoPlayInterval, carouselController]);\n\n const pause = React.useCallback(() => {\n if (!autoPlay) {\n return;\n }\n timer.current && clearTimeout(timer.current);\n stopped.current = true;\n }, [autoPlay]);\n\n const start = React.useCallback(() => {\n if (!autoPlay) {\n return;\n }\n stopped.current = false;\n play();\n }, [play, autoPlay]);\n\n React.useEffect(() => {\n if (autoPlay) {\n start();\n } else {\n pause();\n }\n return pause;\n }, [pause, start, autoPlay]);\n\n return {\n pause,\n start,\n };\n}\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useCommonVariables=useCommonVariables;var _react=_interopRequireDefault(require("react"));var _reactNativeReanimated=require("react-native-reanimated");function useCommonVariables(props){var vertical=props.vertical,height=props.height,width=props.width,data=props.data,defaultIndex=props.defaultIndex;var size=vertical?height:width;var validLength=data.length-1;var defaultHandlerOffsetX=-Math.abs(defaultIndex*size);var handlerOffsetX=(0,_reactNativeReanimated.useSharedValue)(defaultHandlerOffsetX);_react.default.useEffect(function(){handlerOffsetX.value=defaultHandlerOffsetX;},[vertical,handlerOffsetX,defaultHandlerOffsetX]);return{size:size,validLength:validLength,handlerOffsetX:handlerOffsetX};}
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useCommonVariables=useCommonVariables;var _react=_interopRequireDefault(require("react"));var _reactNativeReanimated=require("react-native-reanimated");function useCommonVariables(props){var vertical=props.vertical,height=props.height,width=props.width,data=props.data,defaultIndex=props.defaultIndex,rawData=props.rawData;var size=vertical?height:width;var validLength=data.length-1;var defaultHandlerOffsetX=-Math.abs(defaultIndex*size);var handlerOffsetX=(0,_reactNativeReanimated.useSharedValue)(defaultHandlerOffsetX);_react.default.useEffect(function(){handlerOffsetX.value=defaultHandlerOffsetX;},[vertical,handlerOffsetX,defaultHandlerOffsetX,rawData]);return{size:size,validLength:validLength,handlerOffsetX:handlerOffsetX};}
2
2
  //# sourceMappingURL=useCommonVariables.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useCommonVariables.ts"],"names":["useCommonVariables","props","vertical","height","width","data","defaultIndex","size","validLength","length","defaultHandlerOffsetX","Math","abs","handlerOffsetX","React","useEffect","value"],"mappings":"0LAAA,oDACA,8DASO,QAASA,CAAAA,kBAAT,CACHC,KADG,CAEa,CAChB,GAAQC,CAAAA,QAAR,CAAwDD,KAAxD,CAAQC,QAAR,CAAkBC,MAAlB,CAAwDF,KAAxD,CAAkBE,MAAlB,CAA0BC,KAA1B,CAAwDH,KAAxD,CAA0BG,KAA1B,CAAiCC,IAAjC,CAAwDJ,KAAxD,CAAiCI,IAAjC,CAAuCC,YAAvC,CAAwDL,KAAxD,CAAuCK,YAAvC,CACA,GAAMC,CAAAA,IAAI,CAAGL,QAAQ,CAAGC,MAAH,CAAYC,KAAjC,CACA,GAAMI,CAAAA,WAAW,CAAGH,IAAI,CAACI,MAAL,CAAc,CAAlC,CACA,GAAMC,CAAAA,qBAAqB,CAAG,CAACC,IAAI,CAACC,GAAL,CAASN,YAAY,CAAGC,IAAxB,CAA/B,CACA,GAAMM,CAAAA,cAAc,CAAG,0CAAuBH,qBAAvB,CAAvB,CAEAI,eAAMC,SAAN,CAAgB,UAAM,CAClBF,cAAc,CAACG,KAAf,CAAuBN,qBAAvB,CACH,CAFD,CAEG,CAACR,QAAD,CAAWW,cAAX,CAA2BH,qBAA3B,CAFH,EAIA,MAAO,CACHH,IAAI,CAAJA,IADG,CAEHC,WAAW,CAAXA,WAFG,CAGHK,cAAc,CAAdA,cAHG,CAAP,CAKH","sourcesContent":["import React from 'react';\nimport Animated, { useSharedValue } from 'react-native-reanimated';\nimport type { TInitializeCarouselProps } from './useInitProps';\n\ninterface ICommonVariables {\n size: number;\n validLength: number;\n handlerOffsetX: Animated.SharedValue<number>;\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>\n): ICommonVariables {\n const { vertical, height, width, data, defaultIndex } = props;\n const size = vertical ? height : width;\n const validLength = data.length - 1;\n const defaultHandlerOffsetX = -Math.abs(defaultIndex * size);\n const handlerOffsetX = useSharedValue<number>(defaultHandlerOffsetX);\n\n React.useEffect(() => {\n handlerOffsetX.value = defaultHandlerOffsetX;\n }, [vertical, handlerOffsetX, defaultHandlerOffsetX]);\n\n return {\n size,\n validLength,\n handlerOffsetX,\n };\n}\n"]}
1
+ {"version":3,"sources":["useCommonVariables.ts"],"names":["useCommonVariables","props","vertical","height","width","data","defaultIndex","rawData","size","validLength","length","defaultHandlerOffsetX","Math","abs","handlerOffsetX","React","useEffect","value"],"mappings":"0LAAA,oDACA,8DASO,QAASA,CAAAA,kBAAT,CACHC,KADG,CAEa,CAChB,GAAQC,CAAAA,QAAR,CAAiED,KAAjE,CAAQC,QAAR,CAAkBC,MAAlB,CAAiEF,KAAjE,CAAkBE,MAAlB,CAA0BC,KAA1B,CAAiEH,KAAjE,CAA0BG,KAA1B,CAAiCC,IAAjC,CAAiEJ,KAAjE,CAAiCI,IAAjC,CAAuCC,YAAvC,CAAiEL,KAAjE,CAAuCK,YAAvC,CAAqDC,OAArD,CAAiEN,KAAjE,CAAqDM,OAArD,CACA,GAAMC,CAAAA,IAAI,CAAGN,QAAQ,CAAGC,MAAH,CAAYC,KAAjC,CACA,GAAMK,CAAAA,WAAW,CAAGJ,IAAI,CAACK,MAAL,CAAc,CAAlC,CACA,GAAMC,CAAAA,qBAAqB,CAAG,CAACC,IAAI,CAACC,GAAL,CAASP,YAAY,CAAGE,IAAxB,CAA/B,CACA,GAAMM,CAAAA,cAAc,CAAG,0CAAuBH,qBAAvB,CAAvB,CAEAI,eAAMC,SAAN,CAAgB,UAAM,CAClBF,cAAc,CAACG,KAAf,CAAuBN,qBAAvB,CACH,CAFD,CAEG,CAACT,QAAD,CAAWY,cAAX,CAA2BH,qBAA3B,CAAkDJ,OAAlD,CAFH,EAIA,MAAO,CACHC,IAAI,CAAJA,IADG,CAEHC,WAAW,CAAXA,WAFG,CAGHK,cAAc,CAAdA,cAHG,CAAP,CAKH","sourcesContent":["import React from 'react';\nimport Animated, { useSharedValue } from 'react-native-reanimated';\nimport type { TInitializeCarouselProps } from './useInitProps';\n\ninterface ICommonVariables {\n size: number;\n validLength: number;\n handlerOffsetX: Animated.SharedValue<number>;\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>\n): ICommonVariables {\n const { vertical, height, width, data, defaultIndex, rawData } = props;\n const size = vertical ? height : width;\n const validLength = data.length - 1;\n const defaultHandlerOffsetX = -Math.abs(defaultIndex * size);\n const handlerOffsetX = useSharedValue<number>(defaultHandlerOffsetX);\n\n React.useEffect(() => {\n handlerOffsetX.value = defaultHandlerOffsetX;\n }, [vertical, handlerOffsetX, defaultHandlerOffsetX, rawData]);\n\n return {\n size,\n validLength,\n handlerOffsetX,\n };\n}\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useInitProps=useInitProps;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireDefault(require("react"));var _constants=require("../constants");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;}function useInitProps(props){var _props$enableSnap;var _props$defaultIndex=props.defaultIndex,defaultIndex=_props$defaultIndex===void 0?0:_props$defaultIndex,_props$data=props.data,rawData=_props$data===void 0?[]:_props$data,_props$loop=props.loop,loop=_props$loop===void 0?true:_props$loop,_props$enabled=props.enabled,enabled=_props$enabled===void 0?true:_props$enabled,_props$autoPlayInterv=props.autoPlayInterval,_autoPlayInterval=_props$autoPlayInterv===void 0?1000:_props$autoPlayInterv,_props$scrollAnimatio=props.scrollAnimationDuration,scrollAnimationDuration=_props$scrollAnimatio===void 0?500:_props$scrollAnimatio,_props$style=props.style,style=_props$style===void 0?{}:_props$style,_props$panGestureHand=props.panGestureHandlerProps,panGestureHandlerProps=_props$panGestureHand===void 0?{}:_props$panGestureHand,_props$pagingEnabled=props.pagingEnabled,pagingEnabled=_props$pagingEnabled===void 0?true:_props$pagingEnabled,_props$snapEnabled=props.snapEnabled,snapEnabled=_props$snapEnabled===void 0?(_props$enableSnap=props.enableSnap)!=null?_props$enableSnap:true:_props$snapEnabled,_width=props.width,_height=props.height;var width=Math.round(_width||0);var height=Math.round(_height||0);var autoPlayInterval=Math.max(_autoPlayInterval,0);var data=_react.default.useMemo(function(){if(!loop)return rawData;if(rawData.length===_constants.DATA_LENGTH.SINGLE_ITEM){return[rawData[0],rawData[0],rawData[0]];}if(rawData.length===_constants.DATA_LENGTH.DOUBLE_ITEM){return[rawData[0],rawData[1],rawData[0],rawData[1]];}return rawData;},[rawData,loop]);if(props.mode==='vertical-stack'||props.mode==='horizontal-stack'){var _props$modeConfig$sho,_props$modeConfig;if(!props.modeConfig){props.modeConfig={};}props.modeConfig.showLength=(_props$modeConfig$sho=(_props$modeConfig=props.modeConfig)==null?void 0:_props$modeConfig.showLength)!=null?_props$modeConfig$sho:data.length-1;}return _objectSpread(_objectSpread({},props),{},{defaultIndex:defaultIndex,data:data,rawData:rawData,loop:loop,enabled:enabled,autoPlayInterval:autoPlayInterval,scrollAnimationDuration:scrollAnimationDuration,style:style,panGestureHandlerProps:panGestureHandlerProps,pagingEnabled:pagingEnabled,snapEnabled:snapEnabled,width:width,height:height});}
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useInitProps=useInitProps;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");var _react=_interopRequireDefault(require("react"));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;}function useInitProps(props){var _props$enableSnap;var _props$defaultIndex=props.defaultIndex,defaultIndex=_props$defaultIndex===void 0?0:_props$defaultIndex,_props$data=props.data,rawData=_props$data===void 0?[]:_props$data,_props$loop=props.loop,loop=_props$loop===void 0?true:_props$loop,_props$enabled=props.enabled,enabled=_props$enabled===void 0?true:_props$enabled,_props$autoPlayInterv=props.autoPlayInterval,_autoPlayInterval=_props$autoPlayInterv===void 0?1000:_props$autoPlayInterv,_props$scrollAnimatio=props.scrollAnimationDuration,scrollAnimationDuration=_props$scrollAnimatio===void 0?500:_props$scrollAnimatio,_props$style=props.style,style=_props$style===void 0?{}:_props$style,_props$panGestureHand=props.panGestureHandlerProps,panGestureHandlerProps=_props$panGestureHand===void 0?{}:_props$panGestureHand,_props$pagingEnabled=props.pagingEnabled,pagingEnabled=_props$pagingEnabled===void 0?true:_props$pagingEnabled,_props$autoFillData=props.autoFillData,autoFillData=_props$autoFillData===void 0?true:_props$autoFillData,_props$snapEnabled=props.snapEnabled,snapEnabled=_props$snapEnabled===void 0?(_props$enableSnap=props.enableSnap)!=null?_props$enableSnap:true:_props$snapEnabled,_width=props.width,_height=props.height;var width=Math.round(_width||0);var height=Math.round(_height||0);var autoPlayInterval=Math.max(_autoPlayInterval,0);var data=_react.default.useMemo(function(){return(0,_computedWithAutoFillData.computedFillDataWithAutoFillData)({loop:loop,autoFillData:autoFillData,data:rawData,dataLength:rawData.length});},[rawData,loop,autoFillData]);if(props.mode==='vertical-stack'||props.mode==='horizontal-stack'){var _props$modeConfig$sho,_props$modeConfig;if(!props.modeConfig){props.modeConfig={};}props.modeConfig.showLength=(_props$modeConfig$sho=(_props$modeConfig=props.modeConfig)==null?void 0:_props$modeConfig.showLength)!=null?_props$modeConfig$sho:data.length-1;}return _objectSpread(_objectSpread({},props),{},{defaultIndex:defaultIndex,autoFillData:autoFillData,data:data,rawData:rawData,loop:loop,enabled:enabled,autoPlayInterval:autoPlayInterval,scrollAnimationDuration:scrollAnimationDuration,style:style,panGestureHandlerProps:panGestureHandlerProps,pagingEnabled:pagingEnabled,snapEnabled:snapEnabled,width:width,height:height});}
2
2
  //# sourceMappingURL=useInitProps.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useInitProps.ts"],"names":["useInitProps","props","defaultIndex","data","rawData","loop","enabled","autoPlayInterval","_autoPlayInterval","scrollAnimationDuration","style","panGestureHandlerProps","pagingEnabled","snapEnabled","enableSnap","_width","width","_height","height","Math","round","max","React","useMemo","length","DATA_LENGTH","SINGLE_ITEM","DOUBLE_ITEM","mode","modeConfig","showLength"],"mappings":"4QAAA,oDACA,uC,kxBAqBO,QAASA,CAAAA,YAAT,CACHC,KADG,CAEwB,uBAC3B,wBAaIA,KAbJ,CACIC,YADJ,CACIA,YADJ,8BACmB,CADnB,iCAaID,KAbJ,CAEIE,IAFJ,CAEUC,OAFV,sBAEoB,EAFpB,yBAaIH,KAbJ,CAGII,IAHJ,CAGIA,IAHJ,sBAGW,IAHX,4BAaIJ,KAbJ,CAIIK,OAJJ,CAIIA,OAJJ,yBAIc,IAJd,sCAaIL,KAbJ,CAKIM,gBALJ,CAKsBC,iBALtB,gCAK0C,IAL1C,6CAaIP,KAbJ,CAMIQ,uBANJ,CAMIA,uBANJ,gCAM8B,GAN9B,oCAaIR,KAbJ,CAOIS,KAPJ,CAOIA,KAPJ,uBAOY,EAPZ,oCAaIT,KAbJ,CAQIU,sBARJ,CAQIA,sBARJ,gCAQ6B,EAR7B,4CAaIV,KAbJ,CASIW,aATJ,CASIA,aATJ,+BASoB,IATpB,yCAaIX,KAbJ,CAUIY,WAVJ,CAUIA,WAVJ,gDAUkBZ,KAAK,CAACa,UAVxB,0BAUsC,IAVtC,oBAWWC,MAXX,CAaId,KAbJ,CAWIe,KAXJ,CAYYC,OAZZ,CAaIhB,KAbJ,CAYIiB,MAZJ,CAeA,GAAMF,CAAAA,KAAK,CAAGG,IAAI,CAACC,KAAL,CAAWL,MAAM,EAAI,CAArB,CAAd,CACA,GAAMG,CAAAA,MAAM,CAAGC,IAAI,CAACC,KAAL,CAAWH,OAAO,EAAI,CAAtB,CAAf,CACA,GAAMV,CAAAA,gBAAgB,CAAGY,IAAI,CAACE,GAAL,CAASb,iBAAT,CAA4B,CAA5B,CAAzB,CAEA,GAAML,CAAAA,IAAI,CAAGmB,eAAMC,OAAN,CAAmB,UAAM,CAClC,GAAI,CAAClB,IAAL,CAAW,MAAOD,CAAAA,OAAP,CAEX,GAAIA,OAAO,CAACoB,MAAR,GAAmBC,uBAAYC,WAAnC,CAAgD,CAC5C,MAAO,CAACtB,OAAO,CAAC,CAAD,CAAR,CAAaA,OAAO,CAAC,CAAD,CAApB,CAAyBA,OAAO,CAAC,CAAD,CAAhC,CAAP,CACH,CAED,GAAIA,OAAO,CAACoB,MAAR,GAAmBC,uBAAYE,WAAnC,CAAgD,CAC5C,MAAO,CAACvB,OAAO,CAAC,CAAD,CAAR,CAAaA,OAAO,CAAC,CAAD,CAApB,CAAyBA,OAAO,CAAC,CAAD,CAAhC,CAAqCA,OAAO,CAAC,CAAD,CAA5C,CAAP,CACH,CAED,MAAOA,CAAAA,OAAP,CACH,CAZY,CAYV,CAACA,OAAD,CAAUC,IAAV,CAZU,CAAb,CAcA,GAAIJ,KAAK,CAAC2B,IAAN,GAAe,gBAAf,EAAmC3B,KAAK,CAAC2B,IAAN,GAAe,kBAAtD,CAA0E,6CACtE,GAAI,CAAC3B,KAAK,CAAC4B,UAAX,CAAuB,CACnB5B,KAAK,CAAC4B,UAAN,CAAmB,EAAnB,CACH,CACD5B,KAAK,CAAC4B,UAAN,CAAiBC,UAAjB,2CACI7B,KAAK,CAAC4B,UADV,eACI,kBAAkBC,UADtB,8BACoC3B,IAAI,CAACqB,MAAL,CAAc,CADlD,CAEH,CACD,sCACOvB,KADP,MAEIC,YAAY,CAAZA,YAFJ,CAGIC,IAAI,CAAJA,IAHJ,CAIIC,OAAO,CAAPA,OAJJ,CAKIC,IAAI,CAAJA,IALJ,CAMIC,OAAO,CAAPA,OANJ,CAOIC,gBAAgB,CAAhBA,gBAPJ,CAQIE,uBAAuB,CAAvBA,uBARJ,CASIC,KAAK,CAALA,KATJ,CAUIC,sBAAsB,CAAtBA,sBAVJ,CAWIC,aAAa,CAAbA,aAXJ,CAYIC,WAAW,CAAXA,WAZJ,CAaIG,KAAK,CAALA,KAbJ,CAcIE,MAAM,CAANA,MAdJ,GAgBH","sourcesContent":["import React from 'react';\nimport { DATA_LENGTH } from '../constants';\nimport type { TCarouselProps } from '../types';\n\ntype TGetRequiredProps<P extends keyof TCarouselProps> = Record<\n P,\n Required<TCarouselProps>[P]\n>;\n\nexport type TInitializeCarouselProps<T> = TCarouselProps<T> &\n TGetRequiredProps<\n | 'defaultIndex'\n | 'loop'\n | 'width'\n | 'height'\n | 'scrollAnimationDuration'\n | 'autoPlayInterval'\n > & {\n // Raw data that has not been processed\n rawData: T[];\n };\n\nexport function useInitProps<T>(\n props: TCarouselProps<T>\n): TInitializeCarouselProps<T> {\n const {\n defaultIndex = 0,\n data: rawData = [],\n loop = true,\n enabled = true,\n autoPlayInterval: _autoPlayInterval = 1000,\n scrollAnimationDuration = 500,\n style = {},\n panGestureHandlerProps = {},\n pagingEnabled = true,\n snapEnabled = props.enableSnap ?? true,\n width: _width,\n height: _height,\n } = props;\n\n const width = Math.round(_width || 0);\n const height = Math.round(_height || 0);\n const autoPlayInterval = Math.max(_autoPlayInterval, 0);\n\n const data = React.useMemo<T[]>(() => {\n if (!loop) return rawData;\n\n if (rawData.length === DATA_LENGTH.SINGLE_ITEM) {\n return [rawData[0], rawData[0], rawData[0]];\n }\n\n if (rawData.length === DATA_LENGTH.DOUBLE_ITEM) {\n return [rawData[0], rawData[1], rawData[0], rawData[1]];\n }\n\n return rawData;\n }, [rawData, loop]);\n\n if (props.mode === 'vertical-stack' || props.mode === 'horizontal-stack') {\n if (!props.modeConfig) {\n props.modeConfig = {};\n }\n props.modeConfig.showLength =\n props.modeConfig?.showLength ?? data.length - 1;\n }\n return {\n ...props,\n defaultIndex,\n data,\n rawData,\n loop,\n enabled,\n autoPlayInterval,\n scrollAnimationDuration,\n style,\n panGestureHandlerProps,\n pagingEnabled,\n snapEnabled,\n width,\n height,\n };\n}\n"]}
1
+ {"version":3,"sources":["useInitProps.ts"],"names":["useInitProps","props","defaultIndex","data","rawData","loop","enabled","autoPlayInterval","_autoPlayInterval","scrollAnimationDuration","style","panGestureHandlerProps","pagingEnabled","autoFillData","snapEnabled","enableSnap","_width","width","_height","height","Math","round","max","React","useMemo","dataLength","length","mode","modeConfig","showLength"],"mappings":"4QAAA,2EACA,oD,kxBAsBO,QAASA,CAAAA,YAAT,CACHC,KADG,CAEwB,uBAC3B,wBAcIA,KAdJ,CACIC,YADJ,CACIA,YADJ,8BACmB,CADnB,iCAcID,KAdJ,CAEIE,IAFJ,CAEUC,OAFV,sBAEoB,EAFpB,yBAcIH,KAdJ,CAGII,IAHJ,CAGIA,IAHJ,sBAGW,IAHX,4BAcIJ,KAdJ,CAIIK,OAJJ,CAIIA,OAJJ,yBAIc,IAJd,sCAcIL,KAdJ,CAKIM,gBALJ,CAKsBC,iBALtB,gCAK0C,IAL1C,6CAcIP,KAdJ,CAMIQ,uBANJ,CAMIA,uBANJ,gCAM8B,GAN9B,oCAcIR,KAdJ,CAOIS,KAPJ,CAOIA,KAPJ,uBAOY,EAPZ,oCAcIT,KAdJ,CAQIU,sBARJ,CAQIA,sBARJ,gCAQ6B,EAR7B,4CAcIV,KAdJ,CASIW,aATJ,CASIA,aATJ,+BASoB,IATpB,0CAcIX,KAdJ,CAUIY,YAVJ,CAUIA,YAVJ,8BAUmB,IAVnB,wCAcIZ,KAdJ,CAWIa,WAXJ,CAWIA,WAXJ,gDAWkBb,KAAK,CAACc,UAXxB,0BAWsC,IAXtC,oBAYWC,MAZX,CAcIf,KAdJ,CAYIgB,KAZJ,CAaYC,OAbZ,CAcIjB,KAdJ,CAaIkB,MAbJ,CAgBA,GAAMF,CAAAA,KAAK,CAAGG,IAAI,CAACC,KAAL,CAAWL,MAAM,EAAI,CAArB,CAAd,CACA,GAAMG,CAAAA,MAAM,CAAGC,IAAI,CAACC,KAAL,CAAWH,OAAO,EAAI,CAAtB,CAAf,CACA,GAAMX,CAAAA,gBAAgB,CAAGa,IAAI,CAACE,GAAL,CAASd,iBAAT,CAA4B,CAA5B,CAAzB,CAEA,GAAML,CAAAA,IAAI,CAAGoB,eAAMC,OAAN,CACT,iBACI,+DAAoC,CAChCnB,IAAI,CAAJA,IADgC,CAEhCQ,YAAY,CAAZA,YAFgC,CAGhCV,IAAI,CAAEC,OAH0B,CAIhCqB,UAAU,CAAErB,OAAO,CAACsB,MAJY,CAApC,CADJ,EADS,CAQT,CAACtB,OAAD,CAAUC,IAAV,CAAgBQ,YAAhB,CARS,CAAb,CAWA,GAAIZ,KAAK,CAAC0B,IAAN,GAAe,gBAAf,EAAmC1B,KAAK,CAAC0B,IAAN,GAAe,kBAAtD,CAA0E,6CACtE,GAAI,CAAC1B,KAAK,CAAC2B,UAAX,CAAuB,CACnB3B,KAAK,CAAC2B,UAAN,CAAmB,EAAnB,CACH,CACD3B,KAAK,CAAC2B,UAAN,CAAiBC,UAAjB,2CACI5B,KAAK,CAAC2B,UADV,eACI,kBAAkBC,UADtB,8BACoC1B,IAAI,CAACuB,MAAL,CAAc,CADlD,CAEH,CACD,sCACOzB,KADP,MAEIC,YAAY,CAAZA,YAFJ,CAGIW,YAAY,CAAZA,YAHJ,CAIIV,IAAI,CAAJA,IAJJ,CAKIC,OAAO,CAAPA,OALJ,CAMIC,IAAI,CAAJA,IANJ,CAOIC,OAAO,CAAPA,OAPJ,CAQIC,gBAAgB,CAAhBA,gBARJ,CASIE,uBAAuB,CAAvBA,uBATJ,CAUIC,KAAK,CAALA,KAVJ,CAWIC,sBAAsB,CAAtBA,sBAXJ,CAYIC,aAAa,CAAbA,aAZJ,CAaIE,WAAW,CAAXA,WAbJ,CAcIG,KAAK,CAALA,KAdJ,CAeIE,MAAM,CAANA,MAfJ,GAiBH","sourcesContent":["import { computedFillDataWithAutoFillData } from '@/utils/computedWithAutoFillData';\nimport React from 'react';\nimport type { TCarouselProps } from '../types';\n\ntype TGetRequiredProps<P extends keyof TCarouselProps> = Record<\n P,\n Required<TCarouselProps>[P]\n>;\n\nexport type TInitializeCarouselProps<T> = TCarouselProps<T> &\n TGetRequiredProps<\n | 'defaultIndex'\n | 'loop'\n | 'width'\n | 'height'\n | 'scrollAnimationDuration'\n | 'autoPlayInterval'\n | 'autoFillData'\n > & {\n // Raw data that has not been processed\n rawData: T[];\n };\n\nexport function useInitProps<T>(\n props: TCarouselProps<T>\n): TInitializeCarouselProps<T> {\n const {\n defaultIndex = 0,\n data: rawData = [],\n loop = true,\n enabled = true,\n autoPlayInterval: _autoPlayInterval = 1000,\n scrollAnimationDuration = 500,\n style = {},\n panGestureHandlerProps = {},\n pagingEnabled = true,\n autoFillData = true,\n snapEnabled = props.enableSnap ?? true,\n width: _width,\n height: _height,\n } = props;\n\n const width = Math.round(_width || 0);\n const height = Math.round(_height || 0);\n const autoPlayInterval = Math.max(_autoPlayInterval, 0);\n\n const data = React.useMemo<T[]>(\n () =>\n computedFillDataWithAutoFillData<T>({\n loop,\n autoFillData,\n data: rawData,\n dataLength: rawData.length,\n }),\n [rawData, loop, autoFillData]\n );\n\n if (props.mode === 'vertical-stack' || props.mode === 'horizontal-stack') {\n if (!props.modeConfig) {\n props.modeConfig = {};\n }\n props.modeConfig.showLength =\n props.modeConfig?.showLength ?? data.length - 1;\n }\n return {\n ...props,\n defaultIndex,\n autoFillData,\n data,\n rawData,\n loop,\n enabled,\n autoPlayInterval,\n scrollAnimationDuration,\n style,\n panGestureHandlerProps,\n pagingEnabled,\n snapEnabled,\n width,\n height,\n };\n}\n"]}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.useOnProgressChange=useOnProgressChange;var _reactNativeReanimated=require("react-native-reanimated");var _constants=require("../constants");function useOnProgressChange(opts){var offsetX=opts.offsetX,rawData=opts.rawData,size=opts.size,onProgressChange=opts.onProgressChange;var rawDataLength=rawData.length;(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return offsetX.value;};_f._closure={offsetX:offsetX};_f.asString="function _f(){const{offsetX}=jsThis._closure;{return offsetX.value;}}";_f.__workletHash=11091407603539;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts (18:8)";global.__reanimatedWorkletInit(_f);return _f;}(),function(){var _f=function _f(_value){var value=_value;if(rawDataLength===_constants.DATA_LENGTH.SINGLE_ITEM){value=value%size;}if(rawDataLength===_constants.DATA_LENGTH.DOUBLE_ITEM){value=value%(size*2);}var absoluteProgress=Math.abs(value/size);if(value>0){absoluteProgress=rawDataLength-absoluteProgress;}!!onProgressChange&&(0,_reactNativeReanimated.runOnJS)(onProgressChange)(value,absoluteProgress);};_f._closure={rawDataLength:rawDataLength,DATA_LENGTH:{SINGLE_ITEM:_constants.DATA_LENGTH.SINGLE_ITEM,DOUBLE_ITEM:_constants.DATA_LENGTH.DOUBLE_ITEM},size:size,onProgressChange:onProgressChange,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(_value){const{rawDataLength,DATA_LENGTH,size,onProgressChange,runOnJS}=jsThis._closure;{let value=_value;if(rawDataLength===DATA_LENGTH.SINGLE_ITEM){value=value%size;}if(rawDataLength===DATA_LENGTH.DOUBLE_ITEM){value=value%(size*2);}let absoluteProgress=Math.abs(value/size);if(value>0){absoluteProgress=rawDataLength-absoluteProgress;}!!onProgressChange&&runOnJS(onProgressChange)(value,absoluteProgress);}}";_f.__workletHash=13919234910402;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts (19:8)";global.__reanimatedWorkletInit(_f);return _f;}(),[onProgressChange,rawDataLength]);}
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.useOnProgressChange=useOnProgressChange;var _reactNativeReanimated=require("react-native-reanimated");var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");function useOnProgressChange(opts){var autoFillData=opts.autoFillData,loop=opts.loop,offsetX=opts.offsetX,rawData=opts.rawData,size=opts.size,onProgressChange=opts.onProgressChange;var rawDataLength=rawData.length;(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return offsetX.value;};_f._closure={offsetX:offsetX};_f.asString="function _f(){const{offsetX}=jsThis._closure;{return offsetX.value;}}";_f.__workletHash=11091407603539;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts (23:8)";global.__reanimatedWorkletInit(_f);return _f;}(),function(){var _f=function _f(_value){var value=(0,_computedWithAutoFillData.computedOffsetXValueWithAutoFillData)({value:_value,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop});if(!loop){value=Math.max(-((rawDataLength-1)*size),Math.min(value,0));}var absoluteProgress=Math.abs(value/size);if(value>0){absoluteProgress=rawDataLength-absoluteProgress;}!!onProgressChange&&(0,_reactNativeReanimated.runOnJS)(onProgressChange)(value,absoluteProgress);};_f._closure={computedOffsetXValueWithAutoFillData:_computedWithAutoFillData.computedOffsetXValueWithAutoFillData,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop,onProgressChange:onProgressChange,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(_value){const{computedOffsetXValueWithAutoFillData,rawDataLength,size,autoFillData,loop,onProgressChange,runOnJS}=jsThis._closure;{let value=computedOffsetXValueWithAutoFillData({value:_value,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop});if(!loop){value=Math.max(-((rawDataLength-1)*size),Math.min(value,0));}let absoluteProgress=Math.abs(value/size);if(value>0){absoluteProgress=rawDataLength-absoluteProgress;}!!onProgressChange&&runOnJS(onProgressChange)(value,absoluteProgress);}}";_f.__workletHash=10178584953814;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts (24:8)";global.__reanimatedWorkletInit(_f);return _f;}(),[loop,autoFillData,rawDataLength,onProgressChange]);}
2
2
  //# sourceMappingURL=useOnProgressChange.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useOnProgressChange.ts"],"names":["useOnProgressChange","opts","offsetX","rawData","size","onProgressChange","rawDataLength","length","value","_value","DATA_LENGTH","SINGLE_ITEM","DOUBLE_ITEM","absoluteProgress","Math","abs","runOnJS"],"mappings":"yGAAA,8DAIA,uCAGO,QAASA,CAAAA,mBAAT,CACHC,IADG,CAML,CACE,GAAQC,CAAAA,OAAR,CAAqDD,IAArD,CAAQC,OAAR,CAAiBC,OAAjB,CAAqDF,IAArD,CAAiBE,OAAjB,CAA0BC,IAA1B,CAAqDH,IAArD,CAA0BG,IAA1B,CAAgCC,gBAAhC,CAAqDJ,IAArD,CAAgCI,gBAAhC,CACA,GAAMC,CAAAA,aAAa,CAAGH,OAAO,CAACI,MAA9B,CACA,iEACI,oBAAML,CAAAA,OAAO,CAACM,KAAd,EADJ,sBAfGN,OAeH,sTAEKO,MAFL,CAEgB,CACR,GAAID,CAAAA,KAAK,CAAGC,MAAZ,CAEA,GAAIH,aAAa,GAAKI,uBAAYC,WAAlC,CAA+C,CAC3CH,KAAK,CAAGA,KAAK,CAAGJ,IAAhB,CACH,CAED,GAAIE,aAAa,GAAKI,uBAAYE,WAAlC,CAA+C,CAC3CJ,KAAK,CAAGA,KAAK,EAAIJ,IAAI,CAAG,CAAX,CAAb,CACH,CAED,GAAIS,CAAAA,gBAAgB,CAAGC,IAAI,CAACC,GAAL,CAASP,KAAK,CAAGJ,IAAjB,CAAvB,CAEA,GAAII,KAAK,CAAG,CAAZ,CAAe,CACXK,gBAAgB,CAAGP,aAAa,CAAGO,gBAAnC,CACH,CAED,CAAC,CAACR,gBAAF,EACI,mCAAQA,gBAAR,EAA0BG,KAA1B,CAAiCK,gBAAjC,CADJ,CAEH,CArBL,4BADmBP,aACnB,0BAZoBI,uBAAYC,WAYhC,aARoBD,uBAAYE,WAQhC,OAJsCR,IAItC,kBAE4BC,gBAF5B,SAEoBW,8BAFpB,unBAsBI,CAACX,gBAAD,CAAmBC,aAAnB,CAtBJ,EAwBH","sourcesContent":["import Animated, {\n runOnJS,\n useAnimatedReaction,\n} from 'react-native-reanimated';\nimport { DATA_LENGTH } from '../constants';\nimport type { TCarouselProps } from '../types';\n\nexport function useOnProgressChange(\n opts: {\n size: number;\n offsetX: Animated.SharedValue<number>;\n rawData: TCarouselProps['data'];\n } & Pick<TCarouselProps, 'onProgressChange'>\n) {\n const { offsetX, rawData, size, onProgressChange } = opts;\n const rawDataLength = rawData.length;\n useAnimatedReaction(\n () => offsetX.value,\n (_value) => {\n let value = _value;\n\n if (rawDataLength === DATA_LENGTH.SINGLE_ITEM) {\n value = value % size;\n }\n\n if (rawDataLength === DATA_LENGTH.DOUBLE_ITEM) {\n value = value % (size * 2);\n }\n\n let absoluteProgress = Math.abs(value / size);\n\n if (value > 0) {\n absoluteProgress = rawDataLength - absoluteProgress;\n }\n\n !!onProgressChange &&\n runOnJS(onProgressChange)(value, absoluteProgress);\n },\n [onProgressChange, rawDataLength]\n );\n}\n"]}
1
+ {"version":3,"sources":["useOnProgressChange.ts"],"names":["useOnProgressChange","opts","autoFillData","loop","offsetX","rawData","size","onProgressChange","rawDataLength","length","value","_value","Math","max","min","absoluteProgress","abs","computedOffsetXValueWithAutoFillData","runOnJS"],"mappings":"yGAAA,8DAIA,2EAGO,QAASA,CAAAA,mBAAT,CACHC,IADG,CAQL,CACE,GAAQC,CAAAA,YAAR,CACID,IADJ,CAAQC,YAAR,CAAsBC,IAAtB,CACIF,IADJ,CAAsBE,IAAtB,CAA4BC,OAA5B,CACIH,IADJ,CAA4BG,OAA5B,CAAqCC,OAArC,CACIJ,IADJ,CAAqCI,OAArC,CAA8CC,IAA9C,CACIL,IADJ,CAA8CK,IAA9C,CAAoDC,gBAApD,CACIN,IADJ,CAAoDM,gBAApD,CAGA,GAAMC,CAAAA,aAAa,CAAGH,OAAO,CAACI,MAA9B,CAEA,iEACI,oBAAML,CAAAA,OAAO,CAACM,KAAd,EADJ,sBApBGN,OAoBH,sTAEKO,MAFL,CAEgB,CACR,GAAID,CAAAA,KAAK,CAAG,mEAAqC,CAC7CA,KAAK,CAAEC,MADsC,CAE7CH,aAAa,CAAbA,aAF6C,CAG7CF,IAAI,CAAJA,IAH6C,CAI7CJ,YAAY,CAAZA,YAJ6C,CAK7CC,IAAI,CAAJA,IAL6C,CAArC,CAAZ,CAQA,GAAI,CAACA,IAAL,CAAW,CACPO,KAAK,CAAGE,IAAI,CAACC,GAAL,CACJ,EAAE,CAACL,aAAa,CAAG,CAAjB,EAAsBF,IAAxB,CADI,CAEJM,IAAI,CAACE,GAAL,CAASJ,KAAT,CAAgB,CAAhB,CAFI,CAAR,CAIH,CAED,GAAIK,CAAAA,gBAAgB,CAAGH,IAAI,CAACI,GAAL,CAASN,KAAK,CAAGJ,IAAjB,CAAvB,CAEA,GAAII,KAAK,CAAG,CAAZ,CAAe,CACXK,gBAAgB,CAAGP,aAAa,CAAGO,gBAAnC,CACH,CAED,CAAC,CAACR,gBAAF,EACI,mCAAQA,gBAAR,EAA0BG,KAA1B,CAAiCK,gBAAjC,CADJ,CAEH,CA1BL,mDAnBUE,8DAmBV,eAJmBT,aAInB,MAPsCF,IAOtC,cAfAJ,YAeA,MAXGC,IAWH,kBAD4BI,gBAC5B,SADoBW,8BACpB,iuBA2BI,CAACf,IAAD,CAAOD,YAAP,CAAqBM,aAArB,CAAoCD,gBAApC,CA3BJ,EA6BH","sourcesContent":["import Animated, {\n runOnJS,\n useAnimatedReaction,\n} from 'react-native-reanimated';\nimport { computedOffsetXValueWithAutoFillData } from '@/utils/computedWithAutoFillData';\nimport type { TCarouselProps } from '../types';\n\nexport function useOnProgressChange(\n opts: {\n size: number;\n autoFillData: boolean;\n loop: boolean;\n offsetX: Animated.SharedValue<number>;\n rawData: TCarouselProps['data'];\n } & Pick<TCarouselProps, 'onProgressChange'>\n) {\n const { autoFillData, loop, offsetX, rawData, size, onProgressChange } =\n opts;\n\n const rawDataLength = rawData.length;\n\n useAnimatedReaction(\n () => offsetX.value,\n (_value) => {\n let value = computedOffsetXValueWithAutoFillData({\n value: _value,\n rawDataLength,\n size,\n autoFillData,\n loop,\n });\n\n if (!loop) {\n value = Math.max(\n -((rawDataLength - 1) * size),\n Math.min(value, 0)\n );\n }\n\n let absoluteProgress = Math.abs(value / size);\n\n if (value > 0) {\n absoluteProgress = rawDataLength - absoluteProgress;\n }\n\n !!onProgressChange &&\n runOnJS(onProgressChange)(value, absoluteProgress);\n },\n [loop, autoFillData, rawDataLength, onProgressChange]\n );\n}\n"]}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.computedFillDataWithAutoFillData=computedFillDataWithAutoFillData;exports.computedOffsetXValueWithAutoFillData=void 0;exports.computedRealIndexWithAutoFillData=computedRealIndexWithAutoFillData;var _constants=require("../constants");var SINGLE_ITEM=_constants.DATA_LENGTH.SINGLE_ITEM,DOUBLE_ITEM=_constants.DATA_LENGTH.DOUBLE_ITEM;var isAutoFillData=function(){var _f=function _f(params){return!!params.loop&&!!params.autoFillData;};_f._closure={};_f.asString="function isAutoFillData(params){return!!params.loop&&!!params.autoFillData;}";_f.__workletHash=12581181073993;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/utils/computedWithAutoFillData.ts (5:0)";global.__reanimatedWorkletInit(_f);return _f;}();var computedOffsetXValueWithAutoFillData=function(){var _f=function _f(params){var rawDataLength=params.rawDataLength,value=params.value,size=params.size,loop=params.loop,autoFillData=params.autoFillData;if(isAutoFillData({loop:loop,autoFillData:autoFillData})){switch(rawDataLength){case SINGLE_ITEM:return value%size;case DOUBLE_ITEM:return value%(size*2);}}return value;};_f._closure={isAutoFillData:isAutoFillData,SINGLE_ITEM:SINGLE_ITEM,DOUBLE_ITEM:DOUBLE_ITEM};_f.asString="function computedOffsetXValueWithAutoFillData(params){const{isAutoFillData,SINGLE_ITEM,DOUBLE_ITEM}=jsThis._closure;{const{rawDataLength:rawDataLength,value:value,size:size,loop:loop,autoFillData:autoFillData}=params;if(isAutoFillData({loop:loop,autoFillData:autoFillData})){switch(rawDataLength){case SINGLE_ITEM:return value%size;case DOUBLE_ITEM:return value%(size*2);}}return value;}}";_f.__workletHash=8949924672961;_f.__location="/Users/zhaodonghao/code/react-native-reanimated-carousel/src/utils/computedWithAutoFillData.ts (15:7)";global.__reanimatedWorkletInit(_f);return _f;}();exports.computedOffsetXValueWithAutoFillData=computedOffsetXValueWithAutoFillData;function computedRealIndexWithAutoFillData(params){var index=params.index,dataLength=params.dataLength,loop=params.loop,autoFillData=params.autoFillData;if(isAutoFillData({loop:loop,autoFillData:autoFillData})){switch(dataLength){case SINGLE_ITEM:return index%1;case DOUBLE_ITEM:return index%2;}}return index;}function computedFillDataWithAutoFillData(params){var data=params.data,loop=params.loop,autoFillData=params.autoFillData,dataLength=params.dataLength;if(isAutoFillData({loop:loop,autoFillData:autoFillData})){switch(dataLength){case SINGLE_ITEM:return[data[0],data[0],data[0]];case DOUBLE_ITEM:return[data[0],data[1],data[0],data[1]];}}return data;}
2
+ //# sourceMappingURL=computedWithAutoFillData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["computedWithAutoFillData.ts"],"names":["SINGLE_ITEM","DATA_LENGTH","DOUBLE_ITEM","isAutoFillData","params","loop","autoFillData","computedOffsetXValueWithAutoFillData","rawDataLength","value","size","computedRealIndexWithAutoFillData","index","dataLength","computedFillDataWithAutoFillData","data"],"mappings":"mQAAA,uCAEA,GAAQA,CAAAA,WAAR,CAAqCC,sBAArC,CAAQD,WAAR,CAAqBE,WAArB,CAAqCD,sBAArC,CAAqBC,WAArB,C,GAESC,CAAAA,c,+BAAeC,M,CAAkD,CAEtE,MAAO,CAAC,CAACA,MAAM,CAACC,IAAT,EAAiB,CAAC,CAACD,MAAM,CAACE,YAAjC,CACH,C,oTAOeC,CAAAA,oC,+BACZH,M,CAKF,CAGE,GAAQI,CAAAA,aAAR,CAA2DJ,MAA3D,CAAQI,aAAR,CAAuBC,KAAvB,CAA2DL,MAA3D,CAAuBK,KAAvB,CAA8BC,IAA9B,CAA2DN,MAA3D,CAA8BM,IAA9B,CAAoCL,IAApC,CAA2DD,MAA3D,CAAoCC,IAApC,CAA0CC,YAA1C,CAA2DF,MAA3D,CAA0CE,YAA1C,CAEA,GAAIH,cAAc,CAAC,CAAEE,IAAI,CAAJA,IAAF,CAAQC,YAAY,CAAZA,YAAR,CAAD,CAAlB,CAA4C,CACxC,OAAQE,aAAR,EACI,IAAKR,CAAAA,WAAL,CACI,MAAOS,CAAAA,KAAK,CAAGC,IAAf,CACJ,IAAKR,CAAAA,WAAL,CACI,MAAOO,CAAAA,KAAK,EAAIC,IAAI,CAAG,CAAX,CAAZ,CAJR,CAMH,CAED,MAAOD,CAAAA,KAAP,CACH,C,6BArBKN,c,aAKKH,W,aAGAE,W,6qBAeJ,QAASS,CAAAA,iCAAT,CACHP,MADG,CAKL,CACE,GAAQQ,CAAAA,KAAR,CAAkDR,MAAlD,CAAQQ,KAAR,CAAeC,UAAf,CAAkDT,MAAlD,CAAeS,UAAf,CAA2BR,IAA3B,CAAkDD,MAAlD,CAA2BC,IAA3B,CAAiCC,YAAjC,CAAkDF,MAAlD,CAAiCE,YAAjC,CAEA,GAAIH,cAAc,CAAC,CAAEE,IAAI,CAAJA,IAAF,CAAQC,YAAY,CAAZA,YAAR,CAAD,CAAlB,CAA4C,CACxC,OAAQO,UAAR,EACI,IAAKb,CAAAA,WAAL,CACI,MAAOY,CAAAA,KAAK,CAAG,CAAf,CACJ,IAAKV,CAAAA,WAAL,CACI,MAAOU,CAAAA,KAAK,CAAG,CAAf,CAJR,CAMH,CAED,MAAOA,CAAAA,KAAP,CACH,CAEM,QAASE,CAAAA,gCAAT,CACHV,MADG,CAKA,CACH,GAAQW,CAAAA,IAAR,CAAiDX,MAAjD,CAAQW,IAAR,CAAcV,IAAd,CAAiDD,MAAjD,CAAcC,IAAd,CAAoBC,YAApB,CAAiDF,MAAjD,CAAoBE,YAApB,CAAkCO,UAAlC,CAAiDT,MAAjD,CAAkCS,UAAlC,CAEA,GAAIV,cAAc,CAAC,CAAEE,IAAI,CAAJA,IAAF,CAAQC,YAAY,CAAZA,YAAR,CAAD,CAAlB,CAA4C,CACxC,OAAQO,UAAR,EACI,IAAKb,CAAAA,WAAL,CACI,MAAO,CAACe,IAAI,CAAC,CAAD,CAAL,CAAUA,IAAI,CAAC,CAAD,CAAd,CAAmBA,IAAI,CAAC,CAAD,CAAvB,CAAP,CACJ,IAAKb,CAAAA,WAAL,CACI,MAAO,CAACa,IAAI,CAAC,CAAD,CAAL,CAAUA,IAAI,CAAC,CAAD,CAAd,CAAmBA,IAAI,CAAC,CAAD,CAAvB,CAA4BA,IAAI,CAAC,CAAD,CAAhC,CAAP,CAJR,CAMH,CAED,MAAOA,CAAAA,IAAP,CACH","sourcesContent":["import { DATA_LENGTH } from 'src/constants';\n\nconst { SINGLE_ITEM, DOUBLE_ITEM } = DATA_LENGTH;\n\nfunction isAutoFillData(params: { autoFillData: boolean; loop: boolean }) {\n 'worklet';\n return !!params.loop && !!params.autoFillData;\n}\n\ntype BaseParams<T extends object = {}> = {\n autoFillData: boolean;\n loop: boolean;\n} & T;\n\nexport function computedOffsetXValueWithAutoFillData(\n params: BaseParams<{\n rawDataLength: number;\n value: number;\n size: number;\n }>\n) {\n 'worklet';\n\n const { rawDataLength, value, size, loop, autoFillData } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (rawDataLength) {\n case SINGLE_ITEM:\n return value % size;\n case DOUBLE_ITEM:\n return value % (size * 2);\n }\n }\n\n return value;\n}\n\nexport function computedRealIndexWithAutoFillData(\n params: BaseParams<{\n index: number;\n dataLength: number;\n }>\n) {\n const { index, dataLength, loop, autoFillData } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (dataLength) {\n case SINGLE_ITEM:\n return index % 1;\n case DOUBLE_ITEM:\n return index % 2;\n }\n }\n\n return index;\n}\n\nexport function computedFillDataWithAutoFillData<T>(\n params: BaseParams<{\n data: T[];\n dataLength: number;\n }>\n): T[] {\n const { data, loop, autoFillData, dataLength } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (dataLength) {\n case SINGLE_ITEM:\n return [data[0], data[0], data[0]];\n case DOUBLE_ITEM:\n return [data[0], data[1], data[0], data[1]];\n }\n }\n\n return data;\n}\n"]}
@@ -6,19 +6,20 @@ import { usePropsErrorBoundary } from './hooks/usePropsErrorBoundary';
6
6
  import { ScrollViewGesture } from './ScrollViewGesture';
7
7
  import { useVisibleRanges } from './hooks/useVisibleRanges';
8
8
  import { StyleSheet, View } from 'react-native';
9
- import { DATA_LENGTH } from './constants';
10
9
  import { BaseLayout } from './layouts/BaseLayout';
11
10
  import { useLayoutConfig } from './hooks/useLayoutConfig';
12
11
  import { useInitProps } from './hooks/useInitProps';
13
12
  import { CTX } from './store';
14
13
  import { useCommonVariables } from './hooks/useCommonVariables';
15
14
  import { useOnProgressChange } from './hooks/useOnProgressChange';
15
+ import { computedRealIndexWithAutoFillData } from './utils/computedWithAutoFillData';
16
16
  const Carousel = /*#__PURE__*/React.forwardRef((_props, ref) => {
17
17
  const props = useInitProps(_props);
18
18
  const {
19
19
  data,
20
20
  rawData,
21
21
  loop,
22
+ autoFillData,
22
23
  mode,
23
24
  style,
24
25
  width,
@@ -56,6 +57,8 @@ const Carousel = /*#__PURE__*/React.forwardRef((_props, ref) => {
56
57
  }, [loop, size, dataLength]);
57
58
  usePropsErrorBoundary(props);
58
59
  useOnProgressChange({
60
+ autoFillData,
61
+ loop,
59
62
  size,
60
63
  offsetX,
61
64
  rawData,
@@ -129,16 +132,12 @@ const Carousel = /*#__PURE__*/React.forwardRef((_props, ref) => {
129
132
  size
130
133
  });
131
134
  const renderLayout = React.useCallback((item, i) => {
132
- let realIndex = i;
133
-
134
- if (rawData.length === DATA_LENGTH.SINGLE_ITEM) {
135
- realIndex = i % 1;
136
- }
137
-
138
- if (rawData.length === DATA_LENGTH.DOUBLE_ITEM) {
139
- realIndex = i % 2;
140
- }
141
-
135
+ const realIndex = computedRealIndexWithAutoFillData({
136
+ index: i,
137
+ dataLength: rawData.length,
138
+ loop,
139
+ autoFillData
140
+ });
142
141
  return /*#__PURE__*/React.createElement(BaseLayout, {
143
142
  key: i,
144
143
  index: i,
@@ -155,7 +154,7 @@ const Carousel = /*#__PURE__*/React.forwardRef((_props, ref) => {
155
154
  animationValue
156
155
  });
157
156
  });
158
- }, [rawData, offsetX, visibleRanges, renderItem, layoutConfig, customAnimation]);
157
+ }, [loop, rawData, offsetX, visibleRanges, autoFillData, renderItem, layoutConfig, customAnimation]);
159
158
  return /*#__PURE__*/React.createElement(CTX.Provider, {
160
159
  value: {
161
160
  props,