react-native-reanimated-carousel 2.6.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/Carousel.js +1 -1
- package/lib/commonjs/Carousel.js.map +1 -1
- package/lib/commonjs/ScrollViewGesture.js +1 -1
- package/lib/commonjs/ScrollViewGesture.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.js +1 -1
- package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.js +1 -1
- package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.js +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/layouts/BaseLayout.js +1 -1
- package/lib/commonjs/layouts/BaseLayout.js.map +1 -1
- package/lib/commonjs/layouts/ParallaxLayout.js +1 -1
- package/lib/commonjs/layouts/ParallaxLayout.js.map +1 -1
- package/lib/commonjs/layouts/normal.js +1 -1
- package/lib/commonjs/layouts/normal.js.map +1 -1
- package/lib/commonjs/layouts/parallax.js +1 -1
- package/lib/commonjs/layouts/parallax.js.map +1 -1
- package/lib/commonjs/layouts/stack.js +1 -1
- package/lib/commonjs/layouts/stack.js.map +1 -1
- package/lib/commonjs/utils/computedWithAutoFillData.js +1 -1
- package/lib/commonjs/utils/computedWithAutoFillData.js.map +1 -1
- package/lib/commonjs/utils/dealWithAnimation.js +1 -1
- package/lib/commonjs/utils/dealWithAnimation.js.map +1 -1
- package/lib/commonjs/utils/log.js +1 -1
- package/lib/module/index.js +0 -6
- package/lib/module/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.tsx +0 -4
package/lib/commonjs/Carousel.js
CHANGED
|
@@ -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 _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/github/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 testID=props.testID,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/github/react-native-reanimated-carousel/src/Carousel.tsx (54:40)";
|
|
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/github/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 testID=props.testID,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/github/react-native-reanimated-carousel/src/Carousel.tsx (54:40)";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,data:data,autoFillData:autoFillData,handlerOffsetX:handlerOffsetX,withAnimation:withAnimation,defaultIndex:defaultIndex,onScrollEnd:function onScrollEnd(){return(0,_reactNativeReanimated.runOnJS)(_onScrollEnd)();},onScrollBegin:function onScrollBegin(){return!!_onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(_onScrollBegin)();},duration:scrollAnimationDuration});var next=carouselController.next,prev=carouselController.prev,scrollTo=carouselController.scrollTo,getSharedIndex=carouselController.getSharedIndex,getCurrentIndex=carouselController.getCurrentIndex;var _useAutoPlay=(0,_useAutoPlay2.useAutoPlay)({autoPlay:autoPlay,autoPlayInterval:autoPlayInterval,autoPlayReverse:autoPlayReverse,carouselController:carouselController}),startAutoPlay=_useAutoPlay.start,pauseAutoPlay=_useAutoPlay.pause;var _onScrollEnd=_react.default.useCallback(function(){var _sharedIndex=Math.round(getSharedIndex());var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:_sharedIndex,dataLength:rawData.length,loop:loop,autoFillData:autoFillData});if(onSnapToItem){onSnapToItem(realIndex);}if(onScrollEnd){onScrollEnd(realIndex);}},[loop,autoFillData,rawData.length,getSharedIndex,onSnapToItem,onScrollEnd]);var scrollViewGestureOnScrollBegin=_react.default.useCallback(function(){pauseAutoPlay();_onScrollBegin==null?void 0:_onScrollBegin();},[_onScrollBegin,pauseAutoPlay]);var scrollViewGestureOnScrollEnd=_react.default.useCallback(function(){startAutoPlay();_onScrollEnd();},[_onScrollEnd,startAutoPlay]);var scrollViewGestureOnTouchBegin=_react.default.useCallback(pauseAutoPlay,[pauseAutoPlay]);var scrollViewGestureOnTouchEnd=_react.default.useCallback(startAutoPlay,[startAutoPlay]);_react.default.useImperativeHandle(ref,function(){return{next:next,prev:prev,getCurrentIndex:getCurrentIndex,scrollTo:scrollTo};},[getCurrentIndex,next,prev,scrollTo]);var visibleRanges=(0,_useVisibleRanges.useVisibleRanges)({total: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:170,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:200,columnNumber:13}},_react.default.createElement(_reactNative.View,{style:[styles.container,{width:width||'100%',height:height||'100%'},style],testID:testID,__self:_this,__source:{fileName:_jsxFileName,lineNumber:201,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:209,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:217,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","testID","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","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","startAutoPlay","start","pauseAutoPlay","pause","useCallback","_sharedIndex","Math","round","realIndex","index","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","useImperativeHandle","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","i","animationValue","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["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 testID,\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 data,\n autoFillData,\n handlerOffsetX,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex } =\n carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawData.length,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem) {\n onSnapToItem(realIndex);\n }\n if (onScrollEnd) {\n onScrollEnd(realIndex);\n }\n }, [\n loop,\n autoFillData,\n rawData.length,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo]\n );\n\n const visibleRanges = useVisibleRanges({\n total: 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 testID={testID}\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","testID","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","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","startAutoPlay","start","pauseAutoPlay","pause","useCallback","_sharedIndex","Math","round","realIndex","index","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","useImperativeHandle","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","i","animationValue","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["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 testID,\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 data,\n autoFillData,\n handlerOffsetX,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex } =\n carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawData.length,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem) {\n onSnapToItem(realIndex);\n }\n if (onScrollEnd) {\n onScrollEnd(realIndex);\n }\n }, [\n loop,\n autoFillData,\n rawData.length,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo]\n );\n\n const visibleRanges = useVisibleRanges({\n total: 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 testID={testID}\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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var IScrollViewGesture=function IScrollViewGesture(props){var _React$useContext=_react.default.useContext(_store.CTX),_React$useContext$pro=_React$useContext.props,vertical=_React$useContext$pro.vertical,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/github/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 defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration+100,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,function(){var _f=function _f(isFinished){if(isFinished){onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();}};_f._closure={onFinished:onFinished,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(isFinished){const{onFinished,runOnJS}=jsThis._closure;{if(isFinished){onFinished&&runOnJS(onFinished)();}}}";_f.__workletHash=9122154549195;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (81:16)";global.__reanimatedWorkletInit(_f);return _f;}());};_f._closure={scrollAnimationDuration:scrollAnimationDuration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(toValue,onFinished){const{scrollAnimationDuration,Easing,dealWithAnimation,withAnimation,runOnJS}=jsThis._closure;{var _withAnimation;const defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration+100,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,function(isFinished){'worklet';if(isFinished){onFinished&&runOnJS(onFinished)();}});}}";_f.__workletHash=16303945491727;_f.__location="/Users/zhaodonghao/code/github/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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (93: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (137: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (152: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (147: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (156: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (195: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (196: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (209: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (216: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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (240: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,{width:'100%',height:'100%'}],onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:273,columnNumber:9}},_react.default.createElement(_reactNativeGestureHandler.PanGestureHandler,(0,_extends2.default)({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:282,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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var IScrollViewGesture=function IScrollViewGesture(props){var _React$useContext=_react.default.useContext(_store.CTX),_React$useContext$pro=_React$useContext.props,vertical=_React$useContext$pro.vertical,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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (63:41)";return _f;}(),[vertical]);var touching=(0,_reactNativeReanimated.useSharedValue)(false);var scrollEndTranslation=(0,_reactNativeReanimated.useSharedValue)(0);var scrollEndVelocity=(0,_reactNativeReanimated.useSharedValue)(0);var _withSpring=_react.default.useCallback(function(){var _f=function _f(toValue,onFinished){var defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration+100,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,function(){var _f=function _f(isFinished){if(isFinished){onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();}};_f._closure={onFinished:onFinished,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(isFinished){const{onFinished,runOnJS}=jsThis._closure;{if(isFinished){onFinished&&runOnJS(onFinished)();}}}";_f.__workletHash=9122154549195;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (81:16)";return _f;}());};_f._closure={scrollAnimationDuration:scrollAnimationDuration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation,runOnJS:_reactNativeReanimated.runOnJS};_f.asString="function _f(toValue,onFinished){const{scrollAnimationDuration,Easing,dealWithAnimation,withAnimation,runOnJS}=jsThis._closure;{var _withAnimation;const defaultWithAnimation={type:'timing',config:{duration:scrollAnimationDuration+100,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,function(isFinished){'worklet';if(isFinished){onFinished&&runOnJS(onFinished)();}});}}";_f.__workletHash=16303945491727;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (69:8)";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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (93:8)";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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (137:8)";return _f;}(),[onScrollEnd,touching]);var activeDecay=_react.default.useCallback(function(){var _f=function _f(){touching.value=true;translation.value=(0,_reactNativeReanimated.withDecay)({velocity:scrollEndVelocity.value},function(){var _f=function _f(isFinished){return onFinish(isFinished);};_f._closure={onFinish:onFinish};_f.asString="function _f(isFinished){const{onFinish}=jsThis._closure;{return onFinish(isFinished);}}";_f.__workletHash=12004837605207;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (152:12)";return _f;}());};_f._closure={touching:touching,translation:translation,withDecay:_reactNativeReanimated.withDecay,scrollEndVelocity:scrollEndVelocity,onFinish:onFinish};_f.asString="function _f(){const{touching,translation,withDecay,scrollEndVelocity,onFinish}=jsThis._closure;{touching.value=true;translation.value=withDecay({velocity:scrollEndVelocity.value},function(isFinished){return onFinish(isFinished);});}}";_f.__workletHash=1701548878343;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (147:42)";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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (156:44)";return _f;}(),[touching.value,translation,maxPage,size,scrollEndTranslation.value,infinite,activeDecay,_withSpring]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return translation.value;};_f._closure={translation:translation};_f.asString="function _f(){const{translation}=jsThis._closure;{return translation.value;}}";_f.__workletHash=9829368032147;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (195:8)";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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (196:8)";return _f;}(),[pagingEnabled,resetBoundary]);var panGestureEventHandler=(0,_reactNativeReanimated.useAnimatedGestureHandler)({onStart:function(){var _f=function _f(_,ctx){touching.value=true;ctx.validStart=true;onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(onScrollBegin)();ctx.max=(maxPage-1)*size;ctx.panOffset=translation.value;};_f._closure={touching:touching,onScrollBegin:onScrollBegin,runOnJS:_reactNativeReanimated.runOnJS,maxPage:maxPage,size:size,translation:translation};_f.asString="function _f(_,ctx){const{touching,onScrollBegin,runOnJS,maxPage,size,translation}=jsThis._closure;{touching.value=true;ctx.validStart=true;onScrollBegin&&runOnJS(onScrollBegin)();ctx.max=(maxPage-1)*size;ctx.panOffset=translation.value;}}";_f.__workletHash=1789833551681;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (209:21)";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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (216:22)";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/github/react-native-reanimated-carousel/src/ScrollViewGesture.tsx (240:19)";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,{width:'100%',height:'100%'}],onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,__self:_this,__source:{fileName:_jsxFileName,lineNumber:273,columnNumber:9}},_react.default.createElement(_reactNativeGestureHandler.PanGestureHandler,(0,_extends2.default)({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,__self:_this,__source:{fileName:_jsxFileName,lineNumber:282,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","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","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","isFinished","runOnJS","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","width","height","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 defaultWithAnimation: WithTimingAnimation = {\n type: 'timing',\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n 'worklet';\n if (isFinished) {\n onFinished && runOnJS(onFinished)();\n }\n }\n );\n },\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={[\n styles.container,\n directionStyle,\n { width: '100%', height: '100%' },\n ]}\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","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","isFinished","runOnJS","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","width","height","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 defaultWithAnimation: WithTimingAnimation = {\n type: 'timing',\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n 'worklet';\n if (isFinished) {\n onFinished && runOnJS(onFinished)();\n }\n }\n );\n },\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={[\n styles.container,\n directionStyle,\n { width: '100%', height: '100%' },\n ]}\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.useCarouselController=useCarouselController;var _react=_interopRequireWildcard(require("react"));var _constants=require("../constants");var _reactNativeReanimated=require("react-native-reanimated");var _dealWithAnimation=require("../utils/dealWithAnimation");var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");var _log=require("../utils/log");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function useCarouselController(options){var size=options.size,data=options.data,loop=options.loop,handlerOffsetX=options.handlerOffsetX,withAnimation=options.withAnimation,_options$defaultIndex=options.defaultIndex,defaultIndex=_options$defaultIndex===void 0?0:_options$defaultIndex,duration=options.duration,autoFillData=options.autoFillData;var dataInfo=_react.default.useMemo(function(){return{length:data.length,disable:!data.length,originalLength:data.length};},[data]);var index=(0,_reactNativeReanimated.useSharedValue)(defaultIndex);var sharedIndex=(0,_react.useRef)(defaultIndex);var sharedPreIndex=(0,_react.useRef)(defaultIndex);var currentFixedPage=_react.default.useCallback(function(){if(loop){return-Math.round(handlerOffsetX.value/size);}var fixed=handlerOffsetX.value/size%dataInfo.length;return Math.round(handlerOffsetX.value<=0?Math.abs(fixed):Math.abs(fixed>0?dataInfo.length-fixed:0));},[handlerOffsetX,dataInfo,size,loop]);function setSharedIndex(newSharedIndex){sharedIndex.current=newSharedIndex;}(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){var handlerOffsetXValue=handlerOffsetX.value;var toInt=(0,_log.round)(handlerOffsetXValue/size)%dataInfo.length;var isPositive=handlerOffsetXValue<=0;var i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);var newSharedIndexValue=(0,_computedWithAutoFillData.convertToSharedIndex)({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};};_f._closure={handlerOffsetX:handlerOffsetX,round:_log.round,size:size,dataInfo:dataInfo,convertToSharedIndex:_computedWithAutoFillData.convertToSharedIndex,loop:loop,autoFillData:autoFillData};_f.asString="function _f(){const{handlerOffsetX,round,size,dataInfo,convertToSharedIndex,loop,autoFillData}=jsThis._closure;{const handlerOffsetXValue=handlerOffsetX.value;const toInt=round(handlerOffsetXValue/size)%dataInfo.length;const isPositive=handlerOffsetXValue<=0;const i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);const newSharedIndexValue=convertToSharedIndex({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};}}";_f.__workletHash=14011541648783;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (83:8)";global.__reanimatedWorkletInit(_f);return _f;}(),function(){var _f=function _f(_ref){var i=_ref.i,newSharedIndexValue=_ref.newSharedIndexValue;index.value=i;(0,_reactNativeReanimated.runOnJS)(setSharedIndex)(newSharedIndexValue);};_f._closure={index:index,runOnJS:_reactNativeReanimated.runOnJS,setSharedIndex:setSharedIndex};_f.asString="function _f({i:i,newSharedIndexValue:newSharedIndexValue}){const{index,runOnJS,setSharedIndex}=jsThis._closure;{index.value=i;runOnJS(setSharedIndex)(newSharedIndexValue);}}";_f.__workletHash=16638491076412;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (103:8)";global.__reanimatedWorkletInit(_f);return _f;}(),[sharedPreIndex,sharedIndex,size,dataInfo,index,loop,autoFillData,handlerOffsetX]);var getCurrentIndex=_react.default.useCallback(function(){return index.value;},[index]);var canSliding=_react.default.useCallback(function(){return!dataInfo.disable;},[dataInfo]);var onScrollEnd=_react.default.useCallback(function(){options.onScrollEnd==null?void 0:options.onScrollEnd();},[options]);var onScrollBegin=_react.default.useCallback(function(){options.onScrollBegin==null?void 0:options.onScrollBegin();},[options]);var scrollWithTiming=_react.default.useCallback(function(){var _f=function _f(toValue,onFinished){var callback=function(){var _f=function _f(isFinished){if(isFinished){(0,_reactNativeReanimated.runOnJS)(onScrollEnd)();onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();}};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,onFinished:onFinished};_f.asString="function _f(isFinished){const{runOnJS,onScrollEnd,onFinished}=jsThis._closure;{if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}}}";_f.__workletHash=7767198641261;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (138:29)";global.__reanimatedWorkletInit(_f);return _f;}();var defaultWithAnimation={type:'timing',config:{duration:duration,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,callback);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,duration:duration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation};_f.asString="function _f(toValue,onFinished){const{runOnJS,onScrollEnd,duration,Easing,dealWithAnimation,withAnimation}=jsThis._closure;{var _withAnimation;const callback=function(isFinished){'worklet';if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}};const defaultWithAnimation={type:'timing',config:{duration:duration,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,callback);}}";_f.__workletHash=15006680124176;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (136:8)";global.__reanimatedWorkletInit(_f);return _f;}(),[duration,withAnimation,onScrollEnd]);var next=_react.default.useCallback(function(){var _f=function _f(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count=opts.count,count=_opts$count===void 0?1:_opts$count,_opts$animated=opts.animated,animated=_opts$animated===void 0?true:_opts$animated,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;onScrollBegin==null?void 0:onScrollBegin();var nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffsetX.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffsetX.value=-nextPage*size;onFinished==null?void 0:onFinished();}};_f._closure={canSliding:canSliding,loop:loop,index:index,dataInfo:dataInfo,onScrollBegin:onScrollBegin,currentFixedPage:currentFixedPage,handlerOffsetX:handlerOffsetX,scrollWithTiming:scrollWithTiming,size:size};_f.asString="function _f(opts={}){const{canSliding,loop,index,dataInfo,onScrollBegin,currentFixedPage,handlerOffsetX,scrollWithTiming,size}=jsThis._closure;{var _onScrollBegin;const{count=1,animated=true,onFinished:onFinished}=opts;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;(_onScrollBegin=onScrollBegin)===null||_onScrollBegin===void 0?void 0:_onScrollBegin();const nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffsetX.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffsetX.value=-nextPage*size;onFinished===null||onFinished===void 0?void 0:onFinished();}}}";_f.__workletHash=1734401141936;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (160:8)";global.__reanimatedWorkletInit(_f);return _f;}(),[canSliding,loop,index,dataInfo,onScrollBegin,handlerOffsetX,size,scrollWithTiming,currentFixedPage]);var prev=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count2=opts.count,count=_opts$count2===void 0?1:_opts$count2,_opts$animated2=opts.animated,animated=_opts$animated2===void 0?true:_opts$animated2,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value<=0)return;onScrollBegin==null?void 0:onScrollBegin();var prevPage=currentFixedPage()-count;index.value=prevPage;if(animated){handlerOffsetX.value=scrollWithTiming(-prevPage*size,onFinished);}else{handlerOffsetX.value=-prevPage*size;onFinished==null?void 0:onFinished();}},[canSliding,loop,index,onScrollBegin,handlerOffsetX,size,scrollWithTiming,currentFixedPage]);var to=_react.default.useCallback(function(opts){var i=opts.i,_opts$animated3=opts.animated,animated=_opts$animated3===void 0?false:_opts$animated3,onFinished=opts.onFinished;if(i===index.value)return;if(!canSliding())return;onScrollBegin==null?void 0:onScrollBegin();var offset=handlerOffsetX.value+(index.value-i)*size;if(animated){index.value=i;handlerOffsetX.value=scrollWithTiming(offset,onFinished);}else{handlerOffsetX.value=offset;index.value=i;onFinished==null?void 0:onFinished();}},[index,canSliding,onScrollBegin,handlerOffsetX,size,scrollWithTiming]);var scrollTo=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=opts.index,count=opts.count,_opts$animated4=opts.animated,animated=_opts$animated4===void 0?false:_opts$animated4,onFinished=opts.onFinished;if(typeof i==='number'&&i>-1){to({i:i,animated:animated,onFinished:onFinished});return;}if(!count){return;}var n=Math.round(count);if(n<0){prev({count:Math.abs(n),animated:animated,onFinished:onFinished});}else{next({count:n,animated:animated,onFinished:onFinished});}},[prev,next,to]);return{next:next,prev:prev,scrollTo:scrollTo,getCurrentIndex:getCurrentIndex,getSharedIndex:function getSharedIndex(){return sharedIndex.current;}};}
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.useCarouselController=useCarouselController;var _react=_interopRequireWildcard(require("react"));var _constants=require("../constants");var _reactNativeReanimated=require("react-native-reanimated");var _dealWithAnimation=require("../utils/dealWithAnimation");var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");var _log=require("../utils/log");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function useCarouselController(options){var size=options.size,data=options.data,loop=options.loop,handlerOffsetX=options.handlerOffsetX,withAnimation=options.withAnimation,_options$defaultIndex=options.defaultIndex,defaultIndex=_options$defaultIndex===void 0?0:_options$defaultIndex,duration=options.duration,autoFillData=options.autoFillData;var dataInfo=_react.default.useMemo(function(){return{length:data.length,disable:!data.length,originalLength:data.length};},[data]);var index=(0,_reactNativeReanimated.useSharedValue)(defaultIndex);var sharedIndex=(0,_react.useRef)(defaultIndex);var sharedPreIndex=(0,_react.useRef)(defaultIndex);var currentFixedPage=_react.default.useCallback(function(){if(loop){return-Math.round(handlerOffsetX.value/size);}var fixed=handlerOffsetX.value/size%dataInfo.length;return Math.round(handlerOffsetX.value<=0?Math.abs(fixed):Math.abs(fixed>0?dataInfo.length-fixed:0));},[handlerOffsetX,dataInfo,size,loop]);function setSharedIndex(newSharedIndex){sharedIndex.current=newSharedIndex;}(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){var handlerOffsetXValue=handlerOffsetX.value;var toInt=(0,_log.round)(handlerOffsetXValue/size)%dataInfo.length;var isPositive=handlerOffsetXValue<=0;var i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);var newSharedIndexValue=(0,_computedWithAutoFillData.convertToSharedIndex)({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};};_f._closure={handlerOffsetX:handlerOffsetX,round:_log.round,size:size,dataInfo:dataInfo,convertToSharedIndex:_computedWithAutoFillData.convertToSharedIndex,loop:loop,autoFillData:autoFillData};_f.asString="function _f(){const{handlerOffsetX,round,size,dataInfo,convertToSharedIndex,loop,autoFillData}=jsThis._closure;{const handlerOffsetXValue=handlerOffsetX.value;const toInt=round(handlerOffsetXValue/size)%dataInfo.length;const isPositive=handlerOffsetXValue<=0;const i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);const newSharedIndexValue=convertToSharedIndex({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};}}";_f.__workletHash=14011541648783;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (83:8)";return _f;}(),function(){var _f=function _f(_ref){var i=_ref.i,newSharedIndexValue=_ref.newSharedIndexValue;index.value=i;(0,_reactNativeReanimated.runOnJS)(setSharedIndex)(newSharedIndexValue);};_f._closure={index:index,runOnJS:_reactNativeReanimated.runOnJS,setSharedIndex:setSharedIndex};_f.asString="function _f({i:i,newSharedIndexValue:newSharedIndexValue}){const{index,runOnJS,setSharedIndex}=jsThis._closure;{index.value=i;runOnJS(setSharedIndex)(newSharedIndexValue);}}";_f.__workletHash=16638491076412;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (103:8)";return _f;}(),[sharedPreIndex,sharedIndex,size,dataInfo,index,loop,autoFillData,handlerOffsetX]);var getCurrentIndex=_react.default.useCallback(function(){return index.value;},[index]);var canSliding=_react.default.useCallback(function(){return!dataInfo.disable;},[dataInfo]);var onScrollEnd=_react.default.useCallback(function(){options.onScrollEnd==null?void 0:options.onScrollEnd();},[options]);var onScrollBegin=_react.default.useCallback(function(){options.onScrollBegin==null?void 0:options.onScrollBegin();},[options]);var scrollWithTiming=_react.default.useCallback(function(){var _f=function _f(toValue,onFinished){var callback=function(){var _f=function _f(isFinished){if(isFinished){(0,_reactNativeReanimated.runOnJS)(onScrollEnd)();onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();}};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,onFinished:onFinished};_f.asString="function _f(isFinished){const{runOnJS,onScrollEnd,onFinished}=jsThis._closure;{if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}}}";_f.__workletHash=7767198641261;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (138:29)";return _f;}();var defaultWithAnimation={type:'timing',config:{duration:duration,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,callback);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,duration:duration,Easing:{easeOutQuart:_constants.Easing.easeOutQuart},dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation};_f.asString="function _f(toValue,onFinished){const{runOnJS,onScrollEnd,duration,Easing,dealWithAnimation,withAnimation}=jsThis._closure;{var _withAnimation;const callback=function(isFinished){'worklet';if(isFinished){runOnJS(onScrollEnd)();onFinished&&runOnJS(onFinished)();}};const defaultWithAnimation={type:'timing',config:{duration:duration,easing:Easing.easeOutQuart}};return dealWithAnimation((_withAnimation=withAnimation)!==null&&_withAnimation!==void 0?_withAnimation:defaultWithAnimation)(toValue,callback);}}";_f.__workletHash=15006680124176;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (136:8)";return _f;}(),[duration,withAnimation,onScrollEnd]);var next=_react.default.useCallback(function(){var _f=function _f(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count=opts.count,count=_opts$count===void 0?1:_opts$count,_opts$animated=opts.animated,animated=_opts$animated===void 0?true:_opts$animated,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;onScrollBegin==null?void 0:onScrollBegin();var nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffsetX.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffsetX.value=-nextPage*size;onFinished==null?void 0:onFinished();}};_f._closure={canSliding:canSliding,loop:loop,index:index,dataInfo:dataInfo,onScrollBegin:onScrollBegin,currentFixedPage:currentFixedPage,handlerOffsetX:handlerOffsetX,scrollWithTiming:scrollWithTiming,size:size};_f.asString="function _f(opts={}){const{canSliding,loop,index,dataInfo,onScrollBegin,currentFixedPage,handlerOffsetX,scrollWithTiming,size}=jsThis._closure;{var _onScrollBegin;const{count=1,animated=true,onFinished:onFinished}=opts;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;(_onScrollBegin=onScrollBegin)===null||_onScrollBegin===void 0?void 0:_onScrollBegin();const nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffsetX.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffsetX.value=-nextPage*size;onFinished===null||onFinished===void 0?void 0:onFinished();}}}";_f.__workletHash=1734401141936;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx (160:8)";return _f;}(),[canSliding,loop,index,dataInfo,onScrollBegin,handlerOffsetX,size,scrollWithTiming,currentFixedPage]);var prev=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count2=opts.count,count=_opts$count2===void 0?1:_opts$count2,_opts$animated2=opts.animated,animated=_opts$animated2===void 0?true:_opts$animated2,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value<=0)return;onScrollBegin==null?void 0:onScrollBegin();var prevPage=currentFixedPage()-count;index.value=prevPage;if(animated){handlerOffsetX.value=scrollWithTiming(-prevPage*size,onFinished);}else{handlerOffsetX.value=-prevPage*size;onFinished==null?void 0:onFinished();}},[canSliding,loop,index,onScrollBegin,handlerOffsetX,size,scrollWithTiming,currentFixedPage]);var to=_react.default.useCallback(function(opts){var i=opts.i,_opts$animated3=opts.animated,animated=_opts$animated3===void 0?false:_opts$animated3,onFinished=opts.onFinished;if(i===index.value)return;if(!canSliding())return;onScrollBegin==null?void 0:onScrollBegin();var offset=handlerOffsetX.value+(index.value-i)*size;if(animated){index.value=i;handlerOffsetX.value=scrollWithTiming(offset,onFinished);}else{handlerOffsetX.value=offset;index.value=i;onFinished==null?void 0:onFinished();}},[index,canSliding,onScrollBegin,handlerOffsetX,size,scrollWithTiming]);var scrollTo=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=opts.index,count=opts.count,_opts$animated4=opts.animated,animated=_opts$animated4===void 0?false:_opts$animated4,onFinished=opts.onFinished;if(typeof i==='number'&&i>-1){to({i:i,animated:animated,onFinished:onFinished});return;}if(!count){return;}var n=Math.round(count);if(n<0){prev({count:Math.abs(n),animated:animated,onFinished:onFinished});}else{next({count:n,animated:animated,onFinished:onFinished});}},[prev,next,to]);return{next:next,prev:prev,scrollTo:scrollTo,getCurrentIndex:getCurrentIndex,getSharedIndex:function getSharedIndex(){return sharedIndex.current;}};}
|
|
2
2
|
//# sourceMappingURL=useCarouselController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCarouselController.tsx"],"names":["useCarouselController","options","size","data","loop","handlerOffsetX","withAnimation","defaultIndex","duration","autoFillData","dataInfo","React","useMemo","length","disable","originalLength","index","sharedIndex","sharedPreIndex","currentFixedPage","useCallback","Math","round","value","fixed","abs","setSharedIndex","newSharedIndex","current","handlerOffsetXValue","toInt","isPositive","i","newSharedIndexValue","rawDataLength","convertToSharedIndex","runOnJS","getCurrentIndex","canSliding","onScrollEnd","onScrollBegin","scrollWithTiming","toValue","onFinished","callback","isFinished","defaultWithAnimation","type","config","easing","Easing","easeOutQuart","dealWithAnimation","next","opts","count","animated","nextPage","prev","prevPage","to","offset","scrollTo","n","getSharedIndex"],"mappings":"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","sourcesContent":["import React, { useRef } from 'react';\nimport type Animated from 'react-native-reanimated';\nimport { Easing } from '../constants';\nimport {\n runOnJS,\n useAnimatedReaction,\n useSharedValue,\n} from 'react-native-reanimated';\nimport type {\n TCarouselActionOptions,\n TCarouselProps,\n WithTimingAnimation,\n} from '../types';\nimport { dealWithAnimation } from '@/utils/dealWithAnimation';\nimport { convertToSharedIndex } from '@/utils/computedWithAutoFillData';\nimport { round } from '@/utils/log';\n\ninterface IOpts {\n loop: boolean;\n size: number;\n data: TCarouselProps['data'];\n autoFillData: TCarouselProps['autoFillData'];\n handlerOffsetX: Animated.SharedValue<number>;\n withAnimation?: TCarouselProps['withAnimation'];\n duration?: number;\n defaultIndex?: number;\n onScrollBegin?: () => void;\n onScrollEnd?: () => void;\n}\n\nexport interface ICarouselController {\n getSharedIndex: () => number;\n prev: (opts?: TCarouselActionOptions) => void;\n next: (opts?: TCarouselActionOptions) => void;\n getCurrentIndex: () => number;\n scrollTo: (opts?: TCarouselActionOptions) => void;\n}\n\nexport function useCarouselController(options: IOpts): ICarouselController {\n const {\n size,\n data,\n loop,\n handlerOffsetX,\n withAnimation,\n defaultIndex = 0,\n duration,\n autoFillData,\n } = options;\n\n const dataInfo = React.useMemo(\n () => ({\n length: data.length,\n disable: !data.length,\n originalLength: data.length,\n }),\n [data]\n );\n\n const index = useSharedValue<number>(defaultIndex);\n // The Index displayed to the user\n const sharedIndex = useRef<number>(defaultIndex);\n const sharedPreIndex = useRef<number>(defaultIndex);\n\n const currentFixedPage = React.useCallback(() => {\n if (loop) {\n return -Math.round(handlerOffsetX.value / size);\n }\n\n const fixed = (handlerOffsetX.value / size) % dataInfo.length;\n return Math.round(\n handlerOffsetX.value <= 0\n ? Math.abs(fixed)\n : Math.abs(fixed > 0 ? dataInfo.length - fixed : 0)\n );\n }, [handlerOffsetX, dataInfo, size, loop]);\n\n function setSharedIndex(newSharedIndex: number) {\n sharedIndex.current = newSharedIndex;\n }\n\n useAnimatedReaction(\n () => {\n const handlerOffsetXValue = handlerOffsetX.value;\n const toInt = round(handlerOffsetXValue / size) % dataInfo.length;\n const isPositive = handlerOffsetXValue <= 0;\n const i = isPositive\n ? Math.abs(toInt)\n : Math.abs(toInt > 0 ? dataInfo.length - toInt : 0);\n\n const newSharedIndexValue = convertToSharedIndex({\n loop,\n rawDataLength: dataInfo.originalLength,\n autoFillData: autoFillData!,\n index: i,\n });\n\n return {\n i,\n newSharedIndexValue,\n };\n },\n ({ i, newSharedIndexValue }) => {\n index.value = i;\n runOnJS(setSharedIndex)(newSharedIndexValue);\n },\n [\n sharedPreIndex,\n sharedIndex,\n size,\n dataInfo,\n index,\n loop,\n autoFillData,\n handlerOffsetX,\n ]\n );\n\n const getCurrentIndex = React.useCallback(() => {\n return index.value;\n }, [index]);\n\n const canSliding = React.useCallback(() => {\n return !dataInfo.disable;\n }, [dataInfo]);\n\n const onScrollEnd = React.useCallback(() => {\n options.onScrollEnd?.();\n }, [options]);\n\n const onScrollBegin = React.useCallback(() => {\n options.onScrollBegin?.();\n }, [options]);\n\n const scrollWithTiming = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n 'worklet';\n const callback = (isFinished: boolean) => {\n 'worklet';\n if (isFinished) {\n runOnJS(onScrollEnd)();\n onFinished && runOnJS(onFinished)();\n }\n };\n\n const defaultWithAnimation: WithTimingAnimation = {\n type: 'timing',\n config: { duration, easing: Easing.easeOutQuart },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n callback\n );\n },\n [duration, withAnimation, onScrollEnd]\n );\n\n const next = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n 'worklet';\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value >= dataInfo.length - 1))\n return;\n\n onScrollBegin?.();\n\n const nextPage = currentFixedPage() + count;\n index.value = nextPage;\n\n if (animated) {\n handlerOffsetX.value = scrollWithTiming(\n -nextPage * size,\n onFinished\n ) as any;\n } else {\n handlerOffsetX.value = -nextPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n dataInfo,\n onScrollBegin,\n handlerOffsetX,\n size,\n scrollWithTiming,\n currentFixedPage,\n ]\n );\n\n const prev = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value <= 0)) return;\n\n onScrollBegin?.();\n\n const prevPage = currentFixedPage() - count;\n index.value = prevPage;\n\n if (animated) {\n handlerOffsetX.value = scrollWithTiming(\n -prevPage * size,\n onFinished\n );\n } else {\n handlerOffsetX.value = -prevPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n onScrollBegin,\n handlerOffsetX,\n size,\n scrollWithTiming,\n currentFixedPage,\n ]\n );\n\n const to = React.useCallback(\n (opts: { i: number; animated: boolean; onFinished?: () => void }) => {\n const { i, animated = false, onFinished } = opts;\n if (i === index.value) return;\n if (!canSliding()) return;\n\n onScrollBegin?.();\n\n const offset = handlerOffsetX.value + (index.value - i) * size;\n\n if (animated) {\n index.value = i;\n handlerOffsetX.value = scrollWithTiming(offset, onFinished);\n } else {\n handlerOffsetX.value = offset;\n index.value = i;\n onFinished?.();\n }\n },\n [\n index,\n canSliding,\n onScrollBegin,\n handlerOffsetX,\n size,\n scrollWithTiming,\n ]\n );\n\n const scrollTo = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { index: i, count, animated = false, onFinished } = opts;\n\n if (typeof i === 'number' && i > -1) {\n to({ i, animated, onFinished });\n return;\n }\n\n if (!count) {\n return;\n }\n\n const n = Math.round(count);\n\n if (n < 0) {\n prev({ count: Math.abs(n), animated, onFinished });\n } else {\n next({ count: n, animated, onFinished });\n }\n },\n [prev, next, to]\n );\n\n return {\n next,\n prev,\n scrollTo,\n getCurrentIndex,\n getSharedIndex: () => sharedIndex.current,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["useCarouselController.tsx"],"names":["useCarouselController","options","size","data","loop","handlerOffsetX","withAnimation","defaultIndex","duration","autoFillData","dataInfo","React","useMemo","length","disable","originalLength","index","sharedIndex","sharedPreIndex","currentFixedPage","useCallback","Math","round","value","fixed","abs","setSharedIndex","newSharedIndex","current","handlerOffsetXValue","toInt","isPositive","i","newSharedIndexValue","rawDataLength","convertToSharedIndex","runOnJS","getCurrentIndex","canSliding","onScrollEnd","onScrollBegin","scrollWithTiming","toValue","onFinished","callback","isFinished","defaultWithAnimation","type","config","easing","Easing","easeOutQuart","dealWithAnimation","next","opts","count","animated","nextPage","prev","prevPage","to","offset","scrollTo","n","getSharedIndex"],"mappings":"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","sourcesContent":["import React, { useRef } from 'react';\nimport type Animated from 'react-native-reanimated';\nimport { Easing } from '../constants';\nimport {\n runOnJS,\n useAnimatedReaction,\n useSharedValue,\n} from 'react-native-reanimated';\nimport type {\n TCarouselActionOptions,\n TCarouselProps,\n WithTimingAnimation,\n} from '../types';\nimport { dealWithAnimation } from '@/utils/dealWithAnimation';\nimport { convertToSharedIndex } from '@/utils/computedWithAutoFillData';\nimport { round } from '@/utils/log';\n\ninterface IOpts {\n loop: boolean;\n size: number;\n data: TCarouselProps['data'];\n autoFillData: TCarouselProps['autoFillData'];\n handlerOffsetX: Animated.SharedValue<number>;\n withAnimation?: TCarouselProps['withAnimation'];\n duration?: number;\n defaultIndex?: number;\n onScrollBegin?: () => void;\n onScrollEnd?: () => void;\n}\n\nexport interface ICarouselController {\n getSharedIndex: () => number;\n prev: (opts?: TCarouselActionOptions) => void;\n next: (opts?: TCarouselActionOptions) => void;\n getCurrentIndex: () => number;\n scrollTo: (opts?: TCarouselActionOptions) => void;\n}\n\nexport function useCarouselController(options: IOpts): ICarouselController {\n const {\n size,\n data,\n loop,\n handlerOffsetX,\n withAnimation,\n defaultIndex = 0,\n duration,\n autoFillData,\n } = options;\n\n const dataInfo = React.useMemo(\n () => ({\n length: data.length,\n disable: !data.length,\n originalLength: data.length,\n }),\n [data]\n );\n\n const index = useSharedValue<number>(defaultIndex);\n // The Index displayed to the user\n const sharedIndex = useRef<number>(defaultIndex);\n const sharedPreIndex = useRef<number>(defaultIndex);\n\n const currentFixedPage = React.useCallback(() => {\n if (loop) {\n return -Math.round(handlerOffsetX.value / size);\n }\n\n const fixed = (handlerOffsetX.value / size) % dataInfo.length;\n return Math.round(\n handlerOffsetX.value <= 0\n ? Math.abs(fixed)\n : Math.abs(fixed > 0 ? dataInfo.length - fixed : 0)\n );\n }, [handlerOffsetX, dataInfo, size, loop]);\n\n function setSharedIndex(newSharedIndex: number) {\n sharedIndex.current = newSharedIndex;\n }\n\n useAnimatedReaction(\n () => {\n const handlerOffsetXValue = handlerOffsetX.value;\n const toInt = round(handlerOffsetXValue / size) % dataInfo.length;\n const isPositive = handlerOffsetXValue <= 0;\n const i = isPositive\n ? Math.abs(toInt)\n : Math.abs(toInt > 0 ? dataInfo.length - toInt : 0);\n\n const newSharedIndexValue = convertToSharedIndex({\n loop,\n rawDataLength: dataInfo.originalLength,\n autoFillData: autoFillData!,\n index: i,\n });\n\n return {\n i,\n newSharedIndexValue,\n };\n },\n ({ i, newSharedIndexValue }) => {\n index.value = i;\n runOnJS(setSharedIndex)(newSharedIndexValue);\n },\n [\n sharedPreIndex,\n sharedIndex,\n size,\n dataInfo,\n index,\n loop,\n autoFillData,\n handlerOffsetX,\n ]\n );\n\n const getCurrentIndex = React.useCallback(() => {\n return index.value;\n }, [index]);\n\n const canSliding = React.useCallback(() => {\n return !dataInfo.disable;\n }, [dataInfo]);\n\n const onScrollEnd = React.useCallback(() => {\n options.onScrollEnd?.();\n }, [options]);\n\n const onScrollBegin = React.useCallback(() => {\n options.onScrollBegin?.();\n }, [options]);\n\n const scrollWithTiming = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n 'worklet';\n const callback = (isFinished: boolean) => {\n 'worklet';\n if (isFinished) {\n runOnJS(onScrollEnd)();\n onFinished && runOnJS(onFinished)();\n }\n };\n\n const defaultWithAnimation: WithTimingAnimation = {\n type: 'timing',\n config: { duration, easing: Easing.easeOutQuart },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n callback\n );\n },\n [duration, withAnimation, onScrollEnd]\n );\n\n const next = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n 'worklet';\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value >= dataInfo.length - 1))\n return;\n\n onScrollBegin?.();\n\n const nextPage = currentFixedPage() + count;\n index.value = nextPage;\n\n if (animated) {\n handlerOffsetX.value = scrollWithTiming(\n -nextPage * size,\n onFinished\n ) as any;\n } else {\n handlerOffsetX.value = -nextPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n dataInfo,\n onScrollBegin,\n handlerOffsetX,\n size,\n scrollWithTiming,\n currentFixedPage,\n ]\n );\n\n const prev = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value <= 0)) return;\n\n onScrollBegin?.();\n\n const prevPage = currentFixedPage() - count;\n index.value = prevPage;\n\n if (animated) {\n handlerOffsetX.value = scrollWithTiming(\n -prevPage * size,\n onFinished\n );\n } else {\n handlerOffsetX.value = -prevPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n onScrollBegin,\n handlerOffsetX,\n size,\n scrollWithTiming,\n currentFixedPage,\n ]\n );\n\n const to = React.useCallback(\n (opts: { i: number; animated: boolean; onFinished?: () => void }) => {\n const { i, animated = false, onFinished } = opts;\n if (i === index.value) return;\n if (!canSliding()) return;\n\n onScrollBegin?.();\n\n const offset = handlerOffsetX.value + (index.value - i) * size;\n\n if (animated) {\n index.value = i;\n handlerOffsetX.value = scrollWithTiming(offset, onFinished);\n } else {\n handlerOffsetX.value = offset;\n index.value = i;\n onFinished?.();\n }\n },\n [\n index,\n canSliding,\n onScrollBegin,\n handlerOffsetX,\n size,\n scrollWithTiming,\n ]\n );\n\n const scrollTo = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { index: i, count, animated = false, onFinished } = opts;\n\n if (typeof i === 'number' && i > -1) {\n to({ i, animated, onFinished });\n return;\n }\n\n if (!count) {\n return;\n }\n\n const n = Math.round(count);\n\n if (n < 0) {\n prev({ count: Math.abs(n), animated, onFinished });\n } else {\n next({ count: n, animated, onFinished });\n }\n },\n [prev, next, to]\n );\n\n return {\n next,\n prev,\n scrollTo,\n getCurrentIndex,\n getSharedIndex: () => sharedIndex.current,\n };\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.useOffsetX=void 0;var _reactNativeReanimated=require("react-native-reanimated");var useOffsetX=function useOffsetX(opts,visibleRanges){var handlerOffsetX=opts.handlerOffsetX,index=opts.index,size=opts.size,loop=opts.loop,data=opts.data,_opts$type=opts.type,type=_opts$type===void 0?'positive':_opts$type,_opts$viewCount=opts.viewCount,viewCount=_opts$viewCount===void 0?Math.round((data.length-1)/2):_opts$viewCount;var ITEM_LENGTH=data.length;var VALID_LENGTH=ITEM_LENGTH-1;var TOTAL_WIDTH=size*ITEM_LENGTH;var HALF_WIDTH=0.5*size;var positiveCount=type==='positive'?viewCount:VALID_LENGTH-viewCount;var startPos=size*index;if(index>positiveCount){startPos=(index-ITEM_LENGTH)*size;}var MAX=positiveCount*size;var MIN=-((VALID_LENGTH-positiveCount)*size);var x=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var _visibleRanges$value=visibleRanges.value,negativeRange=_visibleRanges$value.negativeRange,positiveRange=_visibleRanges$value.positiveRange;if((index<negativeRange[0]||index>negativeRange[1])&&(index<positiveRange[0]||index>positiveRange[1])){return Number.MAX_SAFE_INTEGER;}if(loop){var inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];var outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return(0,_reactNativeReanimated.interpolate)(handlerOffsetX.value,inputRange,outputRange,_reactNativeReanimated.Extrapolate.CLAMP);}return handlerOffsetX.value+size*index;};_f._closure={visibleRanges:visibleRanges,index:index,loop:loop,TOTAL_WIDTH:TOTAL_WIDTH,MIN:MIN,HALF_WIDTH:HALF_WIDTH,startPos:startPos,MAX:MAX,interpolate:_reactNativeReanimated.interpolate,handlerOffsetX:handlerOffsetX,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP},size:size};_f.asString="function _f(){const{visibleRanges,index,loop,TOTAL_WIDTH,MIN,HALF_WIDTH,startPos,MAX,interpolate,handlerOffsetX,Extrapolate,size}=jsThis._closure;{const{negativeRange:negativeRange,positiveRange:positiveRange}=visibleRanges.value;if((index<negativeRange[0]||index>negativeRange[1])&&(index<positiveRange[0]||index>positiveRange[1])){return Number.MAX_SAFE_INTEGER;}if(loop){const inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];const outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return interpolate(handlerOffsetX.value,inputRange,outputRange,Extrapolate.CLAMP);}return handlerOffsetX.value+size*index;}}";_f.__workletHash=12723241758918;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useOffsetX.ts (45:30)";
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.useOffsetX=void 0;var _reactNativeReanimated=require("react-native-reanimated");var useOffsetX=function useOffsetX(opts,visibleRanges){var handlerOffsetX=opts.handlerOffsetX,index=opts.index,size=opts.size,loop=opts.loop,data=opts.data,_opts$type=opts.type,type=_opts$type===void 0?'positive':_opts$type,_opts$viewCount=opts.viewCount,viewCount=_opts$viewCount===void 0?Math.round((data.length-1)/2):_opts$viewCount;var ITEM_LENGTH=data.length;var VALID_LENGTH=ITEM_LENGTH-1;var TOTAL_WIDTH=size*ITEM_LENGTH;var HALF_WIDTH=0.5*size;var positiveCount=type==='positive'?viewCount:VALID_LENGTH-viewCount;var startPos=size*index;if(index>positiveCount){startPos=(index-ITEM_LENGTH)*size;}var MAX=positiveCount*size;var MIN=-((VALID_LENGTH-positiveCount)*size);var x=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var _visibleRanges$value=visibleRanges.value,negativeRange=_visibleRanges$value.negativeRange,positiveRange=_visibleRanges$value.positiveRange;if((index<negativeRange[0]||index>negativeRange[1])&&(index<positiveRange[0]||index>positiveRange[1])){return Number.MAX_SAFE_INTEGER;}if(loop){var inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];var outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return(0,_reactNativeReanimated.interpolate)(handlerOffsetX.value,inputRange,outputRange,_reactNativeReanimated.Extrapolate.CLAMP);}return handlerOffsetX.value+size*index;};_f._closure={visibleRanges:visibleRanges,index:index,loop:loop,TOTAL_WIDTH:TOTAL_WIDTH,MIN:MIN,HALF_WIDTH:HALF_WIDTH,startPos:startPos,MAX:MAX,interpolate:_reactNativeReanimated.interpolate,handlerOffsetX:handlerOffsetX,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP},size:size};_f.asString="function _f(){const{visibleRanges,index,loop,TOTAL_WIDTH,MIN,HALF_WIDTH,startPos,MAX,interpolate,handlerOffsetX,Extrapolate,size}=jsThis._closure;{const{negativeRange:negativeRange,positiveRange:positiveRange}=visibleRanges.value;if((index<negativeRange[0]||index>negativeRange[1])&&(index<positiveRange[0]||index>positiveRange[1])){return Number.MAX_SAFE_INTEGER;}if(loop){const inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];const outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return interpolate(handlerOffsetX.value,inputRange,outputRange,Extrapolate.CLAMP);}return handlerOffsetX.value+size*index;}}";_f.__workletHash=12723241758918;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useOffsetX.ts (45:30)";return _f;}(),[loop,data,viewCount,type,size,visibleRanges]);return x;};exports.useOffsetX=useOffsetX;
|
|
2
2
|
//# sourceMappingURL=useOffsetX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useOffsetX.ts"],"names":["useOffsetX","opts","visibleRanges","handlerOffsetX","index","size","loop","data","type","viewCount","Math","round","length","ITEM_LENGTH","VALID_LENGTH","TOTAL_WIDTH","HALF_WIDTH","positiveCount","startPos","MAX","MIN","x","value","negativeRange","positiveRange","Number","MAX_SAFE_INTEGER","inputRange","MIN_VALUE","outputRange","Extrapolate","CLAMP","interpolate"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["useOffsetX.ts"],"names":["useOffsetX","opts","visibleRanges","handlerOffsetX","index","size","loop","data","type","viewCount","Math","round","length","ITEM_LENGTH","VALID_LENGTH","TOTAL_WIDTH","HALF_WIDTH","positiveCount","startPos","MAX","MIN","x","value","negativeRange","positiveRange","Number","MAX_SAFE_INTEGER","inputRange","MIN_VALUE","outputRange","Extrapolate","CLAMP","interpolate"],"mappings":"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","sourcesContent":["import Animated, {\n Extrapolate,\n interpolate,\n useDerivedValue,\n} from 'react-native-reanimated';\nimport type { IVisibleRanges } from './useVisibleRanges';\n\nexport interface IOpts {\n index: number;\n size: number;\n handlerOffsetX: Animated.SharedValue<number>;\n data: unknown[];\n type?: 'positive' | 'negative';\n viewCount?: number;\n loop?: boolean;\n}\n\nexport const useOffsetX = (opts: IOpts, visibleRanges: IVisibleRanges) => {\n const {\n handlerOffsetX,\n index,\n size,\n loop,\n data,\n type = 'positive',\n viewCount = Math.round((data.length - 1) / 2),\n } = opts;\n\n const ITEM_LENGTH = data.length;\n const VALID_LENGTH = ITEM_LENGTH - 1;\n const TOTAL_WIDTH = size * ITEM_LENGTH;\n const HALF_WIDTH = 0.5 * size;\n\n const positiveCount =\n type === 'positive' ? viewCount : VALID_LENGTH - viewCount;\n\n let startPos = size * index;\n if (index > positiveCount) {\n startPos = (index - ITEM_LENGTH) * size;\n }\n\n const MAX = positiveCount * size;\n const MIN = -((VALID_LENGTH - positiveCount) * size);\n\n const x = useDerivedValue(() => {\n const { negativeRange, positiveRange } = visibleRanges.value;\n if (\n (index < negativeRange[0] || index > negativeRange[1]) &&\n (index < positiveRange[0] || index > positiveRange[1])\n ) {\n return Number.MAX_SAFE_INTEGER;\n }\n\n if (loop) {\n const inputRange = [\n -TOTAL_WIDTH,\n MIN - HALF_WIDTH - startPos - Number.MIN_VALUE,\n MIN - HALF_WIDTH - startPos,\n 0,\n MAX + HALF_WIDTH - startPos,\n MAX + HALF_WIDTH - startPos + Number.MIN_VALUE,\n TOTAL_WIDTH,\n ];\n\n const outputRange = [\n startPos,\n MAX + HALF_WIDTH - Number.MIN_VALUE,\n MIN - HALF_WIDTH,\n startPos,\n MAX + HALF_WIDTH,\n MIN - HALF_WIDTH + Number.MIN_VALUE,\n startPos,\n ];\n\n return interpolate(\n handlerOffsetX.value,\n inputRange,\n outputRange,\n Extrapolate.CLAMP\n );\n }\n\n return handlerOffsetX.value + size * index;\n }, [loop, data, viewCount, type, size, visibleRanges]);\n\n return x;\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
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/github/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts (23:8)";
|
|
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/github/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts (23:8)";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/github/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts (24:8)";return _f;}(),[loop,autoFillData,rawDataLength,onProgressChange]);}
|
|
2
2
|
//# sourceMappingURL=useOnProgressChange.js.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,0RAEKO,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,qsBA2BI,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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.useVisibleRanges=useVisibleRanges;var _reactNativeReanimated=require("react-native-reanimated");function useVisibleRanges(options){var _options$total=options.total,total=_options$total===void 0?0:_options$total,viewSize=options.viewSize,translation=options.translation,_options$windowSize=options.windowSize,_windowSize=_options$windowSize===void 0?0:_options$windowSize;var windowSize=total<=_windowSize?total:_windowSize;var ranges=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var positiveCount=Math.round(windowSize/2);var negativeCount=windowSize-positiveCount;var curIndex=Math.round(-translation.value/viewSize);curIndex=curIndex<0?curIndex%total+total:curIndex;var negativeRange=[(curIndex-negativeCount+total)%total,(curIndex-1+total)%total];var positiveRange=[(curIndex+total)%total,(curIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};};_f._closure={windowSize:windowSize,translation:translation,viewSize:viewSize,total:total};_f.asString="function _f(){const{windowSize,translation,viewSize,total}=jsThis._closure;{const positiveCount=Math.round(windowSize/2);const negativeCount=windowSize-positiveCount;let curIndex=Math.round(-translation.value/viewSize);curIndex=curIndex<0?curIndex%total+total:curIndex;const negativeRange=[(curIndex-negativeCount+total)%total,(curIndex-1+total)%total];const positiveRange=[(curIndex+total)%total,(curIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};}}";_f.__workletHash=15212293827170;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx (24:35)";
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.useVisibleRanges=useVisibleRanges;var _reactNativeReanimated=require("react-native-reanimated");function useVisibleRanges(options){var _options$total=options.total,total=_options$total===void 0?0:_options$total,viewSize=options.viewSize,translation=options.translation,_options$windowSize=options.windowSize,_windowSize=_options$windowSize===void 0?0:_options$windowSize;var windowSize=total<=_windowSize?total:_windowSize;var ranges=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){var positiveCount=Math.round(windowSize/2);var negativeCount=windowSize-positiveCount;var curIndex=Math.round(-translation.value/viewSize);curIndex=curIndex<0?curIndex%total+total:curIndex;var negativeRange=[(curIndex-negativeCount+total)%total,(curIndex-1+total)%total];var positiveRange=[(curIndex+total)%total,(curIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};};_f._closure={windowSize:windowSize,translation:translation,viewSize:viewSize,total:total};_f.asString="function _f(){const{windowSize,translation,viewSize,total}=jsThis._closure;{const positiveCount=Math.round(windowSize/2);const negativeCount=windowSize-positiveCount;let curIndex=Math.round(-translation.value/viewSize);curIndex=curIndex<0?curIndex%total+total:curIndex;const negativeRange=[(curIndex-negativeCount+total)%total,(curIndex-1+total)%total];const positiveRange=[(curIndex+total)%total,(curIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};}}";_f.__workletHash=15212293827170;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx (24:35)";return _f;}(),[total,windowSize,translation]);return ranges;}
|
|
2
2
|
//# sourceMappingURL=useVisibleRanges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useVisibleRanges.tsx"],"names":["useVisibleRanges","options","total","viewSize","translation","windowSize","_windowSize","ranges","positiveCount","Math","round","negativeCount","curIndex","value","negativeRange","positiveRange"],"mappings":"mGACA,8DAOO,QAASA,CAAAA,gBAAT,CAA0BC,OAA1B,CAKY,CACf,mBAKIA,OALJ,CACIC,KADJ,CACIA,KADJ,yBACY,CADZ,gBAEIC,QAFJ,CAKIF,OALJ,CAEIE,QAFJ,CAGIC,WAHJ,CAKIH,OALJ,CAGIG,WAHJ,qBAKIH,OALJ,CAIII,UAJJ,CAIgBC,WAJhB,8BAI8B,CAJ9B,qBAOA,GAAMD,CAAAA,UAAU,CAAGH,KAAK,EAAII,WAAT,CAAuBJ,KAAvB,CAA+BI,WAAlD,CAEA,GAAMC,CAAAA,MAAM,CAAG,0EAAsB,CACjC,GAAMC,CAAAA,aAAa,CAAGC,IAAI,CAACC,KAAL,CAAWL,UAAU,CAAG,CAAxB,CAAtB,CACA,GAAMM,CAAAA,aAAa,CAAGN,UAAU,CAAGG,aAAnC,CACA,GAAII,CAAAA,QAAQ,CAAGH,IAAI,CAACC,KAAL,CAAW,CAACN,WAAW,CAACS,KAAb,CAAqBV,QAAhC,CAAf,CACAS,QAAQ,CAAGA,QAAQ,CAAG,CAAX,CAAgBA,QAAQ,CAAGV,KAAZ,CAAqBA,KAApC,CAA4CU,QAAvD,CACA,GAAME,CAAAA,aAAa,CAAG,CAClB,CAACF,QAAQ,CAAGD,aAAX,CAA2BT,KAA5B,EAAqCA,KADnB,CAElB,CAACU,QAAQ,CAAG,CAAX,CAAeV,KAAhB,EAAyBA,KAFP,CAAtB,CAIA,GAAMa,CAAAA,aAAa,CAAG,CAClB,CAACH,QAAQ,CAAGV,KAAZ,EAAqBA,KADH,CAElB,CAACU,QAAQ,CAAGJ,aAAX,CAA2BN,KAA5B,EAAqCA,KAFnB,CAAtB,CAIA,GAAIY,aAAa,CAAC,CAAD,CAAb,CAAmBZ,KAAnB,EAA4BY,aAAa,CAAC,CAAD,CAAb,CAAmBA,aAAa,CAAC,CAAD,CAAhE,CAAqE,CACjEA,aAAa,CAAC,CAAD,CAAb,CAAmBZ,KAAK,CAAG,CAA3B,CACAa,aAAa,CAAC,CAAD,CAAb,CAAmB,CAAnB,CACH,CACD,GAAIA,aAAa,CAAC,CAAD,CAAb,CAAmBA,aAAa,CAAC,CAAD,CAApC,CAAyC,CACrCD,aAAa,CAAC,CAAD,CAAb,CAAmBZ,KAAK,CAAG,CAA3B,CACAa,aAAa,CAAC,CAAD,CAAb,CAAmB,CAAnB,CACH,CACD,MAAO,CAAED,aAAa,CAAbA,aAAF,CAAiBC,aAAa,CAAbA,aAAjB,CAAP,CACH,CAtBc,yBApBKV,UAoBL,aAnBUD,WAmBV,UAnB8BD,QAmB9B,OARID,KAQJ,
|
|
1
|
+
{"version":3,"sources":["useVisibleRanges.tsx"],"names":["useVisibleRanges","options","total","viewSize","translation","windowSize","_windowSize","ranges","positiveCount","Math","round","negativeCount","curIndex","value","negativeRange","positiveRange"],"mappings":"mGACA,8DAOO,QAASA,CAAAA,gBAAT,CAA0BC,OAA1B,CAKY,CACf,mBAKIA,OALJ,CACIC,KADJ,CACIA,KADJ,yBACY,CADZ,gBAEIC,QAFJ,CAKIF,OALJ,CAEIE,QAFJ,CAGIC,WAHJ,CAKIH,OALJ,CAGIG,WAHJ,qBAKIH,OALJ,CAIII,UAJJ,CAIgBC,WAJhB,8BAI8B,CAJ9B,qBAOA,GAAMD,CAAAA,UAAU,CAAGH,KAAK,EAAII,WAAT,CAAuBJ,KAAvB,CAA+BI,WAAlD,CAEA,GAAMC,CAAAA,MAAM,CAAG,0EAAsB,CACjC,GAAMC,CAAAA,aAAa,CAAGC,IAAI,CAACC,KAAL,CAAWL,UAAU,CAAG,CAAxB,CAAtB,CACA,GAAMM,CAAAA,aAAa,CAAGN,UAAU,CAAGG,aAAnC,CACA,GAAII,CAAAA,QAAQ,CAAGH,IAAI,CAACC,KAAL,CAAW,CAACN,WAAW,CAACS,KAAb,CAAqBV,QAAhC,CAAf,CACAS,QAAQ,CAAGA,QAAQ,CAAG,CAAX,CAAgBA,QAAQ,CAAGV,KAAZ,CAAqBA,KAApC,CAA4CU,QAAvD,CACA,GAAME,CAAAA,aAAa,CAAG,CAClB,CAACF,QAAQ,CAAGD,aAAX,CAA2BT,KAA5B,EAAqCA,KADnB,CAElB,CAACU,QAAQ,CAAG,CAAX,CAAeV,KAAhB,EAAyBA,KAFP,CAAtB,CAIA,GAAMa,CAAAA,aAAa,CAAG,CAClB,CAACH,QAAQ,CAAGV,KAAZ,EAAqBA,KADH,CAElB,CAACU,QAAQ,CAAGJ,aAAX,CAA2BN,KAA5B,EAAqCA,KAFnB,CAAtB,CAIA,GAAIY,aAAa,CAAC,CAAD,CAAb,CAAmBZ,KAAnB,EAA4BY,aAAa,CAAC,CAAD,CAAb,CAAmBA,aAAa,CAAC,CAAD,CAAhE,CAAqE,CACjEA,aAAa,CAAC,CAAD,CAAb,CAAmBZ,KAAK,CAAG,CAA3B,CACAa,aAAa,CAAC,CAAD,CAAb,CAAmB,CAAnB,CACH,CACD,GAAIA,aAAa,CAAC,CAAD,CAAb,CAAmBA,aAAa,CAAC,CAAD,CAApC,CAAyC,CACrCD,aAAa,CAAC,CAAD,CAAb,CAAmBZ,KAAK,CAAG,CAA3B,CACAa,aAAa,CAAC,CAAD,CAAb,CAAmB,CAAnB,CACH,CACD,MAAO,CAAED,aAAa,CAAbA,aAAF,CAAiBC,aAAa,CAAbA,aAAjB,CAAP,CACH,CAtBc,yBApBKV,UAoBL,aAnBUD,WAmBV,UAnB8BD,QAmB9B,OARID,KAQJ,y2BAsBZ,CAACA,KAAD,CAAQG,UAAR,CAAoBD,WAApB,CAtBY,CAAf,CAwBA,MAAOG,CAAAA,MAAP,CACH","sourcesContent":["import type Animated from 'react-native-reanimated';\nimport { useDerivedValue } from 'react-native-reanimated';\n\nexport type IVisibleRanges = Animated.SharedValue<{\n negativeRange: number[];\n positiveRange: number[];\n}>;\n\nexport function useVisibleRanges(options: {\n total: number;\n viewSize: number;\n windowSize?: number;\n translation: Animated.SharedValue<number>;\n}): IVisibleRanges {\n const {\n total = 0,\n viewSize,\n translation,\n windowSize: _windowSize = 0,\n } = options;\n\n const windowSize = total <= _windowSize ? total : _windowSize;\n\n const ranges = useDerivedValue(() => {\n const positiveCount = Math.round(windowSize / 2);\n const negativeCount = windowSize - positiveCount;\n let curIndex = Math.round(-translation.value / viewSize);\n curIndex = curIndex < 0 ? (curIndex % total) + total : curIndex;\n const negativeRange = [\n (curIndex - negativeCount + total) % total,\n (curIndex - 1 + total) % total,\n ];\n const positiveRange = [\n (curIndex + total) % total,\n (curIndex + positiveCount + total) % total,\n ];\n if (negativeRange[0] < total && negativeRange[0] > negativeRange[1]) {\n negativeRange[1] = total - 1;\n positiveRange[0] = 0;\n }\n if (positiveRange[0] > positiveRange[1]) {\n negativeRange[1] = total - 1;\n positiveRange[0] = 0;\n }\n return { negativeRange, positiveRange };\n }, [total, windowSize, translation]);\n\n return ranges;\n}\n"]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _Carousel=_interopRequireDefault(require("./Carousel"));var _default=_Carousel.default;exports.default=_default;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Carousel"],"mappings":"mKACA,4D,aAEeA,iB","sourcesContent":["export type { TCarouselProps, ICarouselInstance } from './types';\nimport Carousel from './Carousel';\n\nexport default Carousel;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.BaseLayout=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireDefault(require("react"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _useCheckMounted=require("../hooks/useCheckMounted");var _useOffsetX=require("../hooks/useOffsetX");var _LazyView=require("../LazyView");var _store=require("../store");var _this=this,_jsxFileName="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/BaseLayout.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 BaseLayout=function BaseLayout(props){var mounted=(0,_useCheckMounted.useCheckMounted)();var handlerOffsetX=props.handlerOffsetX,index=props.index,children=props.children,visibleRanges=props.visibleRanges,animationStyle=props.animationStyle;var context=_react.default.useContext(_store.CTX);var _context$props=context.props,loop=_context$props.loop,data=_context$props.data,width=_context$props.width,height=_context$props.height,vertical=_context$props.vertical,customConfig=_context$props.customConfig,mode=_context$props.mode,modeConfig=_context$props.modeConfig;var size=vertical?height:width;var _React$useState=_react.default.useState(false),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),shouldUpdate=_React$useState2[0],setShouldUpdate=_React$useState2[1];var offsetXConfig=_objectSpread({handlerOffsetX:handlerOffsetX,index:index,size:size,data:data,loop:loop},typeof customConfig==='function'?customConfig():{});if(mode==='horizontal-stack'){var _ref=modeConfig,snapDirection=_ref.snapDirection,showLength=_ref.showLength;offsetXConfig={handlerOffsetX:handlerOffsetX,index:index,size:size,data:data,loop:loop,type:snapDirection==='right'?'negative':'positive',viewCount:showLength};}var x=(0,_useOffsetX.useOffsetX)(offsetXConfig,visibleRanges);var animationValue=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){return x.value/size;};_f._closure={x:x,size:size};_f.asString="function _f(){const{x,size}=jsThis._closure;{return x.value/size;}}";_f.__workletHash=9077192607952;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/BaseLayout.tsx (71:43)";
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.BaseLayout=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireDefault(require("react"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _useCheckMounted=require("../hooks/useCheckMounted");var _useOffsetX=require("../hooks/useOffsetX");var _LazyView=require("../LazyView");var _store=require("../store");var _this=this,_jsxFileName="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/BaseLayout.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 BaseLayout=function BaseLayout(props){var mounted=(0,_useCheckMounted.useCheckMounted)();var handlerOffsetX=props.handlerOffsetX,index=props.index,children=props.children,visibleRanges=props.visibleRanges,animationStyle=props.animationStyle;var context=_react.default.useContext(_store.CTX);var _context$props=context.props,loop=_context$props.loop,data=_context$props.data,width=_context$props.width,height=_context$props.height,vertical=_context$props.vertical,customConfig=_context$props.customConfig,mode=_context$props.mode,modeConfig=_context$props.modeConfig;var size=vertical?height:width;var _React$useState=_react.default.useState(false),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),shouldUpdate=_React$useState2[0],setShouldUpdate=_React$useState2[1];var offsetXConfig=_objectSpread({handlerOffsetX:handlerOffsetX,index:index,size:size,data:data,loop:loop},typeof customConfig==='function'?customConfig():{});if(mode==='horizontal-stack'){var _ref=modeConfig,snapDirection=_ref.snapDirection,showLength=_ref.showLength;offsetXConfig={handlerOffsetX:handlerOffsetX,index:index,size:size,data:data,loop:loop,type:snapDirection==='right'?'negative':'positive',viewCount:showLength};}var x=(0,_useOffsetX.useOffsetX)(offsetXConfig,visibleRanges);var animationValue=(0,_reactNativeReanimated.useDerivedValue)(function(){var _f=function _f(){return x.value/size;};_f._closure={x:x,size:size};_f.asString="function _f(){const{x,size}=jsThis._closure;{return x.value/size;}}";_f.__workletHash=9077192607952;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/BaseLayout.tsx (71:43)";return _f;}(),[x,size]);var animatedStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _f=function _f(){return animationStyle(x.value/size);};_f._closure={animationStyle:animationStyle,x:x,size:size};_f.asString="function _f(){const{animationStyle,x,size}=jsThis._closure;{return animationStyle(x.value/size);}}";_f.__workletHash=3916054905053;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/BaseLayout.tsx (74:8)";_f.__optimalization=2;return _f;}(),[animationStyle]);var updateView=_react.default.useCallback(function(negativeRange,positiveRange){mounted.current&&setShouldUpdate(index>=negativeRange[0]&&index<=negativeRange[1]||index>=positiveRange[0]&&index<=positiveRange[1]);},[index,mounted]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return visibleRanges.value;};_f._closure={visibleRanges:visibleRanges};_f.asString="function _f(){const{visibleRanges}=jsThis._closure;{return visibleRanges.value;}}";_f.__workletHash=15231519758579;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/BaseLayout.tsx (90:8)";return _f;}(),function(){var _f=function _f(){(0,_reactNativeReanimated.runOnJS)(updateView)(visibleRanges.value.negativeRange,visibleRanges.value.positiveRange);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,updateView:updateView,visibleRanges:visibleRanges};_f.asString="function _f(){const{runOnJS,updateView,visibleRanges}=jsThis._closure;{runOnJS(updateView)(visibleRanges.value.negativeRange,visibleRanges.value.positiveRange);}}";_f.__workletHash=6352504350554;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/BaseLayout.tsx (91:8)";return _f;}(),[visibleRanges.value]);return _react.default.createElement(_reactNativeReanimated.default.View,{style:[{width:width||'100%',height:height||'100%',position:'absolute'},animatedStyle],__self:_this,__source:{fileName:_jsxFileName,lineNumber:101,columnNumber:9}},_react.default.createElement(_LazyView.LazyView,{shouldUpdate:shouldUpdate,__self:_this,__source:{fileName:_jsxFileName,lineNumber:111,columnNumber:13}},children({animationValue:animationValue})));};exports.BaseLayout=BaseLayout;
|
|
2
2
|
//# sourceMappingURL=BaseLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["BaseLayout.tsx"],"names":["BaseLayout","props","mounted","handlerOffsetX","index","children","visibleRanges","animationStyle","context","React","useContext","CTX","loop","data","width","height","vertical","customConfig","mode","modeConfig","size","useState","shouldUpdate","setShouldUpdate","offsetXConfig","snapDirection","showLength","type","viewCount","x","animationValue","value","animatedStyle","updateView","useCallback","negativeRange","positiveRange","current","runOnJS","position"],"mappings":"gWAAA,oDAEA,uFAOA,yDACA,+CAEA,qCACA,+B,q4DAKO,GAAMA,CAAAA,UAQX,CAAG,QARQA,CAAAA,UAQR,CAACC,KAAD,CAAW,CACZ,GAAMC,CAAAA,OAAO,CAAG,sCAAhB,CACA,GAAQC,CAAAA,cAAR,CACIF,KADJ,CAAQE,cAAR,CAAwBC,KAAxB,CACIH,KADJ,CAAwBG,KAAxB,CAA+BC,QAA/B,CACIJ,KADJ,CAA+BI,QAA/B,CAAyCC,aAAzC,CACIL,KADJ,CAAyCK,aAAzC,CAAwDC,cAAxD,CACIN,KADJ,CAAwDM,cAAxD,CAGA,GAAMC,CAAAA,OAAO,CAAGC,eAAMC,UAAN,CAAiBC,UAAjB,CAAhB,CACA,mBAWIH,OAXJ,CACIP,KADJ,CAEQW,IAFR,gBAEQA,IAFR,CAGQC,IAHR,gBAGQA,IAHR,CAIQC,KAJR,gBAIQA,KAJR,CAKQC,MALR,gBAKQA,MALR,CAMQC,QANR,gBAMQA,QANR,CAOQC,YAPR,gBAOQA,YAPR,CAQQC,IARR,gBAQQA,IARR,CASQC,UATR,gBASQA,UATR,CAYA,GAAMC,CAAAA,IAAI,CAAGJ,QAAQ,CAAGD,MAAH,CAAYD,KAAjC,CACA,oBAAwCL,eAAMY,QAAN,CAAe,KAAf,CAAxC,iEAAOC,YAAP,qBAAqBC,eAArB,qBACA,GAAIC,CAAAA,aAAoB,gBACpBrB,cAAc,CAAdA,cADoB,CAEpBC,KAAK,CAALA,KAFoB,CAGpBgB,IAAI,CAAJA,IAHoB,CAIpBP,IAAI,CAAJA,IAJoB,CAKpBD,IAAI,CAAJA,IALoB,EAMhB,MAAOK,CAAAA,YAAP,GAAwB,UAAxB,CAAqCA,YAAY,EAAjD,CAAsD,EANtC,CAAxB,CASA,GAAIC,IAAI,GAAK,kBAAb,CAAiC,CAC7B,SAAsCC,UAAtC,CAAQM,aAAR,MAAQA,aAAR,CAAuBC,UAAvB,MAAuBA,UAAvB,CAEAF,aAAa,CAAG,CACZrB,cAAc,CAAdA,cADY,CAEZC,KAAK,CAALA,KAFY,CAGZgB,IAAI,CAAJA,IAHY,CAIZP,IAAI,CAAJA,IAJY,CAKZD,IAAI,CAAJA,IALY,CAMZe,IAAI,CAAEF,aAAa,GAAK,OAAlB,CAA4B,UAA5B,CAAyC,UANnC,CAOZG,SAAS,CAAEF,UAPC,CAAhB,CASH,CAED,GAAMG,CAAAA,CAAC,CAAG,2BAAWL,aAAX,CAA0BlB,aAA1B,CAAV,CACA,GAAMwB,CAAAA,cAAc,CAAG,6DAAgB,oBAAMD,CAAAA,CAAC,CAACE,KAAF,CAAUX,IAAhB,EAAhB,gBArEpBS,CAqEoB,MArEVT,IAqEU,
|
|
1
|
+
{"version":3,"sources":["BaseLayout.tsx"],"names":["BaseLayout","props","mounted","handlerOffsetX","index","children","visibleRanges","animationStyle","context","React","useContext","CTX","loop","data","width","height","vertical","customConfig","mode","modeConfig","size","useState","shouldUpdate","setShouldUpdate","offsetXConfig","snapDirection","showLength","type","viewCount","x","animationValue","value","animatedStyle","updateView","useCallback","negativeRange","positiveRange","current","runOnJS","position"],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { ViewStyle } from 'react-native';\nimport Animated, {\n AnimatedStyleProp,\n runOnJS,\n useAnimatedReaction,\n useAnimatedStyle,\n useDerivedValue,\n} from 'react-native-reanimated';\nimport { useCheckMounted } from 'src/hooks/useCheckMounted';\nimport { IOpts, useOffsetX } from '../hooks/useOffsetX';\nimport type { IVisibleRanges } from '../hooks/useVisibleRanges';\nimport { LazyView } from '../LazyView';\nimport { CTX } from '../store';\nimport type { ILayoutConfig } from './stack';\n\nexport type TAnimationStyle = (value: number) => AnimatedStyleProp<ViewStyle>;\n\nexport const BaseLayout: React.FC<{\n index: number;\n handlerOffsetX: Animated.SharedValue<number>;\n visibleRanges: IVisibleRanges;\n animationStyle: TAnimationStyle;\n children: (ctx: {\n animationValue: Animated.SharedValue<number>;\n }) => React.ReactElement;\n}> = (props) => {\n const mounted = useCheckMounted();\n const { handlerOffsetX, index, children, visibleRanges, animationStyle } =\n props;\n\n const context = React.useContext(CTX);\n const {\n props: {\n loop,\n data,\n width,\n height,\n vertical,\n customConfig,\n mode,\n modeConfig,\n },\n } = context;\n const size = vertical ? height : width;\n const [shouldUpdate, setShouldUpdate] = React.useState(false);\n let offsetXConfig: IOpts = {\n handlerOffsetX,\n index,\n size,\n data,\n loop,\n ...(typeof customConfig === 'function' ? customConfig() : {}),\n };\n\n if (mode === 'horizontal-stack') {\n const { snapDirection, showLength } = modeConfig as ILayoutConfig;\n\n offsetXConfig = {\n handlerOffsetX,\n index,\n size,\n data,\n loop,\n type: snapDirection === 'right' ? 'negative' : 'positive',\n viewCount: showLength,\n };\n }\n\n const x = useOffsetX(offsetXConfig, visibleRanges);\n const animationValue = useDerivedValue(() => x.value / size, [x, size]);\n const animatedStyle = useAnimatedStyle(\n // @ts-ignore\n () => animationStyle(x.value / size),\n [animationStyle]\n );\n\n const updateView = React.useCallback(\n (negativeRange: number[], positiveRange: number[]) => {\n mounted.current &&\n setShouldUpdate(\n (index >= negativeRange[0] && index <= negativeRange[1]) ||\n (index >= positiveRange[0] && index <= positiveRange[1])\n );\n },\n [index, mounted]\n );\n\n useAnimatedReaction(\n () => visibleRanges.value,\n () => {\n runOnJS(updateView)(\n visibleRanges.value.negativeRange,\n visibleRanges.value.positiveRange\n );\n },\n [visibleRanges.value]\n );\n\n return (\n <Animated.View\n style={[\n {\n width: width || '100%',\n height: height || '100%',\n position: 'absolute',\n },\n animatedStyle,\n ]}\n >\n <LazyView shouldUpdate={shouldUpdate}>\n {children({ animationValue })}\n </LazyView>\n </Animated.View>\n );\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ParallaxLayout=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireDefault(require("react"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _useOffsetX=require("../hooks/useOffsetX");var _LazyView=require("../LazyView");var _this=this,_jsxFileName="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/ParallaxLayout.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 ParallaxLayout=function ParallaxLayout(props){var handlerOffsetX=props.handlerOffsetX,_props$parallaxScroll=props.parallaxScrollingOffset,parallaxScrollingOffset=_props$parallaxScroll===void 0?100:_props$parallaxScroll,_props$parallaxScroll2=props.parallaxScrollingScale,parallaxScrollingScale=_props$parallaxScroll2===void 0?0.8:_props$parallaxScroll2,_props$parallaxAdjace=props.parallaxAdjacentItemScale,parallaxAdjacentItemScale=_props$parallaxAdjace===void 0?Math.pow(parallaxScrollingScale,2):_props$parallaxAdjace,index=props.index,width=props.width,height=props.height,loop=props.loop,data=props.data,children=props.children,visibleRanges=props.visibleRanges,vertical=props.vertical;var _React$useState=_react.default.useState(false),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),shouldUpdate=_React$useState2[0],setShouldUpdate=_React$useState2[1];var size=props.vertical?props.height:props.width;var x=(0,_useOffsetX.useOffsetX)({handlerOffsetX:handlerOffsetX,index:index,size:size,data:data,loop:loop},visibleRanges);var offsetXStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _f=function _f(){var value=x.value/size;var translate=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset],_reactNativeReanimated.Extrapolate.EXTEND);var zIndex=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[0,size,0],_reactNativeReanimated.Extrapolate.CLAMP);var scale=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],_reactNativeReanimated.Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};};_f._closure={x:x,size:size,interpolate:_reactNativeReanimated.interpolate,parallaxScrollingOffset:parallaxScrollingOffset,Extrapolate:{EXTEND:_reactNativeReanimated.Extrapolate.EXTEND,CLAMP:_reactNativeReanimated.Extrapolate.CLAMP},parallaxAdjacentItemScale:parallaxAdjacentItemScale,parallaxScrollingScale:parallaxScrollingScale,vertical:vertical};_f.asString="function _f(){const{x,size,interpolate,parallaxScrollingOffset,Extrapolate,parallaxAdjacentItemScale,parallaxScrollingScale,vertical}=jsThis._closure;{const value=x.value/size;const translate=interpolate(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset],Extrapolate.EXTEND);const zIndex=interpolate(value,[-1,0,1],[0,size,0],Extrapolate.CLAMP);const scale=interpolate(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};}}";_f.__workletHash=10412925648231;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx (56:42)";_f.__optimalization=3;
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ParallaxLayout=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireDefault(require("react"));var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _useOffsetX=require("../hooks/useOffsetX");var _LazyView=require("../LazyView");var _this=this,_jsxFileName="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/ParallaxLayout.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 ParallaxLayout=function ParallaxLayout(props){var handlerOffsetX=props.handlerOffsetX,_props$parallaxScroll=props.parallaxScrollingOffset,parallaxScrollingOffset=_props$parallaxScroll===void 0?100:_props$parallaxScroll,_props$parallaxScroll2=props.parallaxScrollingScale,parallaxScrollingScale=_props$parallaxScroll2===void 0?0.8:_props$parallaxScroll2,_props$parallaxAdjace=props.parallaxAdjacentItemScale,parallaxAdjacentItemScale=_props$parallaxAdjace===void 0?Math.pow(parallaxScrollingScale,2):_props$parallaxAdjace,index=props.index,width=props.width,height=props.height,loop=props.loop,data=props.data,children=props.children,visibleRanges=props.visibleRanges,vertical=props.vertical;var _React$useState=_react.default.useState(false),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),shouldUpdate=_React$useState2[0],setShouldUpdate=_React$useState2[1];var size=props.vertical?props.height:props.width;var x=(0,_useOffsetX.useOffsetX)({handlerOffsetX:handlerOffsetX,index:index,size:size,data:data,loop:loop},visibleRanges);var offsetXStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _f=function _f(){var value=x.value/size;var translate=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset],_reactNativeReanimated.Extrapolate.EXTEND);var zIndex=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[0,size,0],_reactNativeReanimated.Extrapolate.CLAMP);var scale=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],_reactNativeReanimated.Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};};_f._closure={x:x,size:size,interpolate:_reactNativeReanimated.interpolate,parallaxScrollingOffset:parallaxScrollingOffset,Extrapolate:{EXTEND:_reactNativeReanimated.Extrapolate.EXTEND,CLAMP:_reactNativeReanimated.Extrapolate.CLAMP},parallaxAdjacentItemScale:parallaxAdjacentItemScale,parallaxScrollingScale:parallaxScrollingScale,vertical:vertical};_f.asString="function _f(){const{x,size,interpolate,parallaxScrollingOffset,Extrapolate,parallaxAdjacentItemScale,parallaxScrollingScale,vertical}=jsThis._closure;{const value=x.value/size;const translate=interpolate(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset],Extrapolate.EXTEND);const zIndex=interpolate(value,[-1,0,1],[0,size,0],Extrapolate.CLAMP);const scale=interpolate(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};}}";_f.__workletHash=10412925648231;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx (56:42)";_f.__optimalization=3;return _f;}(),[loop,vertical,parallaxScrollingOffset]);var updateView=_react.default.useCallback(function(negativeRange,positiveRange){setShouldUpdate(index>=negativeRange[0]&&index<=negativeRange[1]||index>=positiveRange[0]&&index<=positiveRange[1]);},[index]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _f=function _f(){return visibleRanges.value;};_f._closure={visibleRanges:visibleRanges};_f.asString="function _f(){const{visibleRanges}=jsThis._closure;{return visibleRanges.value;}}";_f.__workletHash=15231519758579;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx (116:8)";return _f;}(),function(){var _f=function _f(){(0,_reactNativeReanimated.runOnJS)(updateView)(visibleRanges.value.negativeRange,visibleRanges.value.positiveRange);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,updateView:updateView,visibleRanges:visibleRanges};_f.asString="function _f(){const{runOnJS,updateView,visibleRanges}=jsThis._closure;{runOnJS(updateView)(visibleRanges.value.negativeRange,visibleRanges.value.positiveRange);}}";_f.__workletHash=6352504350554;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx (117:8)";return _f;}(),[visibleRanges.value]);return _react.default.createElement(_reactNativeReanimated.default.View,{style:[{width:width||'100%',height:height||'100%',position:'absolute'},offsetXStyle],__self:_this,__source:{fileName:_jsxFileName,lineNumber:127,columnNumber:9}},_react.default.createElement(_LazyView.LazyView,{shouldUpdate:shouldUpdate,__self:_this,__source:{fileName:_jsxFileName,lineNumber:137,columnNumber:13}},children));};exports.ParallaxLayout=ParallaxLayout;
|
|
2
2
|
//# sourceMappingURL=ParallaxLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["ParallaxLayout","props","handlerOffsetX","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","Math","pow","index","width","height","loop","data","children","visibleRanges","vertical","React","useState","shouldUpdate","setShouldUpdate","size","x","offsetXStyle","value","translate","Extrapolate","EXTEND","zIndex","CLAMP","scale","transform","translateY","translateX","interpolate","updateView","useCallback","negativeRange","positiveRange","runOnJS","position"],"mappings":"sQAAA,oDACA,uFAQA,+CAEA,qC,unCAGO,GAAMA,CAAAA,cAUZ,CAAG,QAVSA,CAAAA,cAUT,CAACC,KAAD,CAAW,CACX,GACIC,CAAAA,cADJ,CAaID,KAbJ,CACIC,cADJ,uBAaID,KAbJ,CAEIE,uBAFJ,CAEIA,uBAFJ,gCAE8B,GAF9B,8CAaIF,KAbJ,CAGIG,sBAHJ,CAGIA,sBAHJ,iCAG6B,GAH7B,8CAaIH,KAbJ,CAIII,yBAJJ,CAIIA,yBAJJ,gCAIgCC,IAAI,CAACC,GAAL,CAASH,sBAAT,CAAiC,CAAjC,CAJhC,uBAKII,KALJ,CAaIP,KAbJ,CAKIO,KALJ,CAMIC,KANJ,CAaIR,KAbJ,CAMIQ,KANJ,CAOIC,MAPJ,CAaIT,KAbJ,CAOIS,MAPJ,CAQIC,IARJ,CAaIV,KAbJ,CAQIU,IARJ,CASIC,IATJ,CAaIX,KAbJ,CASIW,IATJ,CAUIC,QAVJ,CAaIZ,KAbJ,CAUIY,QAVJ,CAWIC,aAXJ,CAaIb,KAbJ,CAWIa,aAXJ,CAYIC,QAZJ,CAaId,KAbJ,CAYIc,QAZJ,CAeA,oBAAwCC,eAAMC,QAAN,CAAe,KAAf,CAAxC,iEAAOC,YAAP,qBAAqBC,eAArB,qBAEA,GAAMC,CAAAA,IAAI,CAAGnB,KAAK,CAACc,QAAN,CAAiBd,KAAK,CAACS,MAAvB,CAAgCT,KAAK,CAACQ,KAAnD,CAEA,GAAMY,CAAAA,CAAC,CAAG,2BACN,CACInB,cAAc,CAAdA,cADJ,CAEIM,KAAK,CAALA,KAFJ,CAGIY,IAAI,CAAJA,IAHJ,CAIIR,IAAI,CAAJA,IAJJ,CAKID,IAAI,CAAJA,IALJ,CADM,CAQNG,aARM,CAAV,CAWA,GAAMQ,CAAAA,YAAY,CAAG,2EAAuB,CACxC,GAAMC,CAAAA,KAAK,CAAGF,CAAC,CAACE,KAAF,CAAUH,IAAxB,CAEA,GAAMI,CAAAA,SAAS,CAAG,uCACdD,KADc,CAEd,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFc,CAGd,CACI,CAACH,IAAD,CAAQjB,uBADZ,CAEI,CAFJ,CAGIiB,IAAI,CAAGjB,uBAHX,CAHc,CAQdsB,mCAAYC,MARE,CAAlB,CAWA,GAAMC,CAAAA,MAAM,CAAG,uCACXJ,KADW,CAEX,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFW,CAGX,CAAC,CAAD,CAAIH,IAAJ,CAAU,CAAV,CAHW,CAIXK,mCAAYG,KAJD,CAAf,CAOA,GAAMC,CAAAA,KAAK,CAAG,uCACVN,KADU,CAEV,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFU,CAGV,CACIlB,yBADJ,CAEID,sBAFJ,CAGIC,yBAHJ,CAHU,CAQVoB,mCAAYG,KARF,CAAd,CAWA,MAAO,CACHE,SAAS,CAAE,CACPf,QAAQ,CACF,CACIgB,UAAU,CAAEP,SADhB,CADE,CAIF,CACIQ,UAAU,CAAER,SADhB,CALC,CAQP,CACIK,KAAK,CAALA,KADJ,CARO,CADR,CAaHF,MAAM,CAANA,MAbG,CAAP,CAeH,CA/CoB,gBArDTN,CAqDS,MAnD2BD,IAmD3B,aAlDTa,kCAkDS,yBApDsE9B,uBAoDtE,qBApDgGsB,mCAAYC,MAoD5G,OAlDsGD,mCAAYG,KAkDlH,4BAlD0EvB,yBAkD1E,wBAlDkDD,sBAkDlD,UAhDTW,QAgDS,
|
|
1
|
+
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["ParallaxLayout","props","handlerOffsetX","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","Math","pow","index","width","height","loop","data","children","visibleRanges","vertical","React","useState","shouldUpdate","setShouldUpdate","size","x","offsetXStyle","value","translate","Extrapolate","EXTEND","zIndex","CLAMP","scale","transform","translateY","translateX","interpolate","updateView","useCallback","negativeRange","positiveRange","runOnJS","position"],"mappings":"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","sourcesContent":["import React from 'react';\nimport Animated, {\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedReaction,\n useAnimatedStyle,\n} from 'react-native-reanimated';\nimport type { ComputedDirectionTypes } from 'src/types';\nimport { useOffsetX } from '../hooks/useOffsetX';\nimport type { IVisibleRanges } from '../hooks/useVisibleRanges';\nimport { LazyView } from '../LazyView';\nimport type { ILayoutConfig } from './parallax';\n\nexport const ParallaxLayout: React.FC<\n ComputedDirectionTypes<\n {\n loop?: boolean;\n handlerOffsetX: Animated.SharedValue<number>;\n index: number;\n data: unknown[];\n visibleRanges: IVisibleRanges;\n } & ILayoutConfig\n >\n> = (props) => {\n const {\n handlerOffsetX,\n parallaxScrollingOffset = 100,\n parallaxScrollingScale = 0.8,\n parallaxAdjacentItemScale = Math.pow(parallaxScrollingScale, 2),\n index,\n width,\n height,\n loop,\n data,\n children,\n visibleRanges,\n vertical,\n } = props;\n\n const [shouldUpdate, setShouldUpdate] = React.useState(false);\n\n const size = props.vertical ? props.height : props.width;\n\n const x = useOffsetX(\n {\n handlerOffsetX,\n index,\n size,\n data,\n loop,\n },\n visibleRanges\n );\n\n const offsetXStyle = useAnimatedStyle(() => {\n const value = x.value / size;\n\n const translate = interpolate(\n value,\n [-1, 0, 1],\n [\n -size + parallaxScrollingOffset,\n 0,\n size - parallaxScrollingOffset,\n ],\n Extrapolate.EXTEND\n );\n\n const zIndex = interpolate(\n value,\n [-1, 0, 1],\n [0, size, 0],\n Extrapolate.CLAMP\n );\n\n const scale = interpolate(\n value,\n [-1, 0, 1],\n [\n parallaxAdjacentItemScale,\n parallaxScrollingScale,\n parallaxAdjacentItemScale,\n ],\n Extrapolate.CLAMP\n );\n\n return {\n transform: [\n vertical\n ? {\n translateY: translate,\n }\n : {\n translateX: translate,\n },\n {\n scale,\n },\n ],\n zIndex,\n };\n }, [loop, vertical, parallaxScrollingOffset]);\n\n const updateView = React.useCallback(\n (negativeRange: number[], positiveRange: number[]) => {\n setShouldUpdate(\n (index >= negativeRange[0] && index <= negativeRange[1]) ||\n (index >= positiveRange[0] && index <= positiveRange[1])\n );\n },\n [index]\n );\n\n useAnimatedReaction(\n () => visibleRanges.value,\n () => {\n runOnJS(updateView)(\n visibleRanges.value.negativeRange,\n visibleRanges.value.positiveRange\n );\n },\n [visibleRanges.value]\n );\n\n return (\n <Animated.View\n style={[\n {\n width: width || '100%',\n height: height || '100%',\n position: 'absolute',\n },\n offsetXStyle,\n ]}\n >\n <LazyView shouldUpdate={shouldUpdate}>{children}</LazyView>\n </Animated.View>\n );\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.normalLayout=normalLayout;var _reactNativeReanimated=require("react-native-reanimated");function normalLayout(opts){var size=opts.size,vertical=opts.vertical;return function(){var _f=function _f(value){var translate=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[-size,0,size]);return{transform:[vertical?{translateY:translate}:{translateX:translate}]};};_f._closure={interpolate:_reactNativeReanimated.interpolate,size:size,vertical:vertical};_f.asString="function _f(value){const{interpolate,size,vertical}=jsThis._closure;{const translate=interpolate(value,[-1,0,1],[-size,0,size]);return{transform:[vertical?{translateY:translate}:{translateX:translate}]};}}";_f.__workletHash=10942319418565;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/normal.ts (6:11)";
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.normalLayout=normalLayout;var _reactNativeReanimated=require("react-native-reanimated");function normalLayout(opts){var size=opts.size,vertical=opts.vertical;return function(){var _f=function _f(value){var translate=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[-size,0,size]);return{transform:[vertical?{translateY:translate}:{translateX:translate}]};};_f._closure={interpolate:_reactNativeReanimated.interpolate,size:size,vertical:vertical};_f.asString="function _f(value){const{interpolate,size,vertical}=jsThis._closure;{const translate=interpolate(value,[-1,0,1],[-size,0,size]);return{transform:[vertical?{translateY:translate}:{translateX:translate}]};}}";_f.__workletHash=10942319418565;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/normal.ts (6:11)";return _f;}();}
|
|
2
2
|
//# sourceMappingURL=normal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["normal.ts"],"names":["normalLayout","opts","size","vertical","value","translate","transform","translateY","translateX","interpolate"],"mappings":"2FAAA,8DAEO,QAASA,CAAAA,YAAT,CAAsBC,IAAtB,CAAiE,CACpE,GAAQC,CAAAA,IAAR,CAA2BD,IAA3B,CAAQC,IAAR,CAAcC,QAAd,CAA2BF,IAA3B,CAAcE,QAAd,CAEA,qCAAQC,KAAR,CAA0B,CAEtB,GAAMC,CAAAA,SAAS,CAAG,uCAAYD,KAAZ,CAAmB,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAAnB,CAA+B,CAAC,CAACF,IAAF,CAAQ,CAAR,CAAWA,IAAX,CAA/B,CAAlB,CAEA,MAAO,CACHI,SAAS,CAAE,CACPH,QAAQ,CACF,CACII,UAAU,CAAEF,SADhB,CADE,CAIF,CACIG,UAAU,CAAEH,SADhB,CALC,CADR,CAAP,CAWH,CAfD,0BAHgBI,kCAGhB,MAH0DP,IAG1D,UADYC,QACZ,
|
|
1
|
+
{"version":3,"sources":["normal.ts"],"names":["normalLayout","opts","size","vertical","value","translate","transform","translateY","translateX","interpolate"],"mappings":"2FAAA,8DAEO,QAASA,CAAAA,YAAT,CAAsBC,IAAtB,CAAiE,CACpE,GAAQC,CAAAA,IAAR,CAA2BD,IAA3B,CAAQC,IAAR,CAAcC,QAAd,CAA2BF,IAA3B,CAAcE,QAAd,CAEA,qCAAQC,KAAR,CAA0B,CAEtB,GAAMC,CAAAA,SAAS,CAAG,uCAAYD,KAAZ,CAAmB,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAAnB,CAA+B,CAAC,CAACF,IAAF,CAAQ,CAAR,CAAWA,IAAX,CAA/B,CAAlB,CAEA,MAAO,CACHI,SAAS,CAAE,CACPH,QAAQ,CACF,CACII,UAAU,CAAEF,SADhB,CADE,CAIF,CACIG,UAAU,CAAEH,SADhB,CALC,CADR,CAAP,CAWH,CAfD,0BAHgBI,kCAGhB,MAH0DP,IAG1D,UADYC,QACZ,yXAgBH","sourcesContent":["import { interpolate } from 'react-native-reanimated';\n\nexport function normalLayout(opts: { size: number; vertical: boolean }) {\n const { size, vertical } = opts;\n\n return (value: number) => {\n 'worklet';\n const translate = interpolate(value, [-1, 0, 1], [-size, 0, size]);\n\n return {\n transform: [\n vertical\n ? {\n translateY: translate,\n }\n : {\n translateX: translate,\n },\n ],\n };\n };\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.parallaxLayout=parallaxLayout;var _reactNativeReanimated=require("react-native-reanimated");function parallaxLayout(baseConfig){var modeConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var size=baseConfig.size,vertical=baseConfig.vertical;var _modeConfig$parallaxS=modeConfig.parallaxScrollingOffset,parallaxScrollingOffset=_modeConfig$parallaxS===void 0?100:_modeConfig$parallaxS,_modeConfig$parallaxS2=modeConfig.parallaxScrollingScale,parallaxScrollingScale=_modeConfig$parallaxS2===void 0?0.8:_modeConfig$parallaxS2,_modeConfig$parallaxA=modeConfig.parallaxAdjacentItemScale,parallaxAdjacentItemScale=_modeConfig$parallaxA===void 0?Math.pow(parallaxScrollingScale,2):_modeConfig$parallaxA;return function(){var _f=function _f(value){var translate=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset]);var zIndex=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[0,size,0],_reactNativeReanimated.Extrapolate.CLAMP);var scale=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],_reactNativeReanimated.Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};};_f._closure={interpolate:_reactNativeReanimated.interpolate,size:size,parallaxScrollingOffset:parallaxScrollingOffset,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP},parallaxAdjacentItemScale:parallaxAdjacentItemScale,parallaxScrollingScale:parallaxScrollingScale,vertical:vertical};_f.asString="function _f(value){const{interpolate,size,parallaxScrollingOffset,Extrapolate,parallaxAdjacentItemScale,parallaxScrollingScale,vertical}=jsThis._closure;{const translate=interpolate(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset]);const zIndex=interpolate(value,[-1,0,1],[0,size,0],Extrapolate.CLAMP);const scale=interpolate(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};}}";_f.__workletHash=942233491674;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/parallax.ts (46:11)";
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.parallaxLayout=parallaxLayout;var _reactNativeReanimated=require("react-native-reanimated");function parallaxLayout(baseConfig){var modeConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var size=baseConfig.size,vertical=baseConfig.vertical;var _modeConfig$parallaxS=modeConfig.parallaxScrollingOffset,parallaxScrollingOffset=_modeConfig$parallaxS===void 0?100:_modeConfig$parallaxS,_modeConfig$parallaxS2=modeConfig.parallaxScrollingScale,parallaxScrollingScale=_modeConfig$parallaxS2===void 0?0.8:_modeConfig$parallaxS2,_modeConfig$parallaxA=modeConfig.parallaxAdjacentItemScale,parallaxAdjacentItemScale=_modeConfig$parallaxA===void 0?Math.pow(parallaxScrollingScale,2):_modeConfig$parallaxA;return function(){var _f=function _f(value){var translate=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset]);var zIndex=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[0,size,0],_reactNativeReanimated.Extrapolate.CLAMP);var scale=(0,_reactNativeReanimated.interpolate)(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],_reactNativeReanimated.Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};};_f._closure={interpolate:_reactNativeReanimated.interpolate,size:size,parallaxScrollingOffset:parallaxScrollingOffset,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP},parallaxAdjacentItemScale:parallaxAdjacentItemScale,parallaxScrollingScale:parallaxScrollingScale,vertical:vertical};_f.asString="function _f(value){const{interpolate,size,parallaxScrollingOffset,Extrapolate,parallaxAdjacentItemScale,parallaxScrollingScale,vertical}=jsThis._closure;{const translate=interpolate(value,[-1,0,1],[-size+parallaxScrollingOffset,0,size-parallaxScrollingOffset]);const zIndex=interpolate(value,[-1,0,1],[0,size,0],Extrapolate.CLAMP);const scale=interpolate(value,[-1,0,1],[parallaxAdjacentItemScale,parallaxScrollingScale,parallaxAdjacentItemScale],Extrapolate.CLAMP);return{transform:[vertical?{translateY:translate}:{translateX:translate},{scale:scale}],zIndex:zIndex};}}";_f.__workletHash=942233491674;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/parallax.ts (46:11)";return _f;}();}
|
|
2
2
|
//# sourceMappingURL=parallax.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["parallax.ts"],"names":["parallaxLayout","baseConfig","modeConfig","size","vertical","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","Math","pow","value","translate","zIndex","Extrapolate","CLAMP","scale","transform","translateY","translateX","interpolate"],"mappings":"+FAAA,8DAkCO,QAASA,CAAAA,cAAT,CACHC,UADG,CAGL,IADEC,CAAAA,UACF,2DAD8B,EAC9B,CACE,GAAQC,CAAAA,IAAR,CAA2BF,UAA3B,CAAQE,IAAR,CAAcC,QAAd,CAA2BH,UAA3B,CAAcG,QAAd,CACA,0BAIIF,UAJJ,CACIG,uBADJ,CACIA,uBADJ,gCAC8B,GAD9B,8CAIIH,UAJJ,CAEII,sBAFJ,CAEIA,sBAFJ,iCAE6B,GAF7B,8CAIIJ,UAJJ,CAGIK,yBAHJ,CAGIA,yBAHJ,gCAGgCC,IAAI,CAACC,GAAL,CAASH,sBAAT,CAAiC,CAAjC,CAHhC,uBAMA,qCAAQI,KAAR,CAA0B,CAEtB,GAAMC,CAAAA,SAAS,CAAG,uCACdD,KADc,CAEd,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFc,CAGd,CAAC,CAACP,IAAD,CAAQE,uBAAT,CAAkC,CAAlC,CAAqCF,IAAI,CAAGE,uBAA5C,CAHc,CAAlB,CAMA,GAAMO,CAAAA,MAAM,CAAG,uCACXF,KADW,CAEX,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFW,CAGX,CAAC,CAAD,CAAIP,IAAJ,CAAU,CAAV,CAHW,CAIXU,mCAAYC,KAJD,CAAf,CAOA,GAAMC,CAAAA,KAAK,CAAG,uCACVL,KADU,CAEV,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFU,CAGV,CACIH,yBADJ,CAEID,sBAFJ,CAGIC,yBAHJ,CAHU,CAQVM,mCAAYC,KARF,CAAd,CAWA,MAAO,CACHE,SAAS,CAAE,CACPZ,QAAQ,CACF,CACIa,UAAU,CAAEN,SADhB,CADE,CAIF,CACIO,UAAU,CAAEP,SADhB,CALC,CAQP,CACII,KAAK,CAALA,KADJ,CARO,CADR,CAaHH,MAAM,CAANA,MAbG,CAAP,CAeH,CAzCD,0BAzCYO,kCAyCZ,MA1CgDhB,IA0ChD,yBA3C2FE,uBA2C3F,oBAzC2HQ,mCAAYC,KAyCvI,4BAzC+FP,yBAyC/F,wBAzCuED,sBAyCvE,UAvCYF,QAuCZ,
|
|
1
|
+
{"version":3,"sources":["parallax.ts"],"names":["parallaxLayout","baseConfig","modeConfig","size","vertical","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","Math","pow","value","translate","zIndex","Extrapolate","CLAMP","scale","transform","translateY","translateX","interpolate"],"mappings":"+FAAA,8DAkCO,QAASA,CAAAA,cAAT,CACHC,UADG,CAGL,IADEC,CAAAA,UACF,2DAD8B,EAC9B,CACE,GAAQC,CAAAA,IAAR,CAA2BF,UAA3B,CAAQE,IAAR,CAAcC,QAAd,CAA2BH,UAA3B,CAAcG,QAAd,CACA,0BAIIF,UAJJ,CACIG,uBADJ,CACIA,uBADJ,gCAC8B,GAD9B,8CAIIH,UAJJ,CAEII,sBAFJ,CAEIA,sBAFJ,iCAE6B,GAF7B,8CAIIJ,UAJJ,CAGIK,yBAHJ,CAGIA,yBAHJ,gCAGgCC,IAAI,CAACC,GAAL,CAASH,sBAAT,CAAiC,CAAjC,CAHhC,uBAMA,qCAAQI,KAAR,CAA0B,CAEtB,GAAMC,CAAAA,SAAS,CAAG,uCACdD,KADc,CAEd,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFc,CAGd,CAAC,CAACP,IAAD,CAAQE,uBAAT,CAAkC,CAAlC,CAAqCF,IAAI,CAAGE,uBAA5C,CAHc,CAAlB,CAMA,GAAMO,CAAAA,MAAM,CAAG,uCACXF,KADW,CAEX,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFW,CAGX,CAAC,CAAD,CAAIP,IAAJ,CAAU,CAAV,CAHW,CAIXU,mCAAYC,KAJD,CAAf,CAOA,GAAMC,CAAAA,KAAK,CAAG,uCACVL,KADU,CAEV,CAAC,CAAC,CAAF,CAAK,CAAL,CAAQ,CAAR,CAFU,CAGV,CACIH,yBADJ,CAEID,sBAFJ,CAGIC,yBAHJ,CAHU,CAQVM,mCAAYC,KARF,CAAd,CAWA,MAAO,CACHE,SAAS,CAAE,CACPZ,QAAQ,CACF,CACIa,UAAU,CAAEN,SADhB,CADE,CAIF,CACIO,UAAU,CAAEP,SADhB,CALC,CAQP,CACII,KAAK,CAALA,KADJ,CARO,CADR,CAaHH,MAAM,CAANA,MAbG,CAAP,CAeH,CAzCD,0BAzCYO,kCAyCZ,MA1CgDhB,IA0ChD,yBA3C2FE,uBA2C3F,oBAzC2HQ,mCAAYC,KAyCvI,4BAzC+FP,yBAyC/F,wBAzCuED,sBAyCvE,UAvCYF,QAuCZ,wuBA0CH","sourcesContent":["import { Extrapolate, interpolate } from 'react-native-reanimated';\nimport type { ComputedDirectionTypes } from '../types';\n\ntype TBaseConfig = {\n size: number;\n vertical: boolean;\n};\n\nexport interface ILayoutConfig {\n /**\n * control prev/next item offset.\n * @default 100\n */\n parallaxScrollingOffset?: number;\n /**\n * control prev/current/next item offset.\n * @default 0.8\n */\n parallaxScrollingScale?: number;\n /**\n * control prev/next item offset.\n * @default Math.pow(parallaxScrollingScale, 2)\n */\n parallaxAdjacentItemScale?: number;\n}\n\nexport type TParallaxModeProps = ComputedDirectionTypes<{\n /**\n * Carousel Animated transitions.\n */\n mode?: 'parallax';\n modeConfig?: ILayoutConfig;\n}>;\n\nexport function parallaxLayout(\n baseConfig: TBaseConfig,\n modeConfig: ILayoutConfig = {}\n) {\n const { size, vertical } = baseConfig;\n const {\n parallaxScrollingOffset = 100,\n parallaxScrollingScale = 0.8,\n parallaxAdjacentItemScale = Math.pow(parallaxScrollingScale, 2),\n } = modeConfig;\n\n return (value: number) => {\n 'worklet';\n const translate = interpolate(\n value,\n [-1, 0, 1],\n [-size + parallaxScrollingOffset, 0, size - parallaxScrollingOffset]\n );\n\n const zIndex = interpolate(\n value,\n [-1, 0, 1],\n [0, size, 0],\n Extrapolate.CLAMP\n );\n\n const scale = interpolate(\n value,\n [-1, 0, 1],\n [\n parallaxAdjacentItemScale,\n parallaxScrollingScale,\n parallaxAdjacentItemScale,\n ],\n Extrapolate.CLAMP\n );\n\n return {\n transform: [\n vertical\n ? {\n translateY: translate,\n }\n : {\n translateX: translate,\n },\n {\n scale,\n },\n ],\n zIndex,\n };\n };\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.horizontalStackLayout=horizontalStackLayout;exports.useHorizontalStackLayout=useHorizontalStackLayout;exports.verticalStackLayout=verticalStackLayout;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=require("react");var _reactNative=require("react-native");var _reactNativeReanimated=require("react-native-reanimated");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 screen=_reactNative.Dimensions.get('window');function horizontalStackLayout(){var modeConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return function(){var _f=function _f(_value){var showLength=modeConfig.showLength,_modeConfig$snapDirec=modeConfig.snapDirection,snapDirection=_modeConfig$snapDirec===void 0?'left':_modeConfig$snapDirec,_modeConfig$moveSize=modeConfig.moveSize,moveSize=_modeConfig$moveSize===void 0?screen.width:_modeConfig$moveSize,_modeConfig$stackInte=modeConfig.stackInterval,stackInterval=_modeConfig$stackInte===void 0?18:_modeConfig$stackInte,_modeConfig$scaleInte=modeConfig.scaleInterval,scaleInterval=_modeConfig$scaleInte===void 0?0.04:_modeConfig$scaleInte,_modeConfig$opacityIn=modeConfig.opacityInterval,opacityInterval=_modeConfig$opacityIn===void 0?0.1:_modeConfig$opacityIn,_modeConfig$rotateZDe=modeConfig.rotateZDeg,rotateZDeg=_modeConfig$rotateZDe===void 0?30:_modeConfig$rotateZDe;var transform=[];var _getCommonVariables=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection}),validLength=_getCommonVariables.validLength,value=_getCommonVariables.value,inputRange=_getCommonVariables.inputRange;var _getCommonStyles=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection}),zIndex=_getCommonStyles.zIndex,opacity=_getCommonStyles.opacity;var styles={transform:transform,zIndex:zIndex,opacity:opacity};var translateX;var scale;var rotateZ;if(snapDirection==='left'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-moveSize,0,validLength*stackInterval],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1,1,1-validLength*scaleInterval],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-rotateZDeg,0,0],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";}else if(snapDirection==='right'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-validLength*stackInterval,0,moveSize],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1-validLength*scaleInterval,1,1],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,rotateZDeg],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ});return styles;};_f._closure={screen:{width:screen.width},modeConfig:modeConfig,getCommonVariables:getCommonVariables,getCommonStyles:getCommonStyles,interpolate:_reactNativeReanimated.interpolate,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP}};_f.asString="function _f(_value){const{screen,modeConfig,getCommonVariables,getCommonStyles,interpolate,Extrapolate}=jsThis._closure;{const{showLength:showLength,snapDirection='left',moveSize=screen.width,stackInterval=18,scaleInterval=0.04,opacityInterval=0.1,rotateZDeg=30}=modeConfig;const transform=[];const{validLength:validLength,value:value,inputRange:inputRange}=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection});const{zIndex:zIndex,opacity:opacity}=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection});const styles={transform:transform,zIndex:zIndex,opacity:opacity};let translateX;let scale;let rotateZ;if(snapDirection==='left'){translateX=interpolate(value,inputRange,[-moveSize,0,validLength*stackInterval],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1,1,1-validLength*scaleInterval],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[-rotateZDeg,0,0],Extrapolate.CLAMP)+\"deg\";}else if(snapDirection==='right'){translateX=interpolate(value,inputRange,[-validLength*stackInterval,0,moveSize],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1-validLength*scaleInterval,1,1],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[0,0,rotateZDeg],Extrapolate.CLAMP)+\"deg\";}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ});return styles;}}";_f.__workletHash=3265668150098;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (37:11)";global.__reanimatedWorkletInit(_f);return _f;}();}function useHorizontalStackLayout(){var customAnimationConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var customConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var config=(0,_react.useMemo)(function(){return _objectSpread({type:customAnimationConfig.snapDirection==='right'?'negative':'positive',viewCount:customAnimationConfig.showLength},customConfig);},[customAnimationConfig,customConfig]);return{layout:horizontalStackLayout(customAnimationConfig),config:config};}function verticalStackLayout(){var modeConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return function(){var _f=function _f(_value){var showLength=modeConfig.showLength,_modeConfig$snapDirec2=modeConfig.snapDirection,snapDirection=_modeConfig$snapDirec2===void 0?'left':_modeConfig$snapDirec2,_modeConfig$moveSize2=modeConfig.moveSize,moveSize=_modeConfig$moveSize2===void 0?screen.width:_modeConfig$moveSize2,_modeConfig$stackInte2=modeConfig.stackInterval,stackInterval=_modeConfig$stackInte2===void 0?18:_modeConfig$stackInte2,_modeConfig$scaleInte2=modeConfig.scaleInterval,scaleInterval=_modeConfig$scaleInte2===void 0?0.04:_modeConfig$scaleInte2,_modeConfig$opacityIn2=modeConfig.opacityInterval,opacityInterval=_modeConfig$opacityIn2===void 0?0.1:_modeConfig$opacityIn2,_modeConfig$rotateZDe2=modeConfig.rotateZDeg,rotateZDeg=_modeConfig$rotateZDe2===void 0?30:_modeConfig$rotateZDe2;var transform=[];var _getCommonVariables2=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection}),validLength=_getCommonVariables2.validLength,value=_getCommonVariables2.value,inputRange=_getCommonVariables2.inputRange;var _getCommonStyles2=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection}),zIndex=_getCommonStyles2.zIndex,opacity=_getCommonStyles2.opacity;var styles={transform:transform,zIndex:zIndex,opacity:opacity};var translateX;var scale;var rotateZ;var translateY;if(snapDirection==='left'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-moveSize,0,0],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1,1,1-validLength*scaleInterval],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-rotateZDeg,0,0],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";translateY=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,validLength*stackInterval],_reactNativeReanimated.Extrapolate.CLAMP);}else if(snapDirection==='right'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,moveSize],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1-validLength*scaleInterval,1,1],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,rotateZDeg],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";translateY=(0,_reactNativeReanimated.interpolate)(value,inputRange,[validLength*stackInterval,0,0],_reactNativeReanimated.Extrapolate.CLAMP);}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ},{translateY:translateY});return styles;};_f._closure={screen:{width:screen.width},modeConfig:modeConfig,getCommonVariables:getCommonVariables,getCommonStyles:getCommonStyles,interpolate:_reactNativeReanimated.interpolate,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP}};_f.asString="function _f(_value){const{screen,modeConfig,getCommonVariables,getCommonStyles,interpolate,Extrapolate}=jsThis._closure;{const{showLength:showLength,snapDirection='left',moveSize=screen.width,stackInterval=18,scaleInterval=0.04,opacityInterval=0.1,rotateZDeg=30}=modeConfig;const transform=[];const{validLength:validLength,value:value,inputRange:inputRange}=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection});const{zIndex:zIndex,opacity:opacity}=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection});const styles={transform:transform,zIndex:zIndex,opacity:opacity};let translateX;let scale;let rotateZ;let translateY;if(snapDirection==='left'){translateX=interpolate(value,inputRange,[-moveSize,0,0],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1,1,1-validLength*scaleInterval],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[-rotateZDeg,0,0],Extrapolate.CLAMP)+\"deg\";translateY=interpolate(value,inputRange,[0,0,validLength*stackInterval],Extrapolate.CLAMP);}else if(snapDirection==='right'){translateX=interpolate(value,inputRange,[0,0,moveSize],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1-validLength*scaleInterval,1,1],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[0,0,rotateZDeg],Extrapolate.CLAMP)+\"deg\";translateY=interpolate(value,inputRange,[validLength*stackInterval,0,0],Extrapolate.CLAMP);}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ},{translateY:translateY});return styles;}}";_f.__workletHash=2365281434390;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (152:11)";global.__reanimatedWorkletInit(_f);return _f;}();}var getCommonVariables=function(){var _f=function _f(opts){var showLength=opts.showLength,_value=opts.value,snapDirection=opts.snapDirection;function easeInOutCubic(v){return v<0.5?4*v*v*v:1-Math.pow(-2*v+2,3)/2;}var page=Math.floor(Math.abs(_value));var diff=Math.abs(_value)%1;var value=_value<0?-(page+easeInOutCubic(diff)):page+easeInOutCubic(diff);var validLength=showLength-1;var inputRange;if(snapDirection==='left'){inputRange=[-1,0,validLength];}else if(snapDirection==='right'){inputRange=[-validLength,0,1];}else{throw Error('snapDirection must be set to either left or right');}return{inputRange:inputRange,validLength:validLength,value:value};};_f._closure={};_f.asString="function getCommonVariables(opts){const{showLength:showLength,value:_value,snapDirection:snapDirection}=opts;function easeInOutCubic(v){return v<0.5?4*v*v*v:1-Math.pow(-2*v+2,3)/2;}const page=Math.floor(Math.abs(_value));const diff=Math.abs(_value)%1;const value=_value<0?-(page+easeInOutCubic(diff)):page+easeInOutCubic(diff);const validLength=showLength-1;let inputRange;if(snapDirection==='left'){inputRange=[-1,0,validLength];}else if(snapDirection==='right'){inputRange=[-validLength,0,1];}else{throw Error('snapDirection must be set to either left or right');}return{inputRange:inputRange,validLength:validLength,value:value};}";_f.__workletHash=3893657980264;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (259:0)";global.__reanimatedWorkletInit(_f);return _f;}();var getCommonStyles=function(){var _f=function _f(opts){var snapDirection=opts.snapDirection,validLength=opts.validLength,value=opts.value,opacityInterval=opts.opacityInterval;var zIndex;var opacity;if(snapDirection==='left'){zIndex=Math.floor((0,_reactNativeReanimated.interpolate)(value,[-1.5,-1,-1+Number.MIN_VALUE,0,validLength],[Number.MIN_VALUE,validLength,validLength,validLength-1,-1])*10000)/100;opacity=(0,_reactNativeReanimated.interpolate)(value,[-1,0,validLength-1,validLength],[0.25,1,1-(validLength-1)*opacityInterval,0.25]);}else if(snapDirection==='right'){zIndex=Math.floor((0,_reactNativeReanimated.interpolate)(value,[-validLength,0,1-Number.MIN_VALUE,1,1.5],[1,validLength-1,validLength,validLength,Number.MIN_VALUE])*10000)/100;opacity=(0,_reactNativeReanimated.interpolate)(value,[-validLength,1-validLength,0,1],[0.25,1-(validLength-1)*opacityInterval,1,0.25]);}else{throw Error('snapDirection must be set to either left or right');}return{zIndex:zIndex,opacity:opacity};};_f._closure={interpolate:_reactNativeReanimated.interpolate};_f.asString="function getCommonStyles(opts){const{interpolate}=jsThis._closure;{const{snapDirection:snapDirection,validLength:validLength,value:value,opacityInterval:opacityInterval}=opts;let zIndex;let opacity;if(snapDirection==='left'){zIndex=Math.floor(interpolate(value,[-1.5,-1,-1+Number.MIN_VALUE,0,validLength],[Number.MIN_VALUE,validLength,validLength,validLength-1,-1])*10000)/100;opacity=interpolate(value,[-1,0,validLength-1,validLength],[0.25,1,1-(validLength-1)*opacityInterval,0.25]);}else if(snapDirection==='right'){zIndex=Math.floor(interpolate(value,[-validLength,0,1-Number.MIN_VALUE,1,1.5],[1,validLength-1,validLength,validLength,Number.MIN_VALUE])*10000)/100;opacity=interpolate(value,[-validLength,1-validLength,0,1],[0.25,1-(validLength-1)*opacityInterval,1,0.25]);}else{throw Error('snapDirection must be set to either left or right');}return{zIndex:zIndex,opacity:opacity};}}";_f.__workletHash=16145327689090;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (295:0)";global.__reanimatedWorkletInit(_f);return _f;}();
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.horizontalStackLayout=horizontalStackLayout;exports.useHorizontalStackLayout=useHorizontalStackLayout;exports.verticalStackLayout=verticalStackLayout;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=require("react");var _reactNative=require("react-native");var _reactNativeReanimated=require("react-native-reanimated");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 screen=_reactNative.Dimensions.get('window');function horizontalStackLayout(){var modeConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return function(){var _f=function _f(_value){var showLength=modeConfig.showLength,_modeConfig$snapDirec=modeConfig.snapDirection,snapDirection=_modeConfig$snapDirec===void 0?'left':_modeConfig$snapDirec,_modeConfig$moveSize=modeConfig.moveSize,moveSize=_modeConfig$moveSize===void 0?screen.width:_modeConfig$moveSize,_modeConfig$stackInte=modeConfig.stackInterval,stackInterval=_modeConfig$stackInte===void 0?18:_modeConfig$stackInte,_modeConfig$scaleInte=modeConfig.scaleInterval,scaleInterval=_modeConfig$scaleInte===void 0?0.04:_modeConfig$scaleInte,_modeConfig$opacityIn=modeConfig.opacityInterval,opacityInterval=_modeConfig$opacityIn===void 0?0.1:_modeConfig$opacityIn,_modeConfig$rotateZDe=modeConfig.rotateZDeg,rotateZDeg=_modeConfig$rotateZDe===void 0?30:_modeConfig$rotateZDe;var transform=[];var _getCommonVariables=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection}),validLength=_getCommonVariables.validLength,value=_getCommonVariables.value,inputRange=_getCommonVariables.inputRange;var _getCommonStyles=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection}),zIndex=_getCommonStyles.zIndex,opacity=_getCommonStyles.opacity;var styles={transform:transform,zIndex:zIndex,opacity:opacity};var translateX;var scale;var rotateZ;if(snapDirection==='left'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-moveSize,0,validLength*stackInterval],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1,1,1-validLength*scaleInterval],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-rotateZDeg,0,0],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";}else if(snapDirection==='right'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-validLength*stackInterval,0,moveSize],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1-validLength*scaleInterval,1,1],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,rotateZDeg],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ});return styles;};_f._closure={screen:{width:screen.width},modeConfig:modeConfig,getCommonVariables:getCommonVariables,getCommonStyles:getCommonStyles,interpolate:_reactNativeReanimated.interpolate,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP}};_f.asString="function _f(_value){const{screen,modeConfig,getCommonVariables,getCommonStyles,interpolate,Extrapolate}=jsThis._closure;{const{showLength:showLength,snapDirection='left',moveSize=screen.width,stackInterval=18,scaleInterval=0.04,opacityInterval=0.1,rotateZDeg=30}=modeConfig;const transform=[];const{validLength:validLength,value:value,inputRange:inputRange}=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection});const{zIndex:zIndex,opacity:opacity}=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection});const styles={transform:transform,zIndex:zIndex,opacity:opacity};let translateX;let scale;let rotateZ;if(snapDirection==='left'){translateX=interpolate(value,inputRange,[-moveSize,0,validLength*stackInterval],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1,1,1-validLength*scaleInterval],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[-rotateZDeg,0,0],Extrapolate.CLAMP)+\"deg\";}else if(snapDirection==='right'){translateX=interpolate(value,inputRange,[-validLength*stackInterval,0,moveSize],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1-validLength*scaleInterval,1,1],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[0,0,rotateZDeg],Extrapolate.CLAMP)+\"deg\";}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ});return styles;}}";_f.__workletHash=3265668150098;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (37:11)";return _f;}();}function useHorizontalStackLayout(){var customAnimationConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var customConfig=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var config=(0,_react.useMemo)(function(){return _objectSpread({type:customAnimationConfig.snapDirection==='right'?'negative':'positive',viewCount:customAnimationConfig.showLength},customConfig);},[customAnimationConfig,customConfig]);return{layout:horizontalStackLayout(customAnimationConfig),config:config};}function verticalStackLayout(){var modeConfig=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return function(){var _f=function _f(_value){var showLength=modeConfig.showLength,_modeConfig$snapDirec2=modeConfig.snapDirection,snapDirection=_modeConfig$snapDirec2===void 0?'left':_modeConfig$snapDirec2,_modeConfig$moveSize2=modeConfig.moveSize,moveSize=_modeConfig$moveSize2===void 0?screen.width:_modeConfig$moveSize2,_modeConfig$stackInte2=modeConfig.stackInterval,stackInterval=_modeConfig$stackInte2===void 0?18:_modeConfig$stackInte2,_modeConfig$scaleInte2=modeConfig.scaleInterval,scaleInterval=_modeConfig$scaleInte2===void 0?0.04:_modeConfig$scaleInte2,_modeConfig$opacityIn2=modeConfig.opacityInterval,opacityInterval=_modeConfig$opacityIn2===void 0?0.1:_modeConfig$opacityIn2,_modeConfig$rotateZDe2=modeConfig.rotateZDeg,rotateZDeg=_modeConfig$rotateZDe2===void 0?30:_modeConfig$rotateZDe2;var transform=[];var _getCommonVariables2=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection}),validLength=_getCommonVariables2.validLength,value=_getCommonVariables2.value,inputRange=_getCommonVariables2.inputRange;var _getCommonStyles2=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection}),zIndex=_getCommonStyles2.zIndex,opacity=_getCommonStyles2.opacity;var styles={transform:transform,zIndex:zIndex,opacity:opacity};var translateX;var scale;var rotateZ;var translateY;if(snapDirection==='left'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-moveSize,0,0],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1,1,1-validLength*scaleInterval],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[-rotateZDeg,0,0],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";translateY=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,validLength*stackInterval],_reactNativeReanimated.Extrapolate.CLAMP);}else if(snapDirection==='right'){translateX=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,moveSize],_reactNativeReanimated.Extrapolate.CLAMP);scale=(0,_reactNativeReanimated.interpolate)(value,inputRange,[1-validLength*scaleInterval,1,1],_reactNativeReanimated.Extrapolate.CLAMP);rotateZ=(0,_reactNativeReanimated.interpolate)(value,inputRange,[0,0,rotateZDeg],_reactNativeReanimated.Extrapolate.CLAMP)+"deg";translateY=(0,_reactNativeReanimated.interpolate)(value,inputRange,[validLength*stackInterval,0,0],_reactNativeReanimated.Extrapolate.CLAMP);}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ},{translateY:translateY});return styles;};_f._closure={screen:{width:screen.width},modeConfig:modeConfig,getCommonVariables:getCommonVariables,getCommonStyles:getCommonStyles,interpolate:_reactNativeReanimated.interpolate,Extrapolate:{CLAMP:_reactNativeReanimated.Extrapolate.CLAMP}};_f.asString="function _f(_value){const{screen,modeConfig,getCommonVariables,getCommonStyles,interpolate,Extrapolate}=jsThis._closure;{const{showLength:showLength,snapDirection='left',moveSize=screen.width,stackInterval=18,scaleInterval=0.04,opacityInterval=0.1,rotateZDeg=30}=modeConfig;const transform=[];const{validLength:validLength,value:value,inputRange:inputRange}=getCommonVariables({showLength:showLength,value:_value,snapDirection:snapDirection});const{zIndex:zIndex,opacity:opacity}=getCommonStyles({validLength:validLength,value:value,opacityInterval:opacityInterval,snapDirection:snapDirection});const styles={transform:transform,zIndex:zIndex,opacity:opacity};let translateX;let scale;let rotateZ;let translateY;if(snapDirection==='left'){translateX=interpolate(value,inputRange,[-moveSize,0,0],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1,1,1-validLength*scaleInterval],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[-rotateZDeg,0,0],Extrapolate.CLAMP)+\"deg\";translateY=interpolate(value,inputRange,[0,0,validLength*stackInterval],Extrapolate.CLAMP);}else if(snapDirection==='right'){translateX=interpolate(value,inputRange,[0,0,moveSize],Extrapolate.CLAMP);scale=interpolate(value,inputRange,[1-validLength*scaleInterval,1,1],Extrapolate.CLAMP);rotateZ=interpolate(value,inputRange,[0,0,rotateZDeg],Extrapolate.CLAMP)+\"deg\";translateY=interpolate(value,inputRange,[validLength*stackInterval,0,0],Extrapolate.CLAMP);}transform.push({translateX:translateX},{scale:scale},{rotateZ:rotateZ},{translateY:translateY});return styles;}}";_f.__workletHash=2365281434390;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (152:11)";return _f;}();}var getCommonVariables=function(){var _f=function _f(opts){var showLength=opts.showLength,_value=opts.value,snapDirection=opts.snapDirection;function easeInOutCubic(v){return v<0.5?4*v*v*v:1-Math.pow(-2*v+2,3)/2;}var page=Math.floor(Math.abs(_value));var diff=Math.abs(_value)%1;var value=_value<0?-(page+easeInOutCubic(diff)):page+easeInOutCubic(diff);var validLength=showLength-1;var inputRange;if(snapDirection==='left'){inputRange=[-1,0,validLength];}else if(snapDirection==='right'){inputRange=[-validLength,0,1];}else{throw Error('snapDirection must be set to either left or right');}return{inputRange:inputRange,validLength:validLength,value:value};};_f._closure={};_f.asString="function getCommonVariables(opts){const{showLength:showLength,value:_value,snapDirection:snapDirection}=opts;function easeInOutCubic(v){return v<0.5?4*v*v*v:1-Math.pow(-2*v+2,3)/2;}const page=Math.floor(Math.abs(_value));const diff=Math.abs(_value)%1;const value=_value<0?-(page+easeInOutCubic(diff)):page+easeInOutCubic(diff);const validLength=showLength-1;let inputRange;if(snapDirection==='left'){inputRange=[-1,0,validLength];}else if(snapDirection==='right'){inputRange=[-validLength,0,1];}else{throw Error('snapDirection must be set to either left or right');}return{inputRange:inputRange,validLength:validLength,value:value};}";_f.__workletHash=3893657980264;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (259:0)";return _f;}();var getCommonStyles=function(){var _f=function _f(opts){var snapDirection=opts.snapDirection,validLength=opts.validLength,value=opts.value,opacityInterval=opts.opacityInterval;var zIndex;var opacity;if(snapDirection==='left'){zIndex=Math.floor((0,_reactNativeReanimated.interpolate)(value,[-1.5,-1,-1+Number.MIN_VALUE,0,validLength],[Number.MIN_VALUE,validLength,validLength,validLength-1,-1])*10000)/100;opacity=(0,_reactNativeReanimated.interpolate)(value,[-1,0,validLength-1,validLength],[0.25,1,1-(validLength-1)*opacityInterval,0.25]);}else if(snapDirection==='right'){zIndex=Math.floor((0,_reactNativeReanimated.interpolate)(value,[-validLength,0,1-Number.MIN_VALUE,1,1.5],[1,validLength-1,validLength,validLength,Number.MIN_VALUE])*10000)/100;opacity=(0,_reactNativeReanimated.interpolate)(value,[-validLength,1-validLength,0,1],[0.25,1-(validLength-1)*opacityInterval,1,0.25]);}else{throw Error('snapDirection must be set to either left or right');}return{zIndex:zIndex,opacity:opacity};};_f._closure={interpolate:_reactNativeReanimated.interpolate};_f.asString="function getCommonStyles(opts){const{interpolate}=jsThis._closure;{const{snapDirection:snapDirection,validLength:validLength,value:value,opacityInterval:opacityInterval}=opts;let zIndex;let opacity;if(snapDirection==='left'){zIndex=Math.floor(interpolate(value,[-1.5,-1,-1+Number.MIN_VALUE,0,validLength],[Number.MIN_VALUE,validLength,validLength,validLength-1,-1])*10000)/100;opacity=interpolate(value,[-1,0,validLength-1,validLength],[0.25,1,1-(validLength-1)*opacityInterval,0.25]);}else if(snapDirection==='right'){zIndex=Math.floor(interpolate(value,[-validLength,0,1-Number.MIN_VALUE,1,1.5],[1,validLength-1,validLength,validLength,Number.MIN_VALUE])*10000)/100;opacity=interpolate(value,[-validLength,1-validLength,0,1],[0.25,1-(validLength-1)*opacityInterval,1,0.25]);}else{throw Error('snapDirection must be set to either left or right');}return{zIndex:zIndex,opacity:opacity};}}";_f.__workletHash=16145327689090;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/layouts/stack.ts (295:0)";return _f;}();
|
|
2
2
|
//# sourceMappingURL=stack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["stack.ts"],"names":["screen","Dimensions","get","horizontalStackLayout","modeConfig","_value","showLength","snapDirection","moveSize","width","stackInterval","scaleInterval","opacityInterval","rotateZDeg","transform","getCommonVariables","value","validLength","inputRange","getCommonStyles","zIndex","opacity","styles","translateX","scale","rotateZ","Extrapolate","CLAMP","push","interpolate","useHorizontalStackLayout","customAnimationConfig","customConfig","config","type","viewCount","layout","verticalStackLayout","translateY","opts","easeInOutCubic","v","Math","pow","page","floor","abs","diff","Error","Number","MIN_VALUE"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\nimport { Dimensions, TransformsStyle, ViewStyle } from 'react-native';\nimport { Extrapolate, interpolate } from 'react-native-reanimated';\nimport type { ComputedDirectionTypes, CustomConfig } from '../types';\n\nconst screen = Dimensions.get('window');\n\nexport interface ILayoutConfig {\n showLength?: number;\n moveSize?: number;\n stackInterval?: number;\n scaleInterval?: number;\n opacityInterval?: number;\n rotateZDeg?: number;\n snapDirection?: 'left' | 'right';\n}\n\nexport type TStackModeProps = ComputedDirectionTypes<{\n /**\n * Carousel Animated transitions.\n */\n mode?: 'horizontal-stack' | 'vertical-stack';\n /**\n * Stack animation style.\n * @default\n * mode: 'vertical',\n * snapDirection: 'right',\n * moveSize: window.width,\n * stackInterval: 30,\n * scaleInterval: 0.08,\n * rotateZDeg: 135,\n */\n modeConfig?: ILayoutConfig;\n}>;\n\nexport function horizontalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n 'worklet';\n\n const {\n showLength,\n snapDirection = 'left',\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n\n const transform: TransformsStyle['transform'] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n\n if (snapDirection === 'left') {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, validLength * stackInterval],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP\n )}deg`;\n } else if (snapDirection === 'right') {\n translateX = interpolate(\n value,\n inputRange,\n [-validLength * stackInterval, 0, moveSize],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP\n )}deg`;\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n }\n );\n\n return styles;\n };\n}\n\nexport function useHorizontalStackLayout(\n customAnimationConfig: ILayoutConfig = {},\n customConfig: CustomConfig = {}\n) {\n const config = useMemo(\n () => ({\n type:\n customAnimationConfig.snapDirection === 'right'\n ? 'negative'\n : 'positive',\n viewCount: customAnimationConfig.showLength,\n ...customConfig,\n }),\n [customAnimationConfig, customConfig]\n );\n\n return {\n layout: horizontalStackLayout(customAnimationConfig),\n config,\n };\n}\n\nexport function verticalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n 'worklet';\n\n const {\n showLength,\n snapDirection = 'left',\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n const transform: TransformsStyle['transform'] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n let translateY: number;\n\n if (snapDirection === 'left') {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, 0],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [0, 0, validLength * stackInterval],\n Extrapolate.CLAMP\n );\n } else if (snapDirection === 'right') {\n translateX = interpolate(\n value,\n inputRange,\n [0, 0, moveSize],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [validLength * stackInterval, 0, 0],\n Extrapolate.CLAMP\n );\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n },\n {\n translateY: translateY!,\n }\n );\n\n return styles;\n };\n}\n\nfunction getCommonVariables(opts: {\n value: number;\n showLength: number;\n snapDirection: 'left' | 'right';\n}) {\n 'worklet';\n\n const { showLength, value: _value, snapDirection } = opts;\n function easeInOutCubic(v: number): number {\n return v < 0.5 ? 4 * v * v * v : 1 - Math.pow(-2 * v + 2, 3) / 2;\n }\n const page = Math.floor(Math.abs(_value));\n const diff = Math.abs(_value) % 1;\n const value =\n _value < 0\n ? -(page + easeInOutCubic(diff))\n : page + easeInOutCubic(diff);\n const validLength = showLength! - 1;\n\n let inputRange: [number, number, number];\n\n if (snapDirection === 'left') {\n inputRange = [-1, 0, validLength];\n } else if (snapDirection === 'right') {\n inputRange = [-validLength, 0, 1];\n } else {\n throw Error('snapDirection must be set to either left or right');\n }\n\n return {\n inputRange,\n validLength,\n value,\n };\n}\n\nfunction getCommonStyles(opts: {\n value: number;\n validLength: number;\n opacityInterval: number;\n snapDirection: 'left' | 'right';\n}) {\n 'worklet';\n\n const { snapDirection, validLength, value, opacityInterval } = opts;\n\n let zIndex: number;\n let opacity: number;\n\n if (snapDirection === 'left') {\n zIndex =\n Math.floor(\n interpolate(\n value,\n [-1.5, -1, -1 + Number.MIN_VALUE, 0, validLength],\n [\n Number.MIN_VALUE,\n validLength,\n validLength,\n validLength - 1,\n -1,\n ]\n ) * 10000\n ) / 100;\n\n opacity = interpolate(\n value,\n [-1, 0, validLength - 1, validLength],\n [0.25, 1, 1 - (validLength - 1) * opacityInterval, 0.25]\n );\n } else if (snapDirection === 'right') {\n zIndex =\n Math.floor(\n interpolate(\n value,\n [-validLength, 0, 1 - Number.MIN_VALUE, 1, 1.5],\n [\n 1,\n validLength - 1,\n validLength,\n validLength,\n Number.MIN_VALUE,\n ]\n ) * 10000\n ) / 100;\n opacity = interpolate(\n value,\n [-validLength, 1 - validLength, 0, 1],\n [0.25, 1 - (validLength - 1) * opacityInterval, 1, 0.25]\n );\n } else {\n throw Error('snapDirection must be set to either left or right');\n }\n\n return {\n zIndex,\n opacity,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["stack.ts"],"names":["screen","Dimensions","get","horizontalStackLayout","modeConfig","_value","showLength","snapDirection","moveSize","width","stackInterval","scaleInterval","opacityInterval","rotateZDeg","transform","getCommonVariables","value","validLength","inputRange","getCommonStyles","zIndex","opacity","styles","translateX","scale","rotateZ","Extrapolate","CLAMP","push","interpolate","useHorizontalStackLayout","customAnimationConfig","customConfig","config","type","viewCount","layout","verticalStackLayout","translateY","opts","easeInOutCubic","v","Math","pow","page","floor","abs","diff","Error","Number","MIN_VALUE"],"mappings":"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","sourcesContent":["import { useMemo } from 'react';\nimport { Dimensions, TransformsStyle, ViewStyle } from 'react-native';\nimport { Extrapolate, interpolate } from 'react-native-reanimated';\nimport type { ComputedDirectionTypes, CustomConfig } from '../types';\n\nconst screen = Dimensions.get('window');\n\nexport interface ILayoutConfig {\n showLength?: number;\n moveSize?: number;\n stackInterval?: number;\n scaleInterval?: number;\n opacityInterval?: number;\n rotateZDeg?: number;\n snapDirection?: 'left' | 'right';\n}\n\nexport type TStackModeProps = ComputedDirectionTypes<{\n /**\n * Carousel Animated transitions.\n */\n mode?: 'horizontal-stack' | 'vertical-stack';\n /**\n * Stack animation style.\n * @default\n * mode: 'vertical',\n * snapDirection: 'right',\n * moveSize: window.width,\n * stackInterval: 30,\n * scaleInterval: 0.08,\n * rotateZDeg: 135,\n */\n modeConfig?: ILayoutConfig;\n}>;\n\nexport function horizontalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n 'worklet';\n\n const {\n showLength,\n snapDirection = 'left',\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n\n const transform: TransformsStyle['transform'] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n\n if (snapDirection === 'left') {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, validLength * stackInterval],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP\n )}deg`;\n } else if (snapDirection === 'right') {\n translateX = interpolate(\n value,\n inputRange,\n [-validLength * stackInterval, 0, moveSize],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP\n )}deg`;\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n }\n );\n\n return styles;\n };\n}\n\nexport function useHorizontalStackLayout(\n customAnimationConfig: ILayoutConfig = {},\n customConfig: CustomConfig = {}\n) {\n const config = useMemo(\n () => ({\n type:\n customAnimationConfig.snapDirection === 'right'\n ? 'negative'\n : 'positive',\n viewCount: customAnimationConfig.showLength,\n ...customConfig,\n }),\n [customAnimationConfig, customConfig]\n );\n\n return {\n layout: horizontalStackLayout(customAnimationConfig),\n config,\n };\n}\n\nexport function verticalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n 'worklet';\n\n const {\n showLength,\n snapDirection = 'left',\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n const transform: TransformsStyle['transform'] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n let translateY: number;\n\n if (snapDirection === 'left') {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, 0],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [0, 0, validLength * stackInterval],\n Extrapolate.CLAMP\n );\n } else if (snapDirection === 'right') {\n translateX = interpolate(\n value,\n inputRange,\n [0, 0, moveSize],\n Extrapolate.CLAMP\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [validLength * stackInterval, 0, 0],\n Extrapolate.CLAMP\n );\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n },\n {\n translateY: translateY!,\n }\n );\n\n return styles;\n };\n}\n\nfunction getCommonVariables(opts: {\n value: number;\n showLength: number;\n snapDirection: 'left' | 'right';\n}) {\n 'worklet';\n\n const { showLength, value: _value, snapDirection } = opts;\n function easeInOutCubic(v: number): number {\n return v < 0.5 ? 4 * v * v * v : 1 - Math.pow(-2 * v + 2, 3) / 2;\n }\n const page = Math.floor(Math.abs(_value));\n const diff = Math.abs(_value) % 1;\n const value =\n _value < 0\n ? -(page + easeInOutCubic(diff))\n : page + easeInOutCubic(diff);\n const validLength = showLength! - 1;\n\n let inputRange: [number, number, number];\n\n if (snapDirection === 'left') {\n inputRange = [-1, 0, validLength];\n } else if (snapDirection === 'right') {\n inputRange = [-validLength, 0, 1];\n } else {\n throw Error('snapDirection must be set to either left or right');\n }\n\n return {\n inputRange,\n validLength,\n value,\n };\n}\n\nfunction getCommonStyles(opts: {\n value: number;\n validLength: number;\n opacityInterval: number;\n snapDirection: 'left' | 'right';\n}) {\n 'worklet';\n\n const { snapDirection, validLength, value, opacityInterval } = opts;\n\n let zIndex: number;\n let opacity: number;\n\n if (snapDirection === 'left') {\n zIndex =\n Math.floor(\n interpolate(\n value,\n [-1.5, -1, -1 + Number.MIN_VALUE, 0, validLength],\n [\n Number.MIN_VALUE,\n validLength,\n validLength,\n validLength - 1,\n -1,\n ]\n ) * 10000\n ) / 100;\n\n opacity = interpolate(\n value,\n [-1, 0, validLength - 1, validLength],\n [0.25, 1, 1 - (validLength - 1) * opacityInterval, 0.25]\n );\n } else if (snapDirection === 'right') {\n zIndex =\n Math.floor(\n interpolate(\n value,\n [-validLength, 0, 1 - Number.MIN_VALUE, 1, 1.5],\n [\n 1,\n validLength - 1,\n validLength,\n validLength,\n Number.MIN_VALUE,\n ]\n ) * 10000\n ) / 100;\n opacity = interpolate(\n value,\n [-validLength, 1 - validLength, 0, 1],\n [0.25, 1 - (validLength - 1) * opacityInterval, 1, 0.25]\n );\n } else {\n throw Error('snapDirection must be set to either left or right');\n }\n\n return {\n zIndex,\n opacity,\n };\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.computedFillDataWithAutoFillData=computedFillDataWithAutoFillData;exports.computedOffsetXValueWithAutoFillData=void 0;exports.computedRealIndexWithAutoFillData=computedRealIndexWithAutoFillData;exports.convertToSharedIndex=void 0;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/github/react-native-reanimated-carousel/src/utils/computedWithAutoFillData.ts (5:0)";
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.computedFillDataWithAutoFillData=computedFillDataWithAutoFillData;exports.computedOffsetXValueWithAutoFillData=void 0;exports.computedRealIndexWithAutoFillData=computedRealIndexWithAutoFillData;exports.convertToSharedIndex=void 0;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/github/react-native-reanimated-carousel/src/utils/computedWithAutoFillData.ts (5:0)";return _f;}();var convertToSharedIndex=function(){var _f=function _f(params){var loop=params.loop,rawDataLength=params.rawDataLength,index=params.index,autoFillData=params.autoFillData;if(isAutoFillData({loop:loop,autoFillData:autoFillData})){switch(rawDataLength){case SINGLE_ITEM:return 0;case DOUBLE_ITEM:return index%2;}}return index;};_f._closure={isAutoFillData:isAutoFillData,SINGLE_ITEM:SINGLE_ITEM,DOUBLE_ITEM:DOUBLE_ITEM};_f.asString="function convertToSharedIndex(params){const{isAutoFillData,SINGLE_ITEM,DOUBLE_ITEM}=jsThis._closure;{const{loop:loop,rawDataLength:rawDataLength,index:index,autoFillData:autoFillData}=params;if(isAutoFillData({loop:loop,autoFillData:autoFillData})){switch(rawDataLength){case SINGLE_ITEM:return 0;case DOUBLE_ITEM:return index%2;}}return index;}}";_f.__workletHash=15638699687620;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/utils/computedWithAutoFillData.ts (15:7)";return _f;}();exports.convertToSharedIndex=convertToSharedIndex;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/github/react-native-reanimated-carousel/src/utils/computedWithAutoFillData.ts (33:7)";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
2
|
//# sourceMappingURL=computedWithAutoFillData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["computedWithAutoFillData.ts"],"names":["SINGLE_ITEM","DATA_LENGTH","DOUBLE_ITEM","isAutoFillData","params","loop","autoFillData","convertToSharedIndex","rawDataLength","index","computedOffsetXValueWithAutoFillData","value","size","computedRealIndexWithAutoFillData","dataLength","computedFillDataWithAutoFillData","data"],"mappings":"uSAAA,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,
|
|
1
|
+
{"version":3,"sources":["computedWithAutoFillData.ts"],"names":["SINGLE_ITEM","DATA_LENGTH","DOUBLE_ITEM","isAutoFillData","params","loop","autoFillData","convertToSharedIndex","rawDataLength","index","computedOffsetXValueWithAutoFillData","value","size","computedRealIndexWithAutoFillData","dataLength","computedFillDataWithAutoFillData","data"],"mappings":"uSAAA,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,wRAOeC,CAAAA,oB,+BACZH,M,CACF,CAEE,GAAQC,CAAAA,IAAR,CAAqDD,MAArD,CAAQC,IAAR,CAAcG,aAAd,CAAqDJ,MAArD,CAAcI,aAAd,CAA6BC,KAA7B,CAAqDL,MAArD,CAA6BK,KAA7B,CAAoCH,YAApC,CAAqDF,MAArD,CAAoCE,YAApC,CAEA,GAAIH,cAAc,CAAC,CAAEE,IAAI,CAAJA,IAAF,CAAQC,YAAY,CAAZA,YAAR,CAAD,CAAlB,CAA4C,CACxC,OAAQE,aAAR,EACI,IAAKR,CAAAA,WAAL,CACI,MAAO,EAAP,CACJ,IAAKE,CAAAA,WAAL,CACI,MAAOO,CAAAA,KAAK,CAAG,CAAf,CAJR,CAMH,CAED,MAAOA,CAAAA,KAAP,CACH,C,6BAlBKN,c,aAKKH,W,aAGAE,W,2kBAYKQ,CAAAA,oC,+BACZN,M,CAKF,CAGE,GAAQI,CAAAA,aAAR,CAA2DJ,MAA3D,CAAQI,aAAR,CAAuBG,KAAvB,CAA2DP,MAA3D,CAAuBO,KAAvB,CAA8BC,IAA9B,CAA2DR,MAA3D,CAA8BQ,IAA9B,CAAoCP,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,MAAOW,CAAAA,KAAK,CAAGC,IAAf,CACJ,IAAKV,CAAAA,WAAL,CACI,MAAOS,CAAAA,KAAK,EAAIC,IAAI,CAAG,CAAX,CAAZ,CAJR,CAMH,CAED,MAAOD,CAAAA,KAAP,CACH,C,6BAvCKR,c,aAKKH,W,aAGAE,W,ipBAiCJ,QAASW,CAAAA,iCAAT,CACHT,MADG,CAKL,CACE,GAAQK,CAAAA,KAAR,CAAkDL,MAAlD,CAAQK,KAAR,CAAeK,UAAf,CAAkDV,MAAlD,CAAeU,UAAf,CAA2BT,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,OAAQQ,UAAR,EACI,IAAKd,CAAAA,WAAL,CACI,MAAOS,CAAAA,KAAK,CAAG,CAAf,CACJ,IAAKP,CAAAA,WAAL,CACI,MAAOO,CAAAA,KAAK,CAAG,CAAf,CAJR,CAMH,CAED,MAAOA,CAAAA,KAAP,CACH,CAEM,QAASM,CAAAA,gCAAT,CACHX,MADG,CAKA,CACH,GAAQY,CAAAA,IAAR,CAAiDZ,MAAjD,CAAQY,IAAR,CAAcX,IAAd,CAAiDD,MAAjD,CAAcC,IAAd,CAAoBC,YAApB,CAAiDF,MAAjD,CAAoBE,YAApB,CAAkCQ,UAAlC,CAAiDV,MAAjD,CAAkCU,UAAlC,CAEA,GAAIX,cAAc,CAAC,CAAEE,IAAI,CAAJA,IAAF,CAAQC,YAAY,CAAZA,YAAR,CAAD,CAAlB,CAA4C,CACxC,OAAQQ,UAAR,EACI,IAAKd,CAAAA,WAAL,CACI,MAAO,CAACgB,IAAI,CAAC,CAAD,CAAL,CAAUA,IAAI,CAAC,CAAD,CAAd,CAAmBA,IAAI,CAAC,CAAD,CAAvB,CAAP,CACJ,IAAKd,CAAAA,WAAL,CACI,MAAO,CAACc,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 convertToSharedIndex(\n params: BaseParams<{ index: number; rawDataLength: number }>\n) {\n 'worklet';\n const { loop, rawDataLength, index, autoFillData } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (rawDataLength) {\n case SINGLE_ITEM:\n return 0;\n case DOUBLE_ITEM:\n return index % 2;\n }\n }\n\n return index;\n}\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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.dealWithAnimation=void 0;var _reactNativeReanimated=require("react-native-reanimated");var dealWithAnimation=function(){var _f=function _f(withAnimation){switch(withAnimation.type){case'spring':return function(value,cb){return(0,_reactNativeReanimated.withSpring)(value,withAnimation.config,function(){var _f=function _f(isFinished){return cb(isFinished);};_f._closure={cb:cb};_f.asString="function _f(isFinished){const{cb}=jsThis._closure;{return cb(isFinished);}}";_f.__workletHash=13669261011863;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/utils/dealWithAnimation.ts (11:63)";
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.dealWithAnimation=void 0;var _reactNativeReanimated=require("react-native-reanimated");var dealWithAnimation=function(){var _f=function _f(withAnimation){switch(withAnimation.type){case'spring':return function(value,cb){return(0,_reactNativeReanimated.withSpring)(value,withAnimation.config,function(){var _f=function _f(isFinished){return cb(isFinished);};_f._closure={cb:cb};_f.asString="function _f(isFinished){const{cb}=jsThis._closure;{return cb(isFinished);}}";_f.__workletHash=13669261011863;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/utils/dealWithAnimation.ts (11:63)";return _f;}());};case'timing':return function(value,cb){return(0,_reactNativeReanimated.withTiming)(value,withAnimation.config,function(){var _f=function _f(isFinished){return cb(isFinished);};_f._closure={cb:cb};_f.asString="function _f(isFinished){const{cb}=jsThis._closure;{return cb(isFinished);}}";_f.__workletHash=13669261011863;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/utils/dealWithAnimation.ts (17:63)";return _f;}());};}};_f._closure={withSpring:_reactNativeReanimated.withSpring,withTiming:_reactNativeReanimated.withTiming};_f.asString="function dealWithAnimation(withAnimation){const{withSpring,withTiming}=jsThis._closure;{switch(withAnimation.type){case'spring':return function(value,cb){return withSpring(value,withAnimation.config,function(isFinished){return cb(isFinished);});};case'timing':return function(value,cb){return withTiming(value,withAnimation.config,function(isFinished){return cb(isFinished);});};}}}";_f.__workletHash=5914958361512;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/utils/dealWithAnimation.ts (4:7)";return _f;}();exports.dealWithAnimation=dealWithAnimation;
|
|
2
2
|
//# sourceMappingURL=dealWithAnimation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dealWithAnimation.ts"],"names":["dealWithAnimation","withAnimation","type","value","cb","config","isFinished","withSpring","withTiming"],"mappings":"0FACA,8D,GAEgBA,CAAAA,iB,+BACZC,a,CAC4D,CAE5D,OAAQA,aAAa,CAACC,IAAtB,EACI,IAAK,QAAL,CACI,MAAO,UAACC,KAAD,CAAQC,EAAR,CAAe,CAClB,MAAO,sCAAWD,KAAX,CAAkBF,aAAa,CAACI,MAAhC,mBAAwC,YAACC,UAAD,QAC3CF,CAAAA,EAAE,CAACE,UAAD,CADyC,EAAxC,iBATRF,EASQ,
|
|
1
|
+
{"version":3,"sources":["dealWithAnimation.ts"],"names":["dealWithAnimation","withAnimation","type","value","cb","config","isFinished","withSpring","withTiming"],"mappings":"0FACA,8D,GAEgBA,CAAAA,iB,+BACZC,a,CAC4D,CAE5D,OAAQA,aAAa,CAACC,IAAtB,EACI,IAAK,QAAL,CACI,MAAO,UAACC,KAAD,CAAQC,EAAR,CAAe,CAClB,MAAO,sCAAWD,KAAX,CAAkBF,aAAa,CAACI,MAAhC,mBAAwC,YAACC,UAAD,QAC3CF,CAAAA,EAAE,CAACE,UAAD,CADyC,EAAxC,iBATRF,EASQ,iQAAP,CAGH,CAJD,CAKJ,IAAK,QAAL,CACI,MAAO,UAACD,KAAD,CAAQC,EAAR,CAAe,CAClB,MAAO,sCAAWD,KAAX,CAAkBF,aAAa,CAACI,MAAhC,mBAAwC,YAACC,UAAD,QAC3CF,CAAAA,EAAE,CAACE,UAAD,CADyC,EAAxC,iBAfRF,EAeQ,iQAAP,CAGH,CAJD,CARR,CAcH,C,yBAhBcG,iC,YAKAC,iC","sourcesContent":["import type { WithAnimation } from '../types';\nimport { withSpring, withTiming } from 'react-native-reanimated';\n\nexport function dealWithAnimation(\n withAnimation: WithAnimation\n): (value: number, cb: (isFinished: boolean) => void) => number {\n 'worklet';\n switch (withAnimation.type) {\n case 'spring':\n return (value, cb) => {\n return withSpring(value, withAnimation.config, (isFinished) =>\n cb(isFinished as boolean)\n );\n };\n case 'timing':\n return (value, cb) => {\n return withTiming(value, withAnimation.config, (isFinished) =>\n cb(isFinished as boolean)\n );\n };\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.log=log;exports.round=void 0;function log(){var _console;(_console=console).log.apply(_console,arguments);}var round=function(){var _f=function _f(number){return Math.round(number);};_f._closure={};_f.asString="function round(number){return Math.round(number);}";_f.__workletHash=13727510784300;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/utils/log.ts (9:7)";
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.log=log;exports.round=void 0;function log(){var _console;(_console=console).log.apply(_console,arguments);}var round=function(){var _f=function _f(number){return Math.round(number);};_f._closure={};_f.asString="function round(number){return Math.round(number);}";_f.__workletHash=13727510784300;_f.__location="/Users/zhaodonghao/code/github/react-native-reanimated-carousel/src/utils/log.ts (9:7)";return _f;}();exports.round=round;
|
|
2
2
|
//# sourceMappingURL=log.js.map
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Carousel"],"mappings":"AACA,OAAOA,QAAP,MAAqB,YAArB;AAEA,eAAeA,QAAf","sourcesContent":["export type { TCarouselProps, ICarouselInstance } from './types';\nimport Carousel from './Carousel';\n\nexport default Carousel;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-reanimated-carousel",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Simple carousel component.fully implemented using Reanimated 2.Infinitely scrolling, very smooth.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"types": "lib/typescript/index.d.ts",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"react-native": "0.63.4",
|
|
79
79
|
"react-native-builder-bob": "^0.18.1",
|
|
80
80
|
"react-native-gesture-handler": "^1.10.3",
|
|
81
|
-
"react-native-reanimated": "
|
|
81
|
+
"react-native-reanimated": "2.8.0",
|
|
82
82
|
"release-it": "^14.2.2",
|
|
83
83
|
"sponsorkit": "^0.1.3",
|
|
84
84
|
"typescript": "^4.0.8"
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"react": ">=16.8.0",
|
|
88
88
|
"react-native": ">=0.6.0",
|
|
89
89
|
"react-native-gesture-handler": "*",
|
|
90
|
-
"react-native-reanimated": ">=2.
|
|
90
|
+
"react-native-reanimated": ">=2.7.0"
|
|
91
91
|
},
|
|
92
92
|
"jest": {
|
|
93
93
|
"preset": "react-native",
|