react-native-reanimated-carousel 3.5.0 → 3.5.1
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/LazyView.js.map +1 -1
- package/lib/commonjs/ScrollViewGesture.js +1 -1
- package/lib/commonjs/ScrollViewGesture.js.map +1 -1
- package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/layouts/ParallaxLayout.js +1 -1
- package/lib/commonjs/layouts/ParallaxLayout.js.map +1 -1
- package/lib/module/Carousel.js +4 -4
- package/lib/module/Carousel.js.map +1 -1
- package/lib/module/LazyView.js.map +1 -1
- package/lib/module/ScrollViewGesture.js.map +1 -1
- package/lib/module/hooks/useAutoPlay.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/layouts/ParallaxLayout.js.map +1 -1
- package/lib/typescript/LazyView.d.ts +2 -1
- package/lib/typescript/ScrollViewGesture.d.ts +2 -1
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/layouts/ParallaxLayout.d.ts +3 -2
- package/package.json +2 -1
- package/src/Carousel.tsx +29 -27
- package/src/LazyView.tsx +2 -1
- package/src/ScrollViewGesture.tsx +2 -1
- package/src/hooks/useAutoPlay.ts +1 -1
- package/src/index.tsx +2 -2
- package/src/layouts/ParallaxLayout.tsx +3 -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 _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=require("react-native-reanimated");var _useAutoPlay2=require("./hooks/useAutoPlay");var _useCarouselController=require("./hooks/useCarouselController");var _useCommonVariables=require("./hooks/useCommonVariables");var _useInitProps=require("./hooks/useInitProps");var _useLayoutConfig=require("./hooks/useLayoutConfig");var _useOnProgressChange=require("./hooks/useOnProgressChange");var _usePropsErrorBoundary=require("./hooks/usePropsErrorBoundary");var _useVisibleRanges=require("./hooks/useVisibleRanges");var _BaseLayout=require("./layouts/BaseLayout");var _ScrollViewGesture=require("./ScrollViewGesture");var _store=require("./store");var _computedWithAutoFillData=require("./utils/computedWithAutoFillData");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx";var _worklet_10125235996566_init_data={code:"function anonymous() {\n const {\n size,\n dataLength,\n handlerOffset,\n loop\n } = this._closure;\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n if (!loop) return handlerOffset.value;\n return isNaN(x) ? 0 : x;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"size\",\"dataLength\",\"handlerOffset\",\"loop\",\"_closure\",\"totalSize\",\"x\",\"value\",\"isNaN\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx\"],\"mappings\":\"AA2DoC,SAAAA,SAAMA,CAAA;EAAA;IAAAC,IAAA;IAAAC,UAAA;IAAAC,aAAA;IAAAC;EAAA,SAAAC,QAAA;EACpC,MAAMC,SAAS,GAAGL,IAAI,GAAGC,UAAU;EACnC,MAAMK,CAAC,GAAGJ,aAAa,CAACK,KAAK,GAAGF,SAAS;EAEzC,IAAI,CAACF,IAAI,EACP,OAAOD,aAAa,CAACK,KAAK;EAE5B,OAAOC,KAAK,CAACF,CAAC,CAAC,GAAG,CAAC,GAAGA,CAAC;AACzB\"}"};var Carousel=_react.default.forwardRef(function(_props,ref){var props=(0,_useInitProps.useInitProps)(_props);var testID=props.testID,loop=props.loop,autoFillData=props.autoFillData,data=props.data,dataLength=props.dataLength,rawData=props.rawData,rawDataLength=props.rawDataLength,mode=props.mode,style=props.style,width=props.width,height=props.height,vertical=props.vertical,autoPlay=props.autoPlay,windowSize=props.windowSize,autoPlayReverse=props.autoPlayReverse,autoPlayInterval=props.autoPlayInterval,scrollAnimationDuration=props.scrollAnimationDuration,withAnimation=props.withAnimation,renderItem=props.renderItem,onScrollEnd=props.onScrollEnd,onSnapToItem=props.onSnapToItem,_onScrollBegin=props.onScrollBegin,onProgressChange=props.onProgressChange,customAnimation=props.customAnimation,defaultIndex=props.defaultIndex;var commonVariables=(0,_useCommonVariables.useCommonVariables)(props);var size=commonVariables.size,handlerOffset=commonVariables.handlerOffset;var offsetX=(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-5,-27];var _f=function _f(){var totalSize=size*dataLength;var x=handlerOffset.value%totalSize;if(!loop)return handlerOffset.value;return isNaN(x)?0:x;};_f._closure={size:size,dataLength:dataLength,handlerOffset:handlerOffset,loop:loop};_f.__initData=_worklet_10125235996566_init_data;_f.__workletHash=10125235996566;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[loop,size,dataLength]);(0,_usePropsErrorBoundary.usePropsErrorBoundary)(Object.assign({},props,{dataLength:dataLength}));(0,_useOnProgressChange.useOnProgressChange)({autoFillData:autoFillData,loop:loop,size:size,offsetX:offsetX,rawDataLength:rawDataLength,onProgressChange:onProgressChange});var carouselController=(0,_useCarouselController.useCarouselController)({loop:loop,size:size,dataLength:dataLength,autoFillData:autoFillData,handlerOffset:handlerOffset,withAnimation:withAnimation,defaultIndex:defaultIndex,onScrollEnd:function onScrollEnd(){return(0,_reactNativeReanimated.runOnJS)(_onScrollEnd)();},onScrollBegin:function onScrollBegin(){return!!_onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(_onScrollBegin)();},duration:scrollAnimationDuration});var next=carouselController.next,prev=carouselController.prev,scrollTo=carouselController.scrollTo,getSharedIndex=carouselController.getSharedIndex,getCurrentIndex=carouselController.getCurrentIndex;var _useAutoPlay=(0,_useAutoPlay2.useAutoPlay)({autoPlay:autoPlay,autoPlayInterval:autoPlayInterval,autoPlayReverse:autoPlayReverse,carouselController:carouselController}),startAutoPlay=_useAutoPlay.start,pauseAutoPlay=_useAutoPlay.pause;var _onScrollEnd=_react.default.useCallback(function(){var _sharedIndex=Math.round(getSharedIndex());var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:_sharedIndex,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});if(onSnapToItem)onSnapToItem(realIndex);if(onScrollEnd)onScrollEnd(realIndex);},[loop,autoFillData,rawDataLength,getSharedIndex,onSnapToItem,onScrollEnd]);var scrollViewGestureOnScrollBegin=_react.default.useCallback(function(){pauseAutoPlay();_onScrollBegin==null?void 0:_onScrollBegin();},[_onScrollBegin,pauseAutoPlay]);var scrollViewGestureOnScrollEnd=_react.default.useCallback(function(){startAutoPlay();_onScrollEnd();},[_onScrollEnd,startAutoPlay]);var scrollViewGestureOnTouchBegin=_react.default.useCallback(pauseAutoPlay,[pauseAutoPlay]);var scrollViewGestureOnTouchEnd=_react.default.useCallback(startAutoPlay,[startAutoPlay]);_react.default.useImperativeHandle(ref,function(){return{next:next,prev:prev,getCurrentIndex:getCurrentIndex,scrollTo:scrollTo};},[getCurrentIndex,next,prev,scrollTo]);var visibleRanges=(0,_useVisibleRanges.useVisibleRanges)({total:dataLength,viewSize:size,translation:handlerOffset,windowSize:windowSize});var layoutConfig=(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},props,{size:size}));var renderLayout=_react.default.useCallback(function(item,i){var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:i,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});return(0,_jsxRuntime.jsx)(_BaseLayout.BaseLayout,{index:i,handlerOffset:offsetX,visibleRanges:visibleRanges,animationStyle:customAnimation||layoutConfig,children:function children(_ref){var animationValue=_ref.animationValue;return renderItem({item:item,index:realIndex,animationValue:animationValue});}},i);},[loop,rawData,offsetX,visibleRanges,autoFillData,renderItem,layoutConfig,customAnimation]);return(0,_jsxRuntime.jsx)(_store.CTX.Provider,{value:{props:props,common:commonVariables},children:(0,_jsxRuntime.jsx)(_ScrollViewGesture.ScrollViewGesture,{size:size,translation:handlerOffset,style:[styles.container,{width:width||"100%",height:height||"100%"},style,vertical?styles.itemsVertical:styles.itemsHorizontal],testID:testID,onScrollBegin:scrollViewGestureOnScrollBegin,onScrollEnd:scrollViewGestureOnScrollEnd,onTouchBegin:scrollViewGestureOnTouchBegin,onTouchEnd:scrollViewGestureOnTouchEnd,children:data.map(renderLayout)},mode)});});var _default=
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=require("react-native-reanimated");var _useAutoPlay2=require("./hooks/useAutoPlay");var _useCarouselController=require("./hooks/useCarouselController");var _useCommonVariables=require("./hooks/useCommonVariables");var _useInitProps=require("./hooks/useInitProps");var _useLayoutConfig=require("./hooks/useLayoutConfig");var _useOnProgressChange=require("./hooks/useOnProgressChange");var _usePropsErrorBoundary=require("./hooks/usePropsErrorBoundary");var _useVisibleRanges=require("./hooks/useVisibleRanges");var _BaseLayout=require("./layouts/BaseLayout");var _ScrollViewGesture=require("./ScrollViewGesture");var _store=require("./store");var _computedWithAutoFillData=require("./utils/computedWithAutoFillData");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx";var _worklet_10125235996566_init_data={code:"function anonymous() {\n const {\n size,\n dataLength,\n handlerOffset,\n loop\n } = this._closure;\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n if (!loop) return handlerOffset.value;\n return isNaN(x) ? 0 : x;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"size\",\"dataLength\",\"handlerOffset\",\"loop\",\"_closure\",\"totalSize\",\"x\",\"value\",\"isNaN\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/Carousel.tsx\"],\"mappings\":\"AA2DoC,SAAAA,SAAMA,CAAA;EAAA;IAAAC,IAAA;IAAAC,UAAA;IAAAC,aAAA;IAAAC;EAAA,SAAAC,QAAA;EACpC,MAAMC,SAAS,GAAGL,IAAI,GAAGC,UAAU;EACnC,MAAMK,CAAC,GAAGJ,aAAa,CAACK,KAAK,GAAGF,SAAS;EAEzC,IAAI,CAACF,IAAI,EACP,OAAOD,aAAa,CAACK,KAAK;EAE5B,OAAOC,KAAK,CAACF,CAAC,CAAC,GAAG,CAAC,GAAGA,CAAC;AACzB\"}"};var Carousel=_react.default.forwardRef(function(_props,ref){var props=(0,_useInitProps.useInitProps)(_props);var testID=props.testID,loop=props.loop,autoFillData=props.autoFillData,data=props.data,dataLength=props.dataLength,rawData=props.rawData,rawDataLength=props.rawDataLength,mode=props.mode,style=props.style,width=props.width,height=props.height,vertical=props.vertical,autoPlay=props.autoPlay,windowSize=props.windowSize,autoPlayReverse=props.autoPlayReverse,autoPlayInterval=props.autoPlayInterval,scrollAnimationDuration=props.scrollAnimationDuration,withAnimation=props.withAnimation,renderItem=props.renderItem,onScrollEnd=props.onScrollEnd,onSnapToItem=props.onSnapToItem,_onScrollBegin=props.onScrollBegin,onProgressChange=props.onProgressChange,customAnimation=props.customAnimation,defaultIndex=props.defaultIndex;var commonVariables=(0,_useCommonVariables.useCommonVariables)(props);var size=commonVariables.size,handlerOffset=commonVariables.handlerOffset;var offsetX=(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-5,-27];var _f=function _f(){var totalSize=size*dataLength;var x=handlerOffset.value%totalSize;if(!loop)return handlerOffset.value;return isNaN(x)?0:x;};_f._closure={size:size,dataLength:dataLength,handlerOffset:handlerOffset,loop:loop};_f.__initData=_worklet_10125235996566_init_data;_f.__workletHash=10125235996566;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[loop,size,dataLength]);(0,_usePropsErrorBoundary.usePropsErrorBoundary)(Object.assign({},props,{dataLength:dataLength}));(0,_useOnProgressChange.useOnProgressChange)({autoFillData:autoFillData,loop:loop,size:size,offsetX:offsetX,rawDataLength:rawDataLength,onProgressChange:onProgressChange});var carouselController=(0,_useCarouselController.useCarouselController)({loop:loop,size:size,dataLength:dataLength,autoFillData:autoFillData,handlerOffset:handlerOffset,withAnimation:withAnimation,defaultIndex:defaultIndex,onScrollEnd:function onScrollEnd(){return(0,_reactNativeReanimated.runOnJS)(_onScrollEnd)();},onScrollBegin:function onScrollBegin(){return!!_onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(_onScrollBegin)();},duration:scrollAnimationDuration});var next=carouselController.next,prev=carouselController.prev,scrollTo=carouselController.scrollTo,getSharedIndex=carouselController.getSharedIndex,getCurrentIndex=carouselController.getCurrentIndex;var _useAutoPlay=(0,_useAutoPlay2.useAutoPlay)({autoPlay:autoPlay,autoPlayInterval:autoPlayInterval,autoPlayReverse:autoPlayReverse,carouselController:carouselController}),startAutoPlay=_useAutoPlay.start,pauseAutoPlay=_useAutoPlay.pause;var _onScrollEnd=_react.default.useCallback(function(){var _sharedIndex=Math.round(getSharedIndex());var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:_sharedIndex,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});if(onSnapToItem)onSnapToItem(realIndex);if(onScrollEnd)onScrollEnd(realIndex);},[loop,autoFillData,rawDataLength,getSharedIndex,onSnapToItem,onScrollEnd]);var scrollViewGestureOnScrollBegin=_react.default.useCallback(function(){pauseAutoPlay();_onScrollBegin==null?void 0:_onScrollBegin();},[_onScrollBegin,pauseAutoPlay]);var scrollViewGestureOnScrollEnd=_react.default.useCallback(function(){startAutoPlay();_onScrollEnd();},[_onScrollEnd,startAutoPlay]);var scrollViewGestureOnTouchBegin=_react.default.useCallback(pauseAutoPlay,[pauseAutoPlay]);var scrollViewGestureOnTouchEnd=_react.default.useCallback(startAutoPlay,[startAutoPlay]);_react.default.useImperativeHandle(ref,function(){return{next:next,prev:prev,getCurrentIndex:getCurrentIndex,scrollTo:scrollTo};},[getCurrentIndex,next,prev,scrollTo]);var visibleRanges=(0,_useVisibleRanges.useVisibleRanges)({total:dataLength,viewSize:size,translation:handlerOffset,windowSize:windowSize});var layoutConfig=(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},props,{size:size}));var renderLayout=_react.default.useCallback(function(item,i){var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:i,dataLength:rawDataLength,loop:loop,autoFillData:autoFillData});return(0,_jsxRuntime.jsx)(_BaseLayout.BaseLayout,{index:i,handlerOffset:offsetX,visibleRanges:visibleRanges,animationStyle:customAnimation||layoutConfig,children:function children(_ref){var animationValue=_ref.animationValue;return renderItem({item:item,index:realIndex,animationValue:animationValue});}},i);},[loop,rawData,offsetX,visibleRanges,autoFillData,renderItem,layoutConfig,customAnimation]);return(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.GestureHandlerRootView,{children:(0,_jsxRuntime.jsx)(_store.CTX.Provider,{value:{props:props,common:commonVariables},children:(0,_jsxRuntime.jsx)(_ScrollViewGesture.ScrollViewGesture,{size:size,translation:handlerOffset,style:[styles.container,{width:width||"100%",height:height||"100%"},style,vertical?styles.itemsVertical:styles.itemsHorizontal],testID:testID,onScrollBegin:scrollViewGestureOnScrollBegin,onScrollEnd:scrollViewGestureOnScrollEnd,onTouchBegin:scrollViewGestureOnTouchBegin,onTouchEnd:scrollViewGestureOnTouchEnd,children:data.map(renderLayout)},mode)})});});var _default=Carousel;exports.default=_default;var styles=_reactNative.StyleSheet.create({container:{overflow:"hidden"},itemsHorizontal:{flexDirection:"row"},itemsVertical:{flexDirection:"column"}});
|
|
2
2
|
//# sourceMappingURL=Carousel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Carousel.tsx"],"names":["Carousel","React","forwardRef","_props","ref","props","testID","loop","autoFillData","data","dataLength","rawData","rawDataLength","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffset","offsetX","totalSize","x","value","isNaN","carouselController","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","startAutoPlay","start","pauseAutoPlay","pause","useCallback","_sharedIndex","Math","round","realIndex","index","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","useImperativeHandle","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","i","animationValue","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { gestureHandlerRootHOC } from \"react-native-gesture-handler\";\nimport { runOnJS, useDerivedValue } from \"react-native-reanimated\";\n\nimport { useAutoPlay } from \"./hooks/useAutoPlay\";\nimport { useCarouselController } from \"./hooks/useCarouselController\";\nimport { useCommonVariables } from \"./hooks/useCommonVariables\";\nimport { useInitProps } from \"./hooks/useInitProps\";\nimport { useLayoutConfig } from \"./hooks/useLayoutConfig\";\nimport { useOnProgressChange } from \"./hooks/useOnProgressChange\";\nimport { usePropsErrorBoundary } from \"./hooks/usePropsErrorBoundary\";\nimport { useVisibleRanges } from \"./hooks/useVisibleRanges\";\nimport { BaseLayout } from \"./layouts/BaseLayout\";\nimport { ScrollViewGesture } from \"./ScrollViewGesture\";\nimport { CTX } from \"./store\";\nimport type { ICarouselInstance, TCarouselProps } from \"./types\";\nimport { computedRealIndexWithAutoFillData } from \"./utils/computedWithAutoFillData\";\n\nconst Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(\n (_props, ref) => {\n const props = useInitProps(_props);\n\n const {\n testID,\n loop,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n mode,\n style,\n width,\n height,\n vertical,\n autoPlay,\n windowSize,\n autoPlayReverse,\n autoPlayInterval,\n scrollAnimationDuration,\n withAnimation,\n renderItem,\n onScrollEnd,\n onSnapToItem,\n onScrollBegin,\n onProgressChange,\n customAnimation,\n defaultIndex,\n } = props;\n\n const commonVariables = useCommonVariables(props);\n const { size, handlerOffset } = commonVariables;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n\n if (!loop)\n return handlerOffset.value;\n\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary({ ...props, dataLength });\n useOnProgressChange({\n autoFillData,\n loop,\n size,\n offsetX,\n rawDataLength,\n onProgressChange,\n });\n\n const carouselController = useCarouselController({\n loop,\n size,\n dataLength,\n autoFillData,\n handlerOffset,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex }\n = carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem)\n onSnapToItem(realIndex);\n\n if (onScrollEnd)\n onScrollEnd(realIndex);\n }, [\n loop,\n autoFillData,\n rawDataLength,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo],\n );\n\n const visibleRanges = useVisibleRanges({\n total: dataLength,\n viewSize: size,\n translation: handlerOffset,\n windowSize,\n });\n\n const layoutConfig = useLayoutConfig({ ...props, size });\n\n const renderLayout = React.useCallback(\n (item: any, i: number) => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: i,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffset={offsetX}\n visibleRanges={visibleRanges}\n animationStyle={customAnimation || layoutConfig}\n >\n {({ animationValue }) =>\n renderItem({\n item,\n index: realIndex,\n animationValue,\n })\n }\n </BaseLayout>\n );\n },\n [\n loop,\n rawData,\n offsetX,\n visibleRanges,\n autoFillData,\n renderItem,\n layoutConfig,\n customAnimation,\n ],\n );\n\n return (\n <CTX.Provider value={{ props, common: commonVariables }}>\n <ScrollViewGesture\n key={mode}\n size={size}\n translation={handlerOffset}\n style={[\n styles.container,\n {\n width: width || \"100%\",\n height: height || \"100%\",\n },\n style,\n vertical\n ? styles.itemsVertical\n : styles.itemsHorizontal,\n ]}\n testID={testID}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n {data.map(renderLayout)}\n </ScrollViewGesture>\n </CTX.Provider>\n );\n },\n);\n\nexport default gestureHandlerRootHOC(Carousel as any) as any as <T extends any>(\n props: React.PropsWithChildren<TCarouselProps<T>>\n) => React.ReactElement;\n\nconst styles = StyleSheet.create({\n container: {\n overflow: \"hidden\",\n },\n itemsHorizontal: {\n flexDirection: \"row\",\n },\n itemsVertical: {\n flexDirection: \"column\",\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["Carousel.tsx"],"names":["Carousel","React","forwardRef","_props","ref","props","testID","loop","autoFillData","data","dataLength","rawData","rawDataLength","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffset","offsetX","totalSize","x","value","isNaN","carouselController","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","startAutoPlay","start","pauseAutoPlay","pause","useCallback","_sharedIndex","Math","round","realIndex","index","scrollViewGestureOnScrollBegin","scrollViewGestureOnScrollEnd","scrollViewGestureOnTouchBegin","scrollViewGestureOnTouchEnd","useImperativeHandle","visibleRanges","total","viewSize","translation","layoutConfig","renderLayout","item","i","animationValue","common","styles","container","itemsVertical","itemsHorizontal","map","StyleSheet","create","overflow","flexDirection"],"mappings":"mKACA,oDACA,yCACA,uEACA,8DAEA,iDACA,oEACA,8DACA,kDACA,wDACA,gEACA,oEACA,0DACA,gDACA,sDACA,8BAEA,0E,gqCAEA,GAAMA,CAAAA,QAAQ,CAAGC,eAAMC,UAAN,CACf,SAACC,MAAD,CAASC,GAAT,CAAiB,CACf,GAAMC,CAAAA,KAAK,CAAG,+BAAaF,MAAb,CAAd,CAEA,GACEG,CAAAA,MADF,CA8BID,KA9BJ,CACEC,MADF,CAEEC,IAFF,CA8BIF,KA9BJ,CAEEE,IAFF,CAGEC,YAHF,CA8BIH,KA9BJ,CAGEG,YAHF,CAKEC,IALF,CA8BIJ,KA9BJ,CAKEI,IALF,CAOEC,UAPF,CA8BIL,KA9BJ,CAOEK,UAPF,CASEC,OATF,CA8BIN,KA9BJ,CASEM,OATF,CAWEC,aAXF,CA8BIP,KA9BJ,CAWEO,aAXF,CAYEC,IAZF,CA8BIR,KA9BJ,CAYEQ,IAZF,CAaEC,KAbF,CA8BIT,KA9BJ,CAaES,KAbF,CAcEC,KAdF,CA8BIV,KA9BJ,CAcEU,KAdF,CAeEC,MAfF,CA8BIX,KA9BJ,CAeEW,MAfF,CAgBEC,QAhBF,CA8BIZ,KA9BJ,CAgBEY,QAhBF,CAiBEC,QAjBF,CA8BIb,KA9BJ,CAiBEa,QAjBF,CAkBEC,UAlBF,CA8BId,KA9BJ,CAkBEc,UAlBF,CAmBEC,eAnBF,CA8BIf,KA9BJ,CAmBEe,eAnBF,CAoBEC,gBApBF,CA8BIhB,KA9BJ,CAoBEgB,gBApBF,CAqBEC,uBArBF,CA8BIjB,KA9BJ,CAqBEiB,uBArBF,CAsBEC,aAtBF,CA8BIlB,KA9BJ,CAsBEkB,aAtBF,CAuBEC,UAvBF,CA8BInB,KA9BJ,CAuBEmB,UAvBF,CAwBEC,WAxBF,CA8BIpB,KA9BJ,CAwBEoB,WAxBF,CAyBEC,YAzBF,CA8BIrB,KA9BJ,CAyBEqB,YAzBF,CA0BEC,cA1BF,CA8BItB,KA9BJ,CA0BEsB,aA1BF,CA2BEC,gBA3BF,CA8BIvB,KA9BJ,CA2BEuB,gBA3BF,CA4BEC,eA5BF,CA8BIxB,KA9BJ,CA4BEwB,eA5BF,CA6BEC,YA7BF,CA8BIzB,KA9BJ,CA6BEyB,YA7BF,CAgCA,GAAMC,CAAAA,eAAe,CAAG,2CAAmB1B,KAAnB,CAAxB,CACA,GAAQ2B,CAAAA,IAAR,CAAgCD,eAAhC,CAAQC,IAAR,CAAcC,aAAd,CAAgCF,eAAhC,CAAcE,aAAd,CAEA,GAAMC,CAAAA,OAAO,CAAG,6GAAsB,CACpC,GAAMC,CAAAA,SAAS,CAAGH,IAAI,CAAGtB,UAAzB,CACA,GAAM0B,CAAAA,CAAC,CAAGH,aAAa,CAACI,KAAd,CAAsBF,SAAhC,CAEA,GAAI,CAAC5B,IAAL,CACE,MAAO0B,CAAAA,aAAa,CAACI,KAArB,CAEF,MAAOC,CAAAA,KAAK,CAACF,CAAD,CAAL,CAAW,CAAX,CAAeA,CAAtB,CACD,CARe,mBA1DAJ,IA0DA,YA1DOtB,UA0DP,eAxDAuB,aAwDA,MAxDb1B,IAwDa,0IAQb,CAACA,IAAD,CAAOyB,IAAP,CAAatB,UAAb,CARa,CAAhB,CAUA,kEAA2BL,KAA3B,EAAkCK,UAAU,CAAVA,UAAlC,IACA,6CAAoB,CAClBF,YAAY,CAAZA,YADkB,CAElBD,IAAI,CAAJA,IAFkB,CAGlByB,IAAI,CAAJA,IAHkB,CAIlBE,OAAO,CAAPA,OAJkB,CAKlBtB,aAAa,CAAbA,aALkB,CAMlBgB,gBAAgB,CAAhBA,gBANkB,CAApB,EASA,GAAMW,CAAAA,kBAAkB,CAAG,iDAAsB,CAC/ChC,IAAI,CAAJA,IAD+C,CAE/CyB,IAAI,CAAJA,IAF+C,CAG/CtB,UAAU,CAAVA,UAH+C,CAI/CF,YAAY,CAAZA,YAJ+C,CAK/CyB,aAAa,CAAbA,aAL+C,CAM/CV,aAAa,CAAbA,aAN+C,CAO/CO,YAAY,CAAZA,YAP+C,CAQ/CL,WAAW,CAAE,6BAAM,mCAAQe,YAAR,GAAN,EARkC,CAS/Cb,aAAa,CAAE,+BAAM,CAAC,CAACA,cAAF,EAAmB,mCAAQA,cAAR,GAAzB,EATgC,CAU/Cc,QAAQ,CAAEnB,uBAVqC,CAAtB,CAA3B,CAaA,GAAQoB,CAAAA,IAAR,CACUH,kBADV,CAAQG,IAAR,CAAcC,IAAd,CACUJ,kBADV,CAAcI,IAAd,CAAoBC,QAApB,CACUL,kBADV,CAAoBK,QAApB,CAA8BC,cAA9B,CACUN,kBADV,CAA8BM,cAA9B,CAA8CC,eAA9C,CACUP,kBADV,CAA8CO,eAA9C,CAGA,iBAAuD,8BAAY,CACjE5B,QAAQ,CAARA,QADiE,CAEjEG,gBAAgB,CAAhBA,gBAFiE,CAGjED,eAAe,CAAfA,eAHiE,CAIjEmB,kBAAkB,CAAlBA,kBAJiE,CAAZ,CAAvD,CAAeQ,aAAf,cAAQC,KAAR,CAAqCC,aAArC,cAA8BC,KAA9B,CAOA,GAAMV,CAAAA,YAAY,CAAGvC,eAAMkD,WAAN,CAAkB,UAAM,CAC3C,GAAMC,CAAAA,YAAY,CAAGC,IAAI,CAACC,KAAL,CAAWT,cAAc,EAAzB,CAArB,CAEA,GAAMU,CAAAA,SAAS,CAAG,gEAAkC,CAClDC,KAAK,CAAEJ,YAD2C,CAElD1C,UAAU,CAAEE,aAFsC,CAGlDL,IAAI,CAAJA,IAHkD,CAIlDC,YAAY,CAAZA,YAJkD,CAAlC,CAAlB,CAOA,GAAIkB,YAAJ,CACEA,YAAY,CAAC6B,SAAD,CAAZ,CAEF,GAAI9B,WAAJ,CACEA,WAAW,CAAC8B,SAAD,CAAX,CACH,CAfoB,CAelB,CACDhD,IADC,CAEDC,YAFC,CAGDI,aAHC,CAIDiC,cAJC,CAKDnB,YALC,CAMDD,WANC,CAfkB,CAArB,CAwBA,GAAMgC,CAAAA,8BAA8B,CAAGxD,eAAMkD,WAAN,CAAkB,UAAM,CAC7DF,aAAa,GACbtB,cAAa,MAAb,QAAAA,cAAa,GACd,CAHsC,CAGpC,CAACA,cAAD,CAAgBsB,aAAhB,CAHoC,CAAvC,CAKA,GAAMS,CAAAA,4BAA4B,CAAGzD,eAAMkD,WAAN,CAAkB,UAAM,CAC3DJ,aAAa,GACbP,YAAY,GACb,CAHoC,CAGlC,CAACA,YAAD,CAAeO,aAAf,CAHkC,CAArC,CAKA,GAAMY,CAAAA,6BAA6B,CAAG1D,eAAMkD,WAAN,CAAkBF,aAAlB,CAAiC,CACrEA,aADqE,CAAjC,CAAtC,CAIA,GAAMW,CAAAA,2BAA2B,CAAG3D,eAAMkD,WAAN,CAAkBJ,aAAlB,CAAiC,CACnEA,aADmE,CAAjC,CAApC,CAIA9C,eAAM4D,mBAAN,CACEzD,GADF,CAEE,iBAAO,CACLsC,IAAI,CAAJA,IADK,CAELC,IAAI,CAAJA,IAFK,CAGLG,eAAe,CAAfA,eAHK,CAILF,QAAQ,CAARA,QAJK,CAAP,EAFF,CAQE,CAACE,eAAD,CAAkBJ,IAAlB,CAAwBC,IAAxB,CAA8BC,QAA9B,CARF,EAWA,GAAMkB,CAAAA,aAAa,CAAG,uCAAiB,CACrCC,KAAK,CAAErD,UAD8B,CAErCsD,QAAQ,CAAEhC,IAF2B,CAGrCiC,WAAW,CAAEhC,aAHwB,CAIrCd,UAAU,CAAVA,UAJqC,CAAjB,CAAtB,CAOA,GAAM+C,CAAAA,YAAY,CAAG,sDAAqB7D,KAArB,EAA4B2B,IAAI,CAAJA,IAA5B,GAArB,CAEA,GAAMmC,CAAAA,YAAY,CAAGlE,eAAMkD,WAAN,CACnB,SAACiB,IAAD,CAAYC,CAAZ,CAA0B,CACxB,GAAMd,CAAAA,SAAS,CAAG,gEAAkC,CAClDC,KAAK,CAAEa,CAD2C,CAElD3D,UAAU,CAAEE,aAFsC,CAGlDL,IAAI,CAAJA,IAHkD,CAIlDC,YAAY,CAAZA,YAJkD,CAAlC,CAAlB,CAOA,MACE,oBAAC,sBAAD,EAEE,KAAK,CAAE6D,CAFT,CAGE,aAAa,CAAEnC,OAHjB,CAIE,aAAa,CAAE4B,aAJjB,CAKE,cAAc,CAAEjC,eAAe,EAAIqC,YALrC,UAOG,2BAAGI,CAAAA,cAAH,MAAGA,cAAH,OACC9C,CAAAA,UAAU,CAAC,CACT4C,IAAI,CAAJA,IADS,CAETZ,KAAK,CAAED,SAFE,CAGTe,cAAc,CAAdA,cAHS,CAAD,CADX,EAPH,EACOD,CADP,CADF,CAiBD,CA1BkB,CA2BnB,CACE9D,IADF,CAEEI,OAFF,CAGEuB,OAHF,CAIE4B,aAJF,CAKEtD,YALF,CAMEgB,UANF,CAOE0C,YAPF,CAQErC,eARF,CA3BmB,CAArB,CAuCA,MACE,oBAAC,iDAAD,WACE,oBAAC,UAAD,CAAK,QAAL,EAAc,KAAK,CAAE,CAAExB,KAAK,CAALA,KAAF,CAASkE,MAAM,CAAExC,eAAjB,CAArB,UACE,oBAAC,oCAAD,EAEE,IAAI,CAAEC,IAFR,CAGE,WAAW,CAAEC,aAHf,CAIE,KAAK,CAAE,CACLuC,MAAM,CAACC,SADF,CAEL,CACE1D,KAAK,CAAEA,KAAK,EAAI,MADlB,CAEEC,MAAM,CAAEA,MAAM,EAAI,MAFpB,CAFK,CAMLF,KANK,CAOLG,QAAQ,CACJuD,MAAM,CAACE,aADH,CAEJF,MAAM,CAACG,eATN,CAJT,CAeE,MAAM,CAAErE,MAfV,CAgBE,aAAa,CAAEmD,8BAhBjB,CAiBE,WAAW,CAAEC,4BAjBf,CAkBE,YAAY,CAAEC,6BAlBhB,CAmBE,UAAU,CAAEC,2BAnBd,UAqBGnD,IAAI,CAACmE,GAAL,CAAST,YAAT,CArBH,EACOtD,IADP,CADF,EADF,EADF,CA6BD,CApNc,CAAjB,C,aAuNeb,Q,0BAIf,GAAMwE,CAAAA,MAAM,CAAGK,wBAAWC,MAAX,CAAkB,CAC/BL,SAAS,CAAE,CACTM,QAAQ,CAAE,QADD,CADoB,CAI/BJ,eAAe,CAAE,CACfK,aAAa,CAAE,KADA,CAJc,CAO/BN,aAAa,CAAE,CACbM,aAAa,CAAE,QADF,CAPgB,CAAlB,CAAf","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { GestureHandlerRootView } from \"react-native-gesture-handler\";\nimport { runOnJS, useDerivedValue } from \"react-native-reanimated\";\n\nimport { useAutoPlay } from \"./hooks/useAutoPlay\";\nimport { useCarouselController } from \"./hooks/useCarouselController\";\nimport { useCommonVariables } from \"./hooks/useCommonVariables\";\nimport { useInitProps } from \"./hooks/useInitProps\";\nimport { useLayoutConfig } from \"./hooks/useLayoutConfig\";\nimport { useOnProgressChange } from \"./hooks/useOnProgressChange\";\nimport { usePropsErrorBoundary } from \"./hooks/usePropsErrorBoundary\";\nimport { useVisibleRanges } from \"./hooks/useVisibleRanges\";\nimport { BaseLayout } from \"./layouts/BaseLayout\";\nimport { ScrollViewGesture } from \"./ScrollViewGesture\";\nimport { CTX } from \"./store\";\nimport type { ICarouselInstance, TCarouselProps } from \"./types\";\nimport { computedRealIndexWithAutoFillData } from \"./utils/computedWithAutoFillData\";\n\nconst Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(\n (_props, ref) => {\n const props = useInitProps(_props);\n\n const {\n testID,\n loop,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n mode,\n style,\n width,\n height,\n vertical,\n autoPlay,\n windowSize,\n autoPlayReverse,\n autoPlayInterval,\n scrollAnimationDuration,\n withAnimation,\n renderItem,\n onScrollEnd,\n onSnapToItem,\n onScrollBegin,\n onProgressChange,\n customAnimation,\n defaultIndex,\n } = props;\n\n const commonVariables = useCommonVariables(props);\n const { size, handlerOffset } = commonVariables;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n\n if (!loop)\n return handlerOffset.value;\n\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary({ ...props, dataLength });\n useOnProgressChange({\n autoFillData,\n loop,\n size,\n offsetX,\n rawDataLength,\n onProgressChange,\n });\n\n const carouselController = useCarouselController({\n loop,\n size,\n dataLength,\n autoFillData,\n handlerOffset,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex }\n = carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem)\n onSnapToItem(realIndex);\n\n if (onScrollEnd)\n onScrollEnd(realIndex);\n }, [\n loop,\n autoFillData,\n rawDataLength,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo],\n );\n\n const visibleRanges = useVisibleRanges({\n total: dataLength,\n viewSize: size,\n translation: handlerOffset,\n windowSize,\n });\n\n const layoutConfig = useLayoutConfig({ ...props, size });\n\n const renderLayout = React.useCallback(\n (item: any, i: number) => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: i,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffset={offsetX}\n visibleRanges={visibleRanges}\n animationStyle={customAnimation || layoutConfig}\n >\n {({ animationValue }) =>\n renderItem({\n item,\n index: realIndex,\n animationValue,\n })\n }\n </BaseLayout>\n );\n },\n [\n loop,\n rawData,\n offsetX,\n visibleRanges,\n autoFillData,\n renderItem,\n layoutConfig,\n customAnimation,\n ],\n );\n\n return (\n <GestureHandlerRootView>\n <CTX.Provider value={{ props, common: commonVariables }}>\n <ScrollViewGesture\n key={mode}\n size={size}\n translation={handlerOffset}\n style={[\n styles.container,\n {\n width: width || \"100%\",\n height: height || \"100%\",\n },\n style,\n vertical\n ? styles.itemsVertical\n : styles.itemsHorizontal,\n ]}\n testID={testID}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n {data.map(renderLayout)}\n </ScrollViewGesture>\n </CTX.Provider>\n </GestureHandlerRootView>\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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["LazyView.tsx"],"names":["LazyView","props","shouldUpdate","children"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["LazyView.tsx"],"names":["LazyView","props","shouldUpdate","children"],"mappings":"oKACA,oD,6CAMO,GAAMA,CAAAA,QAA4C,CAAG,QAA/CA,CAAAA,QAA+C,CAACC,KAAD,CAAW,CACrE,GAAQC,CAAAA,YAAR,CAAmCD,KAAnC,CAAQC,YAAR,CAAsBC,QAAtB,CAAmCF,KAAnC,CAAsBE,QAAtB,CAEA,GAAI,CAACD,YAAL,CACE,MAAO,4CAAP,CAEF,MAAO,mDAAGC,QAAH,EAAP,CACD,CAPM,C","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\n\ninterface Props {\n shouldUpdate: boolean\n}\n\nexport const LazyView: React.FC<PropsWithChildren<Props>> = (props) => {\n const { shouldUpdate, children } = props;\n\n if (!shouldUpdate)\n return <></>;\n\n return <>{children}</>;\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 _react=_interopRequireDefault(require("react"));var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _constants=require("./constants");var _store=require("./store");var _dealWithAnimation=require("./utils/dealWithAnimation");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _worklet_10100718122216_init_data={code:"function anonymous() {\n const {\n vertical\n } = this._closure;\n return !vertical;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"vertical\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAoEuC,SAAAA,UAAA;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAO,CAAAD,QAAA;AAAA\"}"};var _worklet_736417391548_init_data={code:"function anonymous() {\n const {\n infinite,\n overscrollEnabled,\n measure,\n containerRef,\n dataLength,\n size\n } = this._closure;\n if (!infinite && !overscrollEnabled) {\n const {\n width: containerWidth = 0\n } = measure(containerRef);\n if (dataLength * size < containerWidth) return 0;\n return dataLength * size - containerWidth;\n }\n return dataLength * size;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"infinite\",\"overscrollEnabled\",\"measure\",\"containerRef\",\"dataLength\",\"size\",\"_closure\",\"width\",\"containerWidth\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA2EqC,SAAAA,SAAMA,CAAA;EAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,UAAA;IAAAC;EAAA,SAAAC,QAAA;EAGvC,IAAI,CAACN,QAAQ,IAAI,CAACC,iBAAiB,EAAE;IACnC,MAAM;MAAEM,KAAK,EAAEC,cAAc,GAAG;IAAE,CAAC,GAAGN,OAAO,CAACC,YAAY,CAAC;IAG3D,IAAIC,UAAU,GAAGC,IAAI,GAAGG,cAAc,EACpC,OAAO,CAAC;IAGV,OAAOJ,UAAU,GAAGC,IAAI,GAAGG,cAAc;EAC3C;EAEA,OAAOJ,UAAU,GAAGC,IAAI;AAC1B\"}"};var _worklet_38454346678_init_data={code:"function anonymous(toValue, onFinished) {\n const {\n scrollAnimationDuration,\n Easing,\n dealWithAnimation,\n withAnimation,\n runOnJS\n } = this._closure;\n var _withAnimation;\n const defaultWithAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart\n }\n };\n return dealWithAnimation((_withAnimation = withAnimation) !== null && _withAnimation !== void 0 ? _withAnimation : defaultWithAnimation)(toValue, function (isFinished) {\n \"worklet\";\n\n if (isFinished) onFinished && runOnJS(onFinished)();\n });\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"toValue\",\"onFinished\",\"scrollAnimationDuration\",\"Easing\",\"dealWithAnimation\",\"withAnimation\",\"runOnJS\",\"_closure\",\"_withAnimation\",\"defaultWithAnimation\",\"type\",\"config\",\"duration\",\"easing\",\"easeOutQuart\",\"isFinished\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA6FI,SAACA,SAAeA,CAAAC,OAAE,EAAAC,UAA4B;EAAA;IAAAC,uBAAA;IAAAC,MAAA;IAAAC,iBAAA;IAAAC,aAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,IAAAC,cAAA;EAE5C,MAAMC,oBAAyC,GAAG;IAChDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;MACNC,QAAQ,EAAEV,uBAAuB,GAAG,GAAG;MACvCW,MAAM,EAAEV,MAAM,CAACW;IACjB;EACF,CAAC;EAED,OAAOV,iBAAiB,EAAAI,cAAA,GAACH,aAAa,cAAAG,cAAA,cAAAA,cAAA,GAAIC,oBAAoB,CAAC,CAC7DT,OAAO,EACP,UAACe,UAAmB,EAAK;IACvB,SAAS;;IACT,IAAIA,UAAU,EACZd,UAAU,IAAIK,OAAO,CAACL,UAAU,CAAC,CAAC,CAAC;EACvC,CACF,CAAC;AACH\"}"};var _worklet_15664499378840_init_data={code:"function anonymous(isFinished) {\n const {\n onFinished,\n runOnJS\n } = this._closure;\n if (isFinished) onFinished && runOnJS(onFinished)();\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"isFinished\",\"onFinished\",\"runOnJS\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAyGQ,SAACA,UAAAC,UAAwB;EAAA;IAAAC,UAAA;IAAAC;EAAA,SAAAC,QAAA;EAEvB,IAAIH,UAAU,EACZC,UAAU,IAAIC,OAAO,CAACD,UAAU,CAAC,CAAC,CAAC;AACvC\"}"};var _worklet_15595988837712_init_data={code:"function anonymous(onFinished) {\n const {\n translation,\n scrollEndVelocity,\n withDecay,\n maxScrollDistancePerSwipe,\n scrollEndTranslation,\n pagingEnabled,\n size,\n infinite,\n withSpring,\n maxPage,\n snapEnabled,\n overscrollEnabled,\n getLimit\n } = this._closure;\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n let finalTranslation = withDecay({\n velocity: velocity,\n deceleration: 0.999\n });\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(scrollEndTranslation.value) > maxScrollDistancePerSwipe) {\n finalTranslation = origin;\n } else {\n if (pagingEnabled) {\n const offset = -(scrollEndTranslation.value >= 0 ? 1 : -1);\n const computed = offset < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n if (infinite) {\n const finalPage = page + offset;\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n } else {\n const finalPage = Math.min(maxPage - 1, Math.max(0, page + offset));\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n }\n if (!pagingEnabled && snapEnabled) {\n const nextPage = Math.round((origin + velocity * 0.4) / size) * size;\n finalTranslation = withSpring(withProcessTranslation(nextPage), onFinished);\n }\n }\n translation.value = finalTranslation;\n function withProcessTranslation(translation) {\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n return translation;\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"onFinished\",\"translation\",\"scrollEndVelocity\",\"withDecay\",\"maxScrollDistancePerSwipe\",\"scrollEndTranslation\",\"pagingEnabled\",\"size\",\"infinite\",\"withSpring\",\"maxPage\",\"snapEnabled\",\"overscrollEnabled\",\"getLimit\",\"_closure\",\"origin\",\"value\",\"velocity\",\"finalTranslation\",\"deceleration\",\"Math\",\"abs\",\"offset\",\"computed\",\"ceil\",\"floor\",\"page\",\"finalPage\",\"withProcessTranslation\",\"min\",\"max\",\"nextPage\",\"round\",\"limit\",\"sign\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAoHI,SAACA,UAAAC,UAA4B;EAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,SAAA;IAAAC,yBAAA;IAAAC,oBAAA;IAAAC,aAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,OAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC;EAAA,SAAAC,QAAA;EAE3B,MAAMC,MAAM,GAAGd,WAAW,CAACe,KAAK;EAChC,MAAMC,QAAQ,GAAGf,iBAAiB,CAACc,KAAK;EAExC,IAAIE,gBAAwB,GAAGf,SAAS,CAAC;IAAEc,QAAQ,EAARA,QAAQ;IAAEE,YAAY,EAAE;EAAM,CAAC,CAAC;EAG3E,IAAI,OAAOf,yBAAyB,KAAK,QAAQ,IAAIgB,IAAI,CAACC,GAAG,CAAChB,oBAAoB,CAACW,KAAK,CAAC,GAAGZ,yBAAyB,EAAE;IACrHc,gBAAgB,GAAGH,MAAM;EAC3B,CAAC,MACI;IAQH,IAAIT,aAAa,EAAE;MAEjB,MAAMgB,MAAM,GAAG,EAAEjB,oBAAoB,CAACW,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MAC1D,MAAMO,QAAQ,GAAGD,MAAM,GAAG,CAAC,GAAGF,IAAI,CAACI,IAAI,GAAGJ,IAAI,CAACK,KAAK;MACpD,MAAMC,IAAI,GAAGH,QAAQ,CAAC,CAACtB,WAAW,CAACe,KAAK,GAAGT,IAAI,CAAC;MAEhD,IAAIC,QAAQ,EAAE;QACZ,MAAMmB,SAAS,GAAGD,IAAI,GAAGJ,MAAM;QAC/BJ,gBAAgB,GAAGT,UAAU,CAACmB,sBAAsB,CAAC,CAACD,SAAS,GAAGpB,IAAI,CAAC,EAAEP,UAAU,CAAC;MACtF,CAAC,MACI;QACH,MAAM2B,SAAS,GAAGP,IAAI,CAACS,GAAG,CAACnB,OAAO,GAAG,CAAC,EAAEU,IAAI,CAACU,GAAG,CAAC,CAAC,EAAEJ,IAAI,GAAGJ,MAAM,CAAC,CAAC;QACnEJ,gBAAgB,GAAGT,UAAU,CAACmB,sBAAsB,CAAC,CAACD,SAAS,GAAGpB,IAAI,CAAC,EAAEP,UAAU,CAAC;MACtF;IACF;IAEA,IAAI,CAACM,aAAa,IAAIK,WAAW,EAAE;MAEjC,MAAMoB,QAAQ,GAAGX,IAAI,CAACY,KAAK,CAAC,CAACjB,MAAM,GAAGE,QAAQ,GAAG,GAAG,IAAIV,IAAI,CAAC,GAAGA,IAAI;MACpEW,gBAAgB,GAAGT,UAAU,CAACmB,sBAAsB,CAACG,QAAQ,CAAC,EAAE/B,UAAU,CAAC;IAC7E;EACF;EAEAC,WAAW,CAACe,KAAK,GAAGE,gBAAgB;EAEpC,SAASU,sBAAsBA,CAAC3B,WAAmB,EAAE;IACnD,IAAI,CAACO,QAAQ,IAAI,CAACI,iBAAiB,EAAE;MACnC,MAAMqB,KAAK,GAAGpB,QAAQ,CAAC,CAAC;MACxB,MAAMqB,IAAI,GAAGd,IAAI,CAACc,IAAI,CAACjC,WAAW,CAAC;MACnC,OAAOiC,IAAI,GAAGd,IAAI,CAACU,GAAG,CAAC,CAAC,EAAEV,IAAI,CAACS,GAAG,CAACI,KAAK,EAAEb,IAAI,CAACC,GAAG,CAACpB,WAAW,CAAC,CAAC,CAAC;IACnE;IAEA,OAAOA,WAAW;EACpB;AACF\"}"};var _worklet_14734469187996_init_data={code:"function anonymous(isFinished) {\n const {\n touching,\n onScrollEnd,\n runOnJS\n } = this._closure;\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"isFinished\",\"touching\",\"onScrollEnd\",\"runOnJS\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAyLI,SAACA,UAAAC,UAAwB;EAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC;EAAA,SAAAC,QAAA;EAEvB,IAAIJ,UAAU,EAAE;IACdC,QAAQ,CAACI,KAAK,GAAG,KAAK;IACtBH,WAAW,IAAIC,OAAO,CAACD,WAAW,CAAC,CAAC,CAAC;EACvC;AACF\"}"};var _worklet_14660770182194_init_data={code:"function anonymous() {\n const {\n touching,\n translation,\n withDecay,\n scrollEndVelocity,\n onFinish\n } = this._closure;\n touching.value = true;\n translation.value = withDecay({\n velocity: scrollEndVelocity.value\n }, function (isFinished) {\n return onFinish(isFinished);\n });\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"touching\",\"translation\",\"withDecay\",\"scrollEndVelocity\",\"onFinish\",\"_closure\",\"value\",\"velocity\",\"isFinished\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAmMwC,SAAAA,SAAMA,CAAA;EAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,iBAAA;IAAAC;EAAA,SAAAC,QAAA;EAE1CL,QAAQ,CAACM,KAAK,GAAG,IAAI;EACrBL,WAAW,CAACK,KAAK,GAAGJ,SAAS,CAC3B;IAAEK,QAAQ,EAAEJ,iBAAiB,CAACG;EAAM,CAAC,EACrC,UAAAE,UAAU;IAAA,OAAIJ,QAAQ,CAACI,UAAqB,CAC9C;EAAA,EAAC;AACH\"}"};var _worklet_11301139675464_init_data={code:"function anonymous(isFinished) {\n const {\n onFinish\n } = this._closure;\n return onFinish(isFinished);\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"isFinished\",\"onFinish\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAwMM,SAAAA,UAAAC,UAAU;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAID,QAAQ,CAACD,UAAqB;AAAA\"}"};var _worklet_5253258937186_init_data={code:"function anonymous() {\n const {\n touching,\n translation,\n scrollEndTranslation,\n activeDecay,\n infinite,\n withSpring,\n maxPage,\n size\n } = this._closure;\n if (touching.value) return;\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 if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite) translation.value = withSpring(-((maxPage - 1) * size));\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"touching\",\"translation\",\"scrollEndTranslation\",\"activeDecay\",\"infinite\",\"withSpring\",\"maxPage\",\"size\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA4M0C,SAAAA,SAAMA,CAAA;EAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC,oBAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,OAAA;IAAAC;EAAA,SAAAC,QAAA;EAE5C,IAAIR,QAAQ,CAACS,KAAK,EAChB;EAEF,IAAIR,WAAW,CAACQ,KAAK,GAAG,CAAC,EAAE;IACzB,IAAIP,oBAAoB,CAACO,KAAK,GAAG,CAAC,EAAE;MAClCN,WAAW,CAAC,CAAC;MACb;IACF;IACA,IAAI,CAACC,QAAQ,EAAE;MACbH,WAAW,CAACQ,KAAK,GAAGJ,UAAU,CAAC,CAAC,CAAC;MACjC;IACF;EACF;EAEA,IAAIJ,WAAW,CAACQ,KAAK,GAAG,EAAE,CAACH,OAAO,GAAG,CAAC,IAAIC,IAAI,CAAC,EAAE;IAC/C,IAAIL,oBAAoB,CAACO,KAAK,GAAG,CAAC,EAAE;MAClCN,WAAW,CAAC,CAAC;MACb;IACF;IACA,IAAI,CAACC,QAAQ,EACXH,WAAW,CAACQ,KAAK,GAAGJ,UAAU,CAAC,EAAE,CAACC,OAAO,GAAG,CAAC,IAAIC,IAAI,CAAC,CAAC;EAC3D;AACF\"}"};var _worklet_15931544841004_init_data={code:"function anonymous() {\n const {\n translation\n } = this._closure;\n return translation.value;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"translation\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAgPI,SAAAA,UAAA;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAMD,WAAY,CAAAE,KAAA;AAAA\"}"};var _worklet_12444593625099_init_data={code:"function anonymous() {\n const {\n pagingEnabled,\n resetBoundary\n } = this._closure;\n if (!pagingEnabled) resetBoundary();\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"pagingEnabled\",\"resetBoundary\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAiPI,SAAAA,SAAMA,CAAA;EAAA;IAAAC,aAAA;IAAAC;EAAA,SAAAC,QAAA;EACJ,IAAI,CAACF,aAAa,EAChBC,aAAa,CAAC,CAAC;AACnB\"}"};var _worklet_11427369935693_init_data={code:"function withProcessTranslation(translation) {\n const {\n infinite,\n overscrollEnabled,\n getLimit\n } = this._closure;\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n return translation;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"withProcessTranslation\",\"translation\",\"infinite\",\"overscrollEnabled\",\"getLimit\",\"_closure\",\"limit\",\"sign\",\"Math\",\"max\",\"min\",\"abs\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAwPE,SAAAA,sBAASA,CAAuBC,WAAA,EAAmB;EAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC;EAAA,SAAAC,QAAA;EAGjD,IAAI,CAACH,QAAQ,IAAI,CAACC,iBAAiB,EAAE;IACnC,MAAMG,KAAK,GAAGF,QAAQ,CAAC,CAAC;IACxB,MAAMG,IAAI,GAAGC,IAAI,CAACD,IAAI,CAACN,WAAW,CAAC;IACnC,OAAOM,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACJ,KAAK,EAAEE,IAAI,CAACG,GAAG,CAACV,WAAW,CAAC,CAAC,CAAC;EACnE;EAEA,OAAOA,WAAW;AACpB\"}"};var _worklet_6283859030724_init_data={code:"function anonymous(_, ctx) {\n const {\n touching,\n onScrollBegin,\n runOnJS,\n maxPage,\n size,\n infinite,\n overscrollEnabled,\n getLimit,\n translation\n } = this._closure;\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n ctx.max = (maxPage - 1) * size;\n if (!infinite && !overscrollEnabled) ctx.max = getLimit();\n ctx.panOffset = translation.value;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"_\",\"ctx\",\"touching\",\"onScrollBegin\",\"runOnJS\",\"maxPage\",\"size\",\"infinite\",\"overscrollEnabled\",\"getLimit\",\"translation\",\"_closure\",\"value\",\"validStart\",\"max\",\"panOffset\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAyQe,SAACA,SAAMA,CAAKC,CAAA,EAAAC,GAAA;EAAA;IAAAC,QAAA;IAAAC,aAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC,QAAA;IAAAC;EAAA,SAAAC,QAAA;EACnBT,QAAQ,CAACU,KAAK,GAAG,IAAI;EACrBX,GAAG,CAACY,UAAU,GAAG,IAAI;EACrBV,aAAa,IAAIC,OAAO,CAACD,aAAa,CAAC,CAAC,CAAC;EAEzCF,GAAG,CAACa,GAAG,GAAG,CAACT,OAAO,GAAG,CAAC,IAAIC,IAAI;EAC9B,IAAI,CAACC,QAAQ,IAAI,CAACC,iBAAiB,EACjCP,GAAG,CAACa,GAAG,GAAGL,QAAQ,CAAC,CAAC;EAEtBR,GAAG,CAACc,SAAS,GAAGL,WAAW,CAACE,KAAK;AACnC\"}"};var _worklet_14494691336804_init_data={code:"function anonymous(e, ctx) {\n const {\n cancelAnimation,\n translation,\n touching,\n isHorizontal,\n maxScrollDistancePerSwipe,\n infinite\n } = this._closure;\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n let {\n translationX: translationX,\n translationY: translationY\n } = e;\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const overSwipe = Math.abs(totalTranslation) - maxScrollDistancePerSwipe;\n const dampedTranslation = maxScrollDistancePerSwipe + overSwipe * 0.5;\n translationX = isHorizontal.value ? dampedTranslation * Math.sign(translationX) : translationX;\n translationY = !isHorizontal.value ? dampedTranslation * Math.sign(translationY) : translationY;\n }\n const panTranslation = isHorizontal.value ? translationX : translationY;\n if (!infinite) {\n if (translation.value > 0 || translation.value < -ctx.max) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n }\n const translationValue = ctx.panOffset + panTranslation;\n translation.value = translationValue;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"e\",\"ctx\",\"cancelAnimation\",\"translation\",\"touching\",\"isHorizontal\",\"maxScrollDistancePerSwipe\",\"infinite\",\"_closure\",\"validStart\",\"value\",\"translationX\",\"translationY\",\"totalTranslation\",\"Math\",\"abs\",\"overSwipe\",\"dampedTranslation\",\"sign\",\"panTranslation\",\"max\",\"boundary\",\"fixed\",\"panOffset\",\"dynamic\",\"translationValue\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAoRgB,SAACA,SAAMA,CAAKC,CAAA,EAAAC,GAAA;EAAA;IAAAC,eAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,YAAA;IAAAC,yBAAA;IAAAC;EAAA,SAAAC,QAAA;EACpB,IAAIP,GAAG,CAACQ,UAAU,EAAE;IAClBR,GAAG,CAACQ,UAAU,GAAG,KAAK;IACtBP,eAAe,CAACC,WAAW,CAAC;EAC9B;EACAC,QAAQ,CAACM,KAAK,GAAG,IAAI;EACrB,IAAI;IAAEC,YAAY,EAAZA,YAAY;IAAEC,YAAA,EAAAA;EAAa,CAAC,GAAGZ,CAAC;EAEtC,MAAMa,gBAAgB,GAAGR,YAAY,CAACK,KAAK,GAAGC,YAAY,GAAGC,YAAY;EAEzE,IAAI,OAAON,yBAAyB,KAAK,QAAQ,IAAIQ,IAAI,CAACC,GAAG,CAACF,gBAAgB,CAAC,GAAGP,yBAAyB,EAAE;IAC3G,MAAMU,SAAS,GAAGF,IAAI,CAACC,GAAG,CAACF,gBAAgB,CAAC,GAAGP,yBAAyB;IACxE,MAAMW,iBAAiB,GAAGX,yBAAyB,GAAGU,SAAS,GAAG,GAAG;IAErEL,YAAY,GAAGN,YAAY,CAACK,KAAK,GAAGO,iBAAiB,GAAGH,IAAI,CAACI,IAAI,CAACP,YAAY,CAAC,GAAGA,YAAY;IAC9FC,YAAY,GAAG,CAACP,YAAY,CAACK,KAAK,GAAGO,iBAAiB,GAAGH,IAAI,CAACI,IAAI,CAACN,YAAY,CAAC,GAAGA,YAAY;EACjG;EAEA,MAAMO,cAAc,GAAGd,YAAY,CAACK,KAAK,GAAGC,YAAY,GAAGC,YAAY;EACvE,IAAI,CAACL,QAAQ,EAAE;IACb,IAAKJ,WAAW,CAACO,KAAK,GAAG,CAAC,IAAIP,WAAW,CAACO,KAAK,GAAG,CAACT,GAAG,CAACmB,GAAG,EAAG;MAC3D,MAAMC,QAAQ,GAAGlB,WAAW,CAACO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAACT,GAAG,CAACmB,GAAG;MACrD,MAAME,KAAK,GAAGD,QAAQ,GAAGpB,GAAG,CAACsB,SAAS;MACtC,MAAMC,OAAO,GAAGL,cAAc,GAAGG,KAAK;MACtCnB,WAAW,CAACO,KAAK,GAAGW,QAAQ,GAAGG,OAAO,GAAG,GAAG;MAC5C;IACF;EACF;EAEA,MAAMC,gBAAgB,GAAGxB,GAAG,CAACsB,SAAS,GAAGJ,cAAc;EAEvDhB,WAAW,CAACO,KAAK,GAAGe,gBAAgB;AACtC\"}"};var _worklet_15532837681820_init_data={code:"function anonymous(e, ctx) {\n const {\n scrollEndVelocity,\n isHorizontal,\n scrollEndTranslation,\n maxScrollDistancePerSwipe,\n size,\n translation,\n withSpring,\n withProcessTranslation,\n onScrollEnd,\n endWithSpring,\n infinite,\n touching\n } = this._closure;\n const {\n velocityX: velocityX,\n velocityY: velocityY,\n translationX: translationX,\n translationY: translationY\n } = e;\n scrollEndVelocity.value = isHorizontal.value ? velocityX : velocityY;\n scrollEndTranslation.value = isHorizontal.value ? translationX : translationY;\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const nextPage = Math.round((ctx.panOffset + maxScrollDistancePerSwipe * Math.sign(totalTranslation)) / size) * size;\n translation.value = withSpring(withProcessTranslation(nextPage), onScrollEnd);\n } else {\n endWithSpring(onScrollEnd);\n }\n if (!infinite) touching.value = false;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"e\",\"ctx\",\"scrollEndVelocity\",\"isHorizontal\",\"scrollEndTranslation\",\"maxScrollDistancePerSwipe\",\"size\",\"translation\",\"withSpring\",\"withProcessTranslation\",\"onScrollEnd\",\"endWithSpring\",\"infinite\",\"touching\",\"_closure\",\"velocityX\",\"velocityY\",\"translationX\",\"translationY\",\"value\",\"totalTranslation\",\"Math\",\"abs\",\"nextPage\",\"round\",\"panOffset\",\"sign\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAqTa,SAACA,SAAMA,CAAKC,CAAA,EAAAC,GAAA;EAAA;IAAAC,iBAAA;IAAAC,YAAA;IAAAC,oBAAA;IAAAC,yBAAA;IAAAC,IAAA;IAAAC,WAAA;IAAAC,UAAA;IAAAC,sBAAA;IAAAC,WAAA;IAAAC,aAAA;IAAAC,QAAA;IAAAC;EAAA,SAAAC,QAAA;EACjB,MAAM;IAAEC,SAAS,EAATA,SAAS;IAAEC,SAAS,EAATA,SAAS;IAAEC,YAAY,EAAZA,YAAY;IAAEC,YAAA,EAAAA;EAAa,CAAC,GAAGlB,CAAC;EAC9DE,iBAAiB,CAACiB,KAAK,GAAGhB,YAAY,CAACgB,KAAK,GACxCJ,SAAS,GACTC,SAAS;EACbZ,oBAAoB,CAACe,KAAK,GAAGhB,YAAY,CAACgB,KAAK,GAC3CF,YAAY,GACZC,YAAY;EAEhB,MAAME,gBAAgB,GAAGjB,YAAY,CAACgB,KAAK,GAAGF,YAAY,GAAGC,YAAY;EAEzE,IAAI,OAAOb,yBAAyB,KAAK,QAAQ,IAAIgB,IAAI,CAACC,GAAG,CAACF,gBAAgB,CAAC,GAAGf,yBAAyB,EAAE;IAC3G,MAAMkB,QAAQ,GAAGF,IAAI,CAACG,KAAK,CAAC,CAACvB,GAAG,CAACwB,SAAS,GAAGpB,yBAAyB,GAAGgB,IAAI,CAACK,IAAI,CAACN,gBAAgB,CAAC,IAAId,IAAI,CAAC,GAAGA,IAAI;IACpHC,WAAW,CAACY,KAAK,GAAGX,UAAU,CAACC,sBAAsB,CAACc,QAAQ,CAAC,EAAEb,WAAW,CAAC;EAC/E,CAAC,MACI;IACHC,aAAa,CAACD,WAAW,CAAC;EAC5B;EAEA,IAAI,CAACE,QAAQ,EACXC,QAAQ,CAACM,KAAK,GAAG,KAAK;AAC1B\"}"};var IScrollViewGesture=function IScrollViewGesture(props){var _React$useContext=_react.default.useContext(_store.CTX),_React$useContext$pro=_React$useContext.props,vertical=_React$useContext$pro.vertical,pagingEnabled=_React$useContext$pro.pagingEnabled,snapEnabled=_React$useContext$pro.snapEnabled,panGestureHandlerProps=_React$useContext$pro.panGestureHandlerProps,infinite=_React$useContext$pro.loop,scrollAnimationDuration=_React$useContext$pro.scrollAnimationDuration,withAnimation=_React$useContext$pro.withAnimation,enabled=_React$useContext$pro.enabled,dataLength=_React$useContext$pro.dataLength,overscrollEnabled=_React$useContext$pro.overscrollEnabled,maxScrollDistancePerSwipe=_React$useContext$pro.maxScrollDistancePerSwipe;var size=props.size,translation=props.translation,testID=props.testID,_props$style=props.style,style=_props$style===void 0?{}:_props$style,onScrollBegin=props.onScrollBegin,onScrollEnd=props.onScrollEnd,onTouchBegin=props.onTouchBegin,onTouchEnd=props.onTouchEnd;var maxPage=dataLength;var isHorizontal=(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-2,-27];var _f=function _f(){return!vertical;};_f._closure={vertical:vertical};_f.__initData=_worklet_10100718122216_init_data;_f.__workletHash=10100718122216;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[vertical]);var touching=(0,_reactNativeReanimated.useSharedValue)(false);var scrollEndTranslation=(0,_reactNativeReanimated.useSharedValue)(0);var scrollEndVelocity=(0,_reactNativeReanimated.useSharedValue)(0);var containerRef=(0,_reactNativeReanimated.useAnimatedRef)();var getLimit=_react.default.useCallback(function(){var _e=[new global.Error(),-7,-27];var _f=function _f(){if(!infinite&&!overscrollEnabled){var _measure=(0,_reactNativeReanimated.measure)(containerRef),_measure$width=_measure.width,containerWidth=_measure$width===void 0?0:_measure$width;if(dataLength*size<containerWidth)return 0;return dataLength*size-containerWidth;}return dataLength*size;};_f._closure={infinite:infinite,overscrollEnabled:overscrollEnabled,measure:_reactNativeReanimated.measure,containerRef:containerRef,dataLength:dataLength,size:size};_f.__initData=_worklet_736417391548_init_data;_f.__workletHash=736417391548;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[infinite,size,dataLength,overscrollEnabled]);var withSpring=_react.default.useCallback(function(){var _e=[new global.Error(),-6,-27];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 _e=[new global.Error(),-3,-27];var _f=function _f(isFinished){if(isFinished)onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();};_f._closure={onFinished:onFinished,runOnJS:_reactNativeReanimated.runOnJS};_f.__initData=_worklet_15664499378840_init_data;_f.__workletHash=15664499378840;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}());};_f._closure={scrollAnimationDuration:scrollAnimationDuration,Easing:_constants.Easing,dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation,runOnJS:_reactNativeReanimated.runOnJS};_f.__initData=_worklet_38454346678_init_data;_f.__workletHash=38454346678;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[scrollAnimationDuration,withAnimation]);var endWithSpring=_react.default.useCallback(function(){var _e=[new global.Error(),-14,-27];var _f=function _f(onFinished){var origin=translation.value;var velocity=scrollEndVelocity.value;var finalTranslation=(0,_reactNativeReanimated.withDecay)({velocity:velocity,deceleration:0.999});if(typeof maxScrollDistancePerSwipe==="number"&&Math.abs(scrollEndTranslation.value)>maxScrollDistancePerSwipe){finalTranslation=origin;}else{if(pagingEnabled){var offset=-(scrollEndTranslation.value>=0?1:-1);var computed=offset<0?Math.ceil:Math.floor;var page=computed(-translation.value/size);if(infinite){var finalPage=page+offset;finalTranslation=withSpring(withProcessTranslation(-finalPage*size),onFinished);}else{var _finalPage=Math.min(maxPage-1,Math.max(0,page+offset));finalTranslation=withSpring(withProcessTranslation(-_finalPage*size),onFinished);}}if(!pagingEnabled&&snapEnabled){var nextPage=Math.round((origin+velocity*0.4)/size)*size;finalTranslation=withSpring(withProcessTranslation(nextPage),onFinished);}}translation.value=finalTranslation;function withProcessTranslation(translation){if(!infinite&&!overscrollEnabled){var limit=getLimit();var sign=Math.sign(translation);return sign*Math.max(0,Math.min(limit,Math.abs(translation)));}return translation;}};_f._closure={translation:translation,scrollEndVelocity:scrollEndVelocity,withDecay:_reactNativeReanimated.withDecay,maxScrollDistancePerSwipe:maxScrollDistancePerSwipe,scrollEndTranslation:scrollEndTranslation,pagingEnabled:pagingEnabled,size:size,infinite:infinite,withSpring:withSpring,maxPage:maxPage,snapEnabled:snapEnabled,overscrollEnabled:overscrollEnabled,getLimit:getLimit};_f.__initData=_worklet_15595988837712_init_data;_f.__workletHash=15595988837712;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[withSpring,size,maxPage,infinite,snapEnabled,translation,pagingEnabled,scrollEndVelocity.value,maxScrollDistancePerSwipe,scrollEndTranslation.value]);var onFinish=_react.default.useCallback(function(){var _e=[new global.Error(),-4,-27];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.__initData=_worklet_14734469187996_init_data;_f.__workletHash=14734469187996;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[onScrollEnd,touching]);var activeDecay=_react.default.useCallback(function(){var _e=[new global.Error(),-6,-27];var _f=function _f(){touching.value=true;translation.value=(0,_reactNativeReanimated.withDecay)({velocity:scrollEndVelocity.value},function(){var _e=[new global.Error(),-2,-27];var _f=function _f(isFinished){return onFinish(isFinished);};_f._closure={onFinish:onFinish};_f.__initData=_worklet_11301139675464_init_data;_f.__workletHash=11301139675464;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}());};_f._closure={touching:touching,translation:translation,withDecay:_reactNativeReanimated.withDecay,scrollEndVelocity:scrollEndVelocity,onFinish:onFinish};_f.__initData=_worklet_14660770182194_init_data;_f.__workletHash=14660770182194;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[onFinish,scrollEndVelocity.value,touching,translation]);var resetBoundary=_react.default.useCallback(function(){var _e=[new global.Error(),-9,-27];var _f=function _f(){if(touching.value)return;if(translation.value>0){if(scrollEndTranslation.value<0){activeDecay();return;}if(!infinite){translation.value=withSpring(0);return;}}if(translation.value<-((maxPage-1)*size)){if(scrollEndTranslation.value>0){activeDecay();return;}if(!infinite)translation.value=withSpring(-((maxPage-1)*size));}};_f._closure={touching:touching,translation:translation,scrollEndTranslation:scrollEndTranslation,activeDecay:activeDecay,infinite:infinite,withSpring:withSpring,maxPage:maxPage,size:size};_f.__initData=_worklet_5253258937186_init_data;_f.__workletHash=5253258937186;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[touching.value,translation,maxPage,size,scrollEndTranslation.value,infinite,activeDecay,withSpring]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _e=[new global.Error(),-2,-27];var _f=function _f(){return translation.value;};_f._closure={translation:translation};_f.__initData=_worklet_15931544841004_init_data;_f.__workletHash=15931544841004;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),function(){var _e=[new global.Error(),-3,-27];var _f=function _f(){if(!pagingEnabled)resetBoundary();};_f._closure={pagingEnabled:pagingEnabled,resetBoundary:resetBoundary};_f.__initData=_worklet_12444593625099_init_data;_f.__workletHash=12444593625099;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[pagingEnabled,resetBoundary]);var withProcessTranslation=function(){var _e=[new global.Error(),-4,-27];var _f=function _f(translation){if(!infinite&&!overscrollEnabled){var limit=getLimit();var sign=Math.sign(translation);return sign*Math.max(0,Math.min(limit,Math.abs(translation)));}return translation;};_f._closure={infinite:infinite,overscrollEnabled:overscrollEnabled,getLimit:getLimit};_f.__initData=_worklet_11427369935693_init_data;_f.__workletHash=11427369935693;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}();var panGestureEventHandler=(0,_reactNativeReanimated.useAnimatedGestureHandler)({onStart:function(){var _e=[new global.Error(),-10,-27];var _f=function _f(_,ctx){touching.value=true;ctx.validStart=true;onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(onScrollBegin)();ctx.max=(maxPage-1)*size;if(!infinite&&!overscrollEnabled)ctx.max=getLimit();ctx.panOffset=translation.value;};_f._closure={touching:touching,onScrollBegin:onScrollBegin,runOnJS:_reactNativeReanimated.runOnJS,maxPage:maxPage,size:size,infinite:infinite,overscrollEnabled:overscrollEnabled,getLimit:getLimit,translation:translation};_f.__initData=_worklet_6283859030724_init_data;_f.__workletHash=6283859030724;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),onActive:function(){var _e=[new global.Error(),-7,-27];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 totalTranslation=isHorizontal.value?translationX:translationY;if(typeof maxScrollDistancePerSwipe==="number"&&Math.abs(totalTranslation)>maxScrollDistancePerSwipe){var overSwipe=Math.abs(totalTranslation)-maxScrollDistancePerSwipe;var dampedTranslation=maxScrollDistancePerSwipe+overSwipe*0.5;translationX=isHorizontal.value?dampedTranslation*Math.sign(translationX):translationX;translationY=!isHorizontal.value?dampedTranslation*Math.sign(translationY):translationY;}var panTranslation=isHorizontal.value?translationX:translationY;if(!infinite){if(translation.value>0||translation.value<-ctx.max){var boundary=translation.value>0?0:-ctx.max;var fixed=boundary-ctx.panOffset;var dynamic=panTranslation-fixed;translation.value=boundary+dynamic*0.5;return;}}var translationValue=ctx.panOffset+panTranslation;translation.value=translationValue;};_f._closure={cancelAnimation:_reactNativeReanimated.cancelAnimation,translation:translation,touching:touching,isHorizontal:isHorizontal,maxScrollDistancePerSwipe:maxScrollDistancePerSwipe,infinite:infinite};_f.__initData=_worklet_14494691336804_init_data;_f.__workletHash=14494691336804;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),onEnd:function(){var _e=[new global.Error(),-13,-27];var _f=function _f(e,ctx){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;var totalTranslation=isHorizontal.value?translationX:translationY;if(typeof maxScrollDistancePerSwipe==="number"&&Math.abs(totalTranslation)>maxScrollDistancePerSwipe){var nextPage=Math.round((ctx.panOffset+maxScrollDistancePerSwipe*Math.sign(totalTranslation))/size)*size;translation.value=withSpring(withProcessTranslation(nextPage),onScrollEnd);}else{endWithSpring(onScrollEnd);}if(!infinite)touching.value=false;};_f._closure={scrollEndVelocity:scrollEndVelocity,isHorizontal:isHorizontal,scrollEndTranslation:scrollEndTranslation,maxScrollDistancePerSwipe:maxScrollDistancePerSwipe,size:size,translation:translation,withSpring:withSpring,withProcessTranslation:withProcessTranslation,onScrollEnd:onScrollEnd,endWithSpring:endWithSpring,infinite:infinite,touching:touching};_f.__initData=_worklet_15532837681820_init_data;_f.__workletHash=15532837681820;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}()},[pagingEnabled,isHorizontal.value,infinite,maxPage,size,snapEnabled,onScrollBegin,onScrollEnd]);return(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.PanGestureHandler,Object.assign({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{ref:containerRef,testID:testID,style:style,onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,children:props.children})}));};var ScrollViewGesture=IScrollViewGesture;exports.ScrollViewGesture=ScrollViewGesture;
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ScrollViewGesture=void 0;var _react=_interopRequireDefault(require("react"));var _reactNativeGestureHandler=require("react-native-gesture-handler");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _constants=require("./constants");var _store=require("./store");var _dealWithAnimation=require("./utils/dealWithAnimation");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _worklet_10100718122216_init_data={code:"function anonymous() {\n const {\n vertical\n } = this._closure;\n return !vertical;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"vertical\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAqEuC,SAAAA,UAAA;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAO,CAAAD,QAAA;AAAA\"}"};var _worklet_736417391548_init_data={code:"function anonymous() {\n const {\n infinite,\n overscrollEnabled,\n measure,\n containerRef,\n dataLength,\n size\n } = this._closure;\n if (!infinite && !overscrollEnabled) {\n const {\n width: containerWidth = 0\n } = measure(containerRef);\n if (dataLength * size < containerWidth) return 0;\n return dataLength * size - containerWidth;\n }\n return dataLength * size;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"infinite\",\"overscrollEnabled\",\"measure\",\"containerRef\",\"dataLength\",\"size\",\"_closure\",\"width\",\"containerWidth\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA4EqC,SAAAA,SAAMA,CAAA;EAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC,OAAA;IAAAC,YAAA;IAAAC,UAAA;IAAAC;EAAA,SAAAC,QAAA;EAGvC,IAAI,CAACN,QAAQ,IAAI,CAACC,iBAAiB,EAAE;IACnC,MAAM;MAAEM,KAAK,EAAEC,cAAc,GAAG;IAAE,CAAC,GAAGN,OAAO,CAACC,YAAY,CAAC;IAG3D,IAAIC,UAAU,GAAGC,IAAI,GAAGG,cAAc,EACpC,OAAO,CAAC;IAGV,OAAOJ,UAAU,GAAGC,IAAI,GAAGG,cAAc;EAC3C;EAEA,OAAOJ,UAAU,GAAGC,IAAI;AAC1B\"}"};var _worklet_38454346678_init_data={code:"function anonymous(toValue, onFinished) {\n const {\n scrollAnimationDuration,\n Easing,\n dealWithAnimation,\n withAnimation,\n runOnJS\n } = this._closure;\n var _withAnimation;\n const defaultWithAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart\n }\n };\n return dealWithAnimation((_withAnimation = withAnimation) !== null && _withAnimation !== void 0 ? _withAnimation : defaultWithAnimation)(toValue, function (isFinished) {\n \"worklet\";\n\n if (isFinished) onFinished && runOnJS(onFinished)();\n });\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"toValue\",\"onFinished\",\"scrollAnimationDuration\",\"Easing\",\"dealWithAnimation\",\"withAnimation\",\"runOnJS\",\"_closure\",\"_withAnimation\",\"defaultWithAnimation\",\"type\",\"config\",\"duration\",\"easing\",\"easeOutQuart\",\"isFinished\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA8FI,SAACA,SAAeA,CAAAC,OAAE,EAAAC,UAA4B;EAAA;IAAAC,uBAAA;IAAAC,MAAA;IAAAC,iBAAA;IAAAC,aAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,IAAAC,cAAA;EAE5C,MAAMC,oBAAyC,GAAG;IAChDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;MACNC,QAAQ,EAAEV,uBAAuB,GAAG,GAAG;MACvCW,MAAM,EAAEV,MAAM,CAACW;IACjB;EACF,CAAC;EAED,OAAOV,iBAAiB,EAAAI,cAAA,GAACH,aAAa,cAAAG,cAAA,cAAAA,cAAA,GAAIC,oBAAoB,CAAC,CAC7DT,OAAO,EACP,UAACe,UAAmB,EAAK;IACvB,SAAS;;IACT,IAAIA,UAAU,EACZd,UAAU,IAAIK,OAAO,CAACL,UAAU,CAAC,CAAC,CAAC;EACvC,CACF,CAAC;AACH\"}"};var _worklet_15664499378840_init_data={code:"function anonymous(isFinished) {\n const {\n onFinished,\n runOnJS\n } = this._closure;\n if (isFinished) onFinished && runOnJS(onFinished)();\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"isFinished\",\"onFinished\",\"runOnJS\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA0GQ,SAACA,UAAAC,UAAwB;EAAA;IAAAC,UAAA;IAAAC;EAAA,SAAAC,QAAA;EAEvB,IAAIH,UAAU,EACZC,UAAU,IAAIC,OAAO,CAACD,UAAU,CAAC,CAAC,CAAC;AACvC\"}"};var _worklet_15595988837712_init_data={code:"function anonymous(onFinished) {\n const {\n translation,\n scrollEndVelocity,\n withDecay,\n maxScrollDistancePerSwipe,\n scrollEndTranslation,\n pagingEnabled,\n size,\n infinite,\n withSpring,\n maxPage,\n snapEnabled,\n overscrollEnabled,\n getLimit\n } = this._closure;\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n let finalTranslation = withDecay({\n velocity: velocity,\n deceleration: 0.999\n });\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(scrollEndTranslation.value) > maxScrollDistancePerSwipe) {\n finalTranslation = origin;\n } else {\n if (pagingEnabled) {\n const offset = -(scrollEndTranslation.value >= 0 ? 1 : -1);\n const computed = offset < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n if (infinite) {\n const finalPage = page + offset;\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n } else {\n const finalPage = Math.min(maxPage - 1, Math.max(0, page + offset));\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n }\n if (!pagingEnabled && snapEnabled) {\n const nextPage = Math.round((origin + velocity * 0.4) / size) * size;\n finalTranslation = withSpring(withProcessTranslation(nextPage), onFinished);\n }\n }\n translation.value = finalTranslation;\n function withProcessTranslation(translation) {\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n return translation;\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"onFinished\",\"translation\",\"scrollEndVelocity\",\"withDecay\",\"maxScrollDistancePerSwipe\",\"scrollEndTranslation\",\"pagingEnabled\",\"size\",\"infinite\",\"withSpring\",\"maxPage\",\"snapEnabled\",\"overscrollEnabled\",\"getLimit\",\"_closure\",\"origin\",\"value\",\"velocity\",\"finalTranslation\",\"deceleration\",\"Math\",\"abs\",\"offset\",\"computed\",\"ceil\",\"floor\",\"page\",\"finalPage\",\"withProcessTranslation\",\"min\",\"max\",\"nextPage\",\"round\",\"limit\",\"sign\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAqHI,SAACA,UAAAC,UAA4B;EAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,SAAA;IAAAC,yBAAA;IAAAC,oBAAA;IAAAC,aAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,OAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC;EAAA,SAAAC,QAAA;EAE3B,MAAMC,MAAM,GAAGd,WAAW,CAACe,KAAK;EAChC,MAAMC,QAAQ,GAAGf,iBAAiB,CAACc,KAAK;EAExC,IAAIE,gBAAwB,GAAGf,SAAS,CAAC;IAAEc,QAAQ,EAARA,QAAQ;IAAEE,YAAY,EAAE;EAAM,CAAC,CAAC;EAG3E,IAAI,OAAOf,yBAAyB,KAAK,QAAQ,IAAIgB,IAAI,CAACC,GAAG,CAAChB,oBAAoB,CAACW,KAAK,CAAC,GAAGZ,yBAAyB,EAAE;IACrHc,gBAAgB,GAAGH,MAAM;EAC3B,CAAC,MACI;IAQH,IAAIT,aAAa,EAAE;MAEjB,MAAMgB,MAAM,GAAG,EAAEjB,oBAAoB,CAACW,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MAC1D,MAAMO,QAAQ,GAAGD,MAAM,GAAG,CAAC,GAAGF,IAAI,CAACI,IAAI,GAAGJ,IAAI,CAACK,KAAK;MACpD,MAAMC,IAAI,GAAGH,QAAQ,CAAC,CAACtB,WAAW,CAACe,KAAK,GAAGT,IAAI,CAAC;MAEhD,IAAIC,QAAQ,EAAE;QACZ,MAAMmB,SAAS,GAAGD,IAAI,GAAGJ,MAAM;QAC/BJ,gBAAgB,GAAGT,UAAU,CAACmB,sBAAsB,CAAC,CAACD,SAAS,GAAGpB,IAAI,CAAC,EAAEP,UAAU,CAAC;MACtF,CAAC,MACI;QACH,MAAM2B,SAAS,GAAGP,IAAI,CAACS,GAAG,CAACnB,OAAO,GAAG,CAAC,EAAEU,IAAI,CAACU,GAAG,CAAC,CAAC,EAAEJ,IAAI,GAAGJ,MAAM,CAAC,CAAC;QACnEJ,gBAAgB,GAAGT,UAAU,CAACmB,sBAAsB,CAAC,CAACD,SAAS,GAAGpB,IAAI,CAAC,EAAEP,UAAU,CAAC;MACtF;IACF;IAEA,IAAI,CAACM,aAAa,IAAIK,WAAW,EAAE;MAEjC,MAAMoB,QAAQ,GAAGX,IAAI,CAACY,KAAK,CAAC,CAACjB,MAAM,GAAGE,QAAQ,GAAG,GAAG,IAAIV,IAAI,CAAC,GAAGA,IAAI;MACpEW,gBAAgB,GAAGT,UAAU,CAACmB,sBAAsB,CAACG,QAAQ,CAAC,EAAE/B,UAAU,CAAC;IAC7E;EACF;EAEAC,WAAW,CAACe,KAAK,GAAGE,gBAAgB;EAEpC,SAASU,sBAAsBA,CAAC3B,WAAmB,EAAE;IACnD,IAAI,CAACO,QAAQ,IAAI,CAACI,iBAAiB,EAAE;MACnC,MAAMqB,KAAK,GAAGpB,QAAQ,CAAC,CAAC;MACxB,MAAMqB,IAAI,GAAGd,IAAI,CAACc,IAAI,CAACjC,WAAW,CAAC;MACnC,OAAOiC,IAAI,GAAGd,IAAI,CAACU,GAAG,CAAC,CAAC,EAAEV,IAAI,CAACS,GAAG,CAACI,KAAK,EAAEb,IAAI,CAACC,GAAG,CAACpB,WAAW,CAAC,CAAC,CAAC;IACnE;IAEA,OAAOA,WAAW;EACpB;AACF\"}"};var _worklet_14734469187996_init_data={code:"function anonymous(isFinished) {\n const {\n touching,\n onScrollEnd,\n runOnJS\n } = this._closure;\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"isFinished\",\"touching\",\"onScrollEnd\",\"runOnJS\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA0LI,SAACA,UAAAC,UAAwB;EAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC;EAAA,SAAAC,QAAA;EAEvB,IAAIJ,UAAU,EAAE;IACdC,QAAQ,CAACI,KAAK,GAAG,KAAK;IACtBH,WAAW,IAAIC,OAAO,CAACD,WAAW,CAAC,CAAC,CAAC;EACvC;AACF\"}"};var _worklet_14660770182194_init_data={code:"function anonymous() {\n const {\n touching,\n translation,\n withDecay,\n scrollEndVelocity,\n onFinish\n } = this._closure;\n touching.value = true;\n translation.value = withDecay({\n velocity: scrollEndVelocity.value\n }, function (isFinished) {\n return onFinish(isFinished);\n });\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"touching\",\"translation\",\"withDecay\",\"scrollEndVelocity\",\"onFinish\",\"_closure\",\"value\",\"velocity\",\"isFinished\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAoMwC,SAAAA,SAAMA,CAAA;EAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,iBAAA;IAAAC;EAAA,SAAAC,QAAA;EAE1CL,QAAQ,CAACM,KAAK,GAAG,IAAI;EACrBL,WAAW,CAACK,KAAK,GAAGJ,SAAS,CAC3B;IAAEK,QAAQ,EAAEJ,iBAAiB,CAACG;EAAM,CAAC,EACrC,UAAAE,UAAU;IAAA,OAAIJ,QAAQ,CAACI,UAAqB,CAC9C;EAAA,EAAC;AACH\"}"};var _worklet_11301139675464_init_data={code:"function anonymous(isFinished) {\n const {\n onFinish\n } = this._closure;\n return onFinish(isFinished);\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"isFinished\",\"onFinish\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAyMM,SAAAA,UAAAC,UAAU;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAID,QAAQ,CAACD,UAAqB;AAAA\"}"};var _worklet_5253258937186_init_data={code:"function anonymous() {\n const {\n touching,\n translation,\n scrollEndTranslation,\n activeDecay,\n infinite,\n withSpring,\n maxPage,\n size\n } = this._closure;\n if (touching.value) return;\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 if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite) translation.value = withSpring(-((maxPage - 1) * size));\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"touching\",\"translation\",\"scrollEndTranslation\",\"activeDecay\",\"infinite\",\"withSpring\",\"maxPage\",\"size\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA6M0C,SAAAA,SAAMA,CAAA;EAAA;IAAAC,QAAA;IAAAC,WAAA;IAAAC,oBAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,OAAA;IAAAC;EAAA,SAAAC,QAAA;EAE5C,IAAIR,QAAQ,CAACS,KAAK,EAChB;EAEF,IAAIR,WAAW,CAACQ,KAAK,GAAG,CAAC,EAAE;IACzB,IAAIP,oBAAoB,CAACO,KAAK,GAAG,CAAC,EAAE;MAClCN,WAAW,CAAC,CAAC;MACb;IACF;IACA,IAAI,CAACC,QAAQ,EAAE;MACbH,WAAW,CAACQ,KAAK,GAAGJ,UAAU,CAAC,CAAC,CAAC;MACjC;IACF;EACF;EAEA,IAAIJ,WAAW,CAACQ,KAAK,GAAG,EAAE,CAACH,OAAO,GAAG,CAAC,IAAIC,IAAI,CAAC,EAAE;IAC/C,IAAIL,oBAAoB,CAACO,KAAK,GAAG,CAAC,EAAE;MAClCN,WAAW,CAAC,CAAC;MACb;IACF;IACA,IAAI,CAACC,QAAQ,EACXH,WAAW,CAACQ,KAAK,GAAGJ,UAAU,CAAC,EAAE,CAACC,OAAO,GAAG,CAAC,IAAIC,IAAI,CAAC,CAAC;EAC3D;AACF\"}"};var _worklet_15931544841004_init_data={code:"function anonymous() {\n const {\n translation\n } = this._closure;\n return translation.value;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"translation\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAiPI,SAAAA,UAAA;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAMD,WAAY,CAAAE,KAAA;AAAA\"}"};var _worklet_12444593625099_init_data={code:"function anonymous() {\n const {\n pagingEnabled,\n resetBoundary\n } = this._closure;\n if (!pagingEnabled) resetBoundary();\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"pagingEnabled\",\"resetBoundary\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAkPI,SAAAA,SAAMA,CAAA;EAAA;IAAAC,aAAA;IAAAC;EAAA,SAAAC,QAAA;EACJ,IAAI,CAACF,aAAa,EAChBC,aAAa,CAAC,CAAC;AACnB\"}"};var _worklet_11427369935693_init_data={code:"function withProcessTranslation(translation) {\n const {\n infinite,\n overscrollEnabled,\n getLimit\n } = this._closure;\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n return translation;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"withProcessTranslation\",\"translation\",\"infinite\",\"overscrollEnabled\",\"getLimit\",\"_closure\",\"limit\",\"sign\",\"Math\",\"max\",\"min\",\"abs\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAyPE,SAAAA,sBAASA,CAAuBC,WAAA,EAAmB;EAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC;EAAA,SAAAC,QAAA;EAGjD,IAAI,CAACH,QAAQ,IAAI,CAACC,iBAAiB,EAAE;IACnC,MAAMG,KAAK,GAAGF,QAAQ,CAAC,CAAC;IACxB,MAAMG,IAAI,GAAGC,IAAI,CAACD,IAAI,CAACN,WAAW,CAAC;IACnC,OAAOM,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACJ,KAAK,EAAEE,IAAI,CAACG,GAAG,CAACV,WAAW,CAAC,CAAC,CAAC;EACnE;EAEA,OAAOA,WAAW;AACpB\"}"};var _worklet_6283859030724_init_data={code:"function anonymous(_, ctx) {\n const {\n touching,\n onScrollBegin,\n runOnJS,\n maxPage,\n size,\n infinite,\n overscrollEnabled,\n getLimit,\n translation\n } = this._closure;\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n ctx.max = (maxPage - 1) * size;\n if (!infinite && !overscrollEnabled) ctx.max = getLimit();\n ctx.panOffset = translation.value;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"_\",\"ctx\",\"touching\",\"onScrollBegin\",\"runOnJS\",\"maxPage\",\"size\",\"infinite\",\"overscrollEnabled\",\"getLimit\",\"translation\",\"_closure\",\"value\",\"validStart\",\"max\",\"panOffset\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AA0Qe,SAACA,SAAMA,CAAKC,CAAA,EAAAC,GAAA;EAAA;IAAAC,QAAA;IAAAC,aAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC,QAAA;IAAAC;EAAA,SAAAC,QAAA;EACnBT,QAAQ,CAACU,KAAK,GAAG,IAAI;EACrBX,GAAG,CAACY,UAAU,GAAG,IAAI;EACrBV,aAAa,IAAIC,OAAO,CAACD,aAAa,CAAC,CAAC,CAAC;EAEzCF,GAAG,CAACa,GAAG,GAAG,CAACT,OAAO,GAAG,CAAC,IAAIC,IAAI;EAC9B,IAAI,CAACC,QAAQ,IAAI,CAACC,iBAAiB,EACjCP,GAAG,CAACa,GAAG,GAAGL,QAAQ,CAAC,CAAC;EAEtBR,GAAG,CAACc,SAAS,GAAGL,WAAW,CAACE,KAAK;AACnC\"}"};var _worklet_14494691336804_init_data={code:"function anonymous(e, ctx) {\n const {\n cancelAnimation,\n translation,\n touching,\n isHorizontal,\n maxScrollDistancePerSwipe,\n infinite\n } = this._closure;\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n let {\n translationX: translationX,\n translationY: translationY\n } = e;\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const overSwipe = Math.abs(totalTranslation) - maxScrollDistancePerSwipe;\n const dampedTranslation = maxScrollDistancePerSwipe + overSwipe * 0.5;\n translationX = isHorizontal.value ? dampedTranslation * Math.sign(translationX) : translationX;\n translationY = !isHorizontal.value ? dampedTranslation * Math.sign(translationY) : translationY;\n }\n const panTranslation = isHorizontal.value ? translationX : translationY;\n if (!infinite) {\n if (translation.value > 0 || translation.value < -ctx.max) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n }\n const translationValue = ctx.panOffset + panTranslation;\n translation.value = translationValue;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"e\",\"ctx\",\"cancelAnimation\",\"translation\",\"touching\",\"isHorizontal\",\"maxScrollDistancePerSwipe\",\"infinite\",\"_closure\",\"validStart\",\"value\",\"translationX\",\"translationY\",\"totalTranslation\",\"Math\",\"abs\",\"overSwipe\",\"dampedTranslation\",\"sign\",\"panTranslation\",\"max\",\"boundary\",\"fixed\",\"panOffset\",\"dynamic\",\"translationValue\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAqRgB,SAACA,SAAMA,CAAKC,CAAA,EAAAC,GAAA;EAAA;IAAAC,eAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,YAAA;IAAAC,yBAAA;IAAAC;EAAA,SAAAC,QAAA;EACpB,IAAIP,GAAG,CAACQ,UAAU,EAAE;IAClBR,GAAG,CAACQ,UAAU,GAAG,KAAK;IACtBP,eAAe,CAACC,WAAW,CAAC;EAC9B;EACAC,QAAQ,CAACM,KAAK,GAAG,IAAI;EACrB,IAAI;IAAEC,YAAY,EAAZA,YAAY;IAAEC,YAAA,EAAAA;EAAa,CAAC,GAAGZ,CAAC;EAEtC,MAAMa,gBAAgB,GAAGR,YAAY,CAACK,KAAK,GAAGC,YAAY,GAAGC,YAAY;EAEzE,IAAI,OAAON,yBAAyB,KAAK,QAAQ,IAAIQ,IAAI,CAACC,GAAG,CAACF,gBAAgB,CAAC,GAAGP,yBAAyB,EAAE;IAC3G,MAAMU,SAAS,GAAGF,IAAI,CAACC,GAAG,CAACF,gBAAgB,CAAC,GAAGP,yBAAyB;IACxE,MAAMW,iBAAiB,GAAGX,yBAAyB,GAAGU,SAAS,GAAG,GAAG;IAErEL,YAAY,GAAGN,YAAY,CAACK,KAAK,GAAGO,iBAAiB,GAAGH,IAAI,CAACI,IAAI,CAACP,YAAY,CAAC,GAAGA,YAAY;IAC9FC,YAAY,GAAG,CAACP,YAAY,CAACK,KAAK,GAAGO,iBAAiB,GAAGH,IAAI,CAACI,IAAI,CAACN,YAAY,CAAC,GAAGA,YAAY;EACjG;EAEA,MAAMO,cAAc,GAAGd,YAAY,CAACK,KAAK,GAAGC,YAAY,GAAGC,YAAY;EACvE,IAAI,CAACL,QAAQ,EAAE;IACb,IAAKJ,WAAW,CAACO,KAAK,GAAG,CAAC,IAAIP,WAAW,CAACO,KAAK,GAAG,CAACT,GAAG,CAACmB,GAAG,EAAG;MAC3D,MAAMC,QAAQ,GAAGlB,WAAW,CAACO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAACT,GAAG,CAACmB,GAAG;MACrD,MAAME,KAAK,GAAGD,QAAQ,GAAGpB,GAAG,CAACsB,SAAS;MACtC,MAAMC,OAAO,GAAGL,cAAc,GAAGG,KAAK;MACtCnB,WAAW,CAACO,KAAK,GAAGW,QAAQ,GAAGG,OAAO,GAAG,GAAG;MAC5C;IACF;EACF;EAEA,MAAMC,gBAAgB,GAAGxB,GAAG,CAACsB,SAAS,GAAGJ,cAAc;EAEvDhB,WAAW,CAACO,KAAK,GAAGe,gBAAgB;AACtC\"}"};var _worklet_15532837681820_init_data={code:"function anonymous(e, ctx) {\n const {\n scrollEndVelocity,\n isHorizontal,\n scrollEndTranslation,\n maxScrollDistancePerSwipe,\n size,\n translation,\n withSpring,\n withProcessTranslation,\n onScrollEnd,\n endWithSpring,\n infinite,\n touching\n } = this._closure;\n const {\n velocityX: velocityX,\n velocityY: velocityY,\n translationX: translationX,\n translationY: translationY\n } = e;\n scrollEndVelocity.value = isHorizontal.value ? velocityX : velocityY;\n scrollEndTranslation.value = isHorizontal.value ? translationX : translationY;\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const nextPage = Math.round((ctx.panOffset + maxScrollDistancePerSwipe * Math.sign(totalTranslation)) / size) * size;\n translation.value = withSpring(withProcessTranslation(nextPage), onScrollEnd);\n } else {\n endWithSpring(onScrollEnd);\n }\n if (!infinite) touching.value = false;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"e\",\"ctx\",\"scrollEndVelocity\",\"isHorizontal\",\"scrollEndTranslation\",\"maxScrollDistancePerSwipe\",\"size\",\"translation\",\"withSpring\",\"withProcessTranslation\",\"onScrollEnd\",\"endWithSpring\",\"infinite\",\"touching\",\"_closure\",\"velocityX\",\"velocityY\",\"translationX\",\"translationY\",\"value\",\"totalTranslation\",\"Math\",\"abs\",\"nextPage\",\"round\",\"panOffset\",\"sign\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/ScrollViewGesture.tsx\"],\"mappings\":\"AAsTa,SAACA,SAAMA,CAAKC,CAAA,EAAAC,GAAA;EAAA;IAAAC,iBAAA;IAAAC,YAAA;IAAAC,oBAAA;IAAAC,yBAAA;IAAAC,IAAA;IAAAC,WAAA;IAAAC,UAAA;IAAAC,sBAAA;IAAAC,WAAA;IAAAC,aAAA;IAAAC,QAAA;IAAAC;EAAA,SAAAC,QAAA;EACjB,MAAM;IAAEC,SAAS,EAATA,SAAS;IAAEC,SAAS,EAATA,SAAS;IAAEC,YAAY,EAAZA,YAAY;IAAEC,YAAA,EAAAA;EAAa,CAAC,GAAGlB,CAAC;EAC9DE,iBAAiB,CAACiB,KAAK,GAAGhB,YAAY,CAACgB,KAAK,GACxCJ,SAAS,GACTC,SAAS;EACbZ,oBAAoB,CAACe,KAAK,GAAGhB,YAAY,CAACgB,KAAK,GAC3CF,YAAY,GACZC,YAAY;EAEhB,MAAME,gBAAgB,GAAGjB,YAAY,CAACgB,KAAK,GAAGF,YAAY,GAAGC,YAAY;EAEzE,IAAI,OAAOb,yBAAyB,KAAK,QAAQ,IAAIgB,IAAI,CAACC,GAAG,CAACF,gBAAgB,CAAC,GAAGf,yBAAyB,EAAE;IAC3G,MAAMkB,QAAQ,GAAGF,IAAI,CAACG,KAAK,CAAC,CAACvB,GAAG,CAACwB,SAAS,GAAGpB,yBAAyB,GAAGgB,IAAI,CAACK,IAAI,CAACN,gBAAgB,CAAC,IAAId,IAAI,CAAC,GAAGA,IAAI;IACpHC,WAAW,CAACY,KAAK,GAAGX,UAAU,CAACC,sBAAsB,CAACc,QAAQ,CAAC,EAAEb,WAAW,CAAC;EAC/E,CAAC,MACI;IACHC,aAAa,CAACD,WAAW,CAAC;EAC5B;EAEA,IAAI,CAACE,QAAQ,EACXC,QAAQ,CAACM,KAAK,GAAG,KAAK;AAC1B\"}"};var IScrollViewGesture=function IScrollViewGesture(props){var _React$useContext=_react.default.useContext(_store.CTX),_React$useContext$pro=_React$useContext.props,vertical=_React$useContext$pro.vertical,pagingEnabled=_React$useContext$pro.pagingEnabled,snapEnabled=_React$useContext$pro.snapEnabled,panGestureHandlerProps=_React$useContext$pro.panGestureHandlerProps,infinite=_React$useContext$pro.loop,scrollAnimationDuration=_React$useContext$pro.scrollAnimationDuration,withAnimation=_React$useContext$pro.withAnimation,enabled=_React$useContext$pro.enabled,dataLength=_React$useContext$pro.dataLength,overscrollEnabled=_React$useContext$pro.overscrollEnabled,maxScrollDistancePerSwipe=_React$useContext$pro.maxScrollDistancePerSwipe;var size=props.size,translation=props.translation,testID=props.testID,_props$style=props.style,style=_props$style===void 0?{}:_props$style,onScrollBegin=props.onScrollBegin,onScrollEnd=props.onScrollEnd,onTouchBegin=props.onTouchBegin,onTouchEnd=props.onTouchEnd;var maxPage=dataLength;var isHorizontal=(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-2,-27];var _f=function _f(){return!vertical;};_f._closure={vertical:vertical};_f.__initData=_worklet_10100718122216_init_data;_f.__workletHash=10100718122216;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[vertical]);var touching=(0,_reactNativeReanimated.useSharedValue)(false);var scrollEndTranslation=(0,_reactNativeReanimated.useSharedValue)(0);var scrollEndVelocity=(0,_reactNativeReanimated.useSharedValue)(0);var containerRef=(0,_reactNativeReanimated.useAnimatedRef)();var getLimit=_react.default.useCallback(function(){var _e=[new global.Error(),-7,-27];var _f=function _f(){if(!infinite&&!overscrollEnabled){var _measure=(0,_reactNativeReanimated.measure)(containerRef),_measure$width=_measure.width,containerWidth=_measure$width===void 0?0:_measure$width;if(dataLength*size<containerWidth)return 0;return dataLength*size-containerWidth;}return dataLength*size;};_f._closure={infinite:infinite,overscrollEnabled:overscrollEnabled,measure:_reactNativeReanimated.measure,containerRef:containerRef,dataLength:dataLength,size:size};_f.__initData=_worklet_736417391548_init_data;_f.__workletHash=736417391548;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[infinite,size,dataLength,overscrollEnabled]);var withSpring=_react.default.useCallback(function(){var _e=[new global.Error(),-6,-27];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 _e=[new global.Error(),-3,-27];var _f=function _f(isFinished){if(isFinished)onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();};_f._closure={onFinished:onFinished,runOnJS:_reactNativeReanimated.runOnJS};_f.__initData=_worklet_15664499378840_init_data;_f.__workletHash=15664499378840;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}());};_f._closure={scrollAnimationDuration:scrollAnimationDuration,Easing:_constants.Easing,dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation,runOnJS:_reactNativeReanimated.runOnJS};_f.__initData=_worklet_38454346678_init_data;_f.__workletHash=38454346678;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[scrollAnimationDuration,withAnimation]);var endWithSpring=_react.default.useCallback(function(){var _e=[new global.Error(),-14,-27];var _f=function _f(onFinished){var origin=translation.value;var velocity=scrollEndVelocity.value;var finalTranslation=(0,_reactNativeReanimated.withDecay)({velocity:velocity,deceleration:0.999});if(typeof maxScrollDistancePerSwipe==="number"&&Math.abs(scrollEndTranslation.value)>maxScrollDistancePerSwipe){finalTranslation=origin;}else{if(pagingEnabled){var offset=-(scrollEndTranslation.value>=0?1:-1);var computed=offset<0?Math.ceil:Math.floor;var page=computed(-translation.value/size);if(infinite){var finalPage=page+offset;finalTranslation=withSpring(withProcessTranslation(-finalPage*size),onFinished);}else{var _finalPage=Math.min(maxPage-1,Math.max(0,page+offset));finalTranslation=withSpring(withProcessTranslation(-_finalPage*size),onFinished);}}if(!pagingEnabled&&snapEnabled){var nextPage=Math.round((origin+velocity*0.4)/size)*size;finalTranslation=withSpring(withProcessTranslation(nextPage),onFinished);}}translation.value=finalTranslation;function withProcessTranslation(translation){if(!infinite&&!overscrollEnabled){var limit=getLimit();var sign=Math.sign(translation);return sign*Math.max(0,Math.min(limit,Math.abs(translation)));}return translation;}};_f._closure={translation:translation,scrollEndVelocity:scrollEndVelocity,withDecay:_reactNativeReanimated.withDecay,maxScrollDistancePerSwipe:maxScrollDistancePerSwipe,scrollEndTranslation:scrollEndTranslation,pagingEnabled:pagingEnabled,size:size,infinite:infinite,withSpring:withSpring,maxPage:maxPage,snapEnabled:snapEnabled,overscrollEnabled:overscrollEnabled,getLimit:getLimit};_f.__initData=_worklet_15595988837712_init_data;_f.__workletHash=15595988837712;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[withSpring,size,maxPage,infinite,snapEnabled,translation,pagingEnabled,scrollEndVelocity.value,maxScrollDistancePerSwipe,scrollEndTranslation.value]);var onFinish=_react.default.useCallback(function(){var _e=[new global.Error(),-4,-27];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.__initData=_worklet_14734469187996_init_data;_f.__workletHash=14734469187996;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[onScrollEnd,touching]);var activeDecay=_react.default.useCallback(function(){var _e=[new global.Error(),-6,-27];var _f=function _f(){touching.value=true;translation.value=(0,_reactNativeReanimated.withDecay)({velocity:scrollEndVelocity.value},function(){var _e=[new global.Error(),-2,-27];var _f=function _f(isFinished){return onFinish(isFinished);};_f._closure={onFinish:onFinish};_f.__initData=_worklet_11301139675464_init_data;_f.__workletHash=11301139675464;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}());};_f._closure={touching:touching,translation:translation,withDecay:_reactNativeReanimated.withDecay,scrollEndVelocity:scrollEndVelocity,onFinish:onFinish};_f.__initData=_worklet_14660770182194_init_data;_f.__workletHash=14660770182194;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[onFinish,scrollEndVelocity.value,touching,translation]);var resetBoundary=_react.default.useCallback(function(){var _e=[new global.Error(),-9,-27];var _f=function _f(){if(touching.value)return;if(translation.value>0){if(scrollEndTranslation.value<0){activeDecay();return;}if(!infinite){translation.value=withSpring(0);return;}}if(translation.value<-((maxPage-1)*size)){if(scrollEndTranslation.value>0){activeDecay();return;}if(!infinite)translation.value=withSpring(-((maxPage-1)*size));}};_f._closure={touching:touching,translation:translation,scrollEndTranslation:scrollEndTranslation,activeDecay:activeDecay,infinite:infinite,withSpring:withSpring,maxPage:maxPage,size:size};_f.__initData=_worklet_5253258937186_init_data;_f.__workletHash=5253258937186;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[touching.value,translation,maxPage,size,scrollEndTranslation.value,infinite,activeDecay,withSpring]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _e=[new global.Error(),-2,-27];var _f=function _f(){return translation.value;};_f._closure={translation:translation};_f.__initData=_worklet_15931544841004_init_data;_f.__workletHash=15931544841004;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),function(){var _e=[new global.Error(),-3,-27];var _f=function _f(){if(!pagingEnabled)resetBoundary();};_f._closure={pagingEnabled:pagingEnabled,resetBoundary:resetBoundary};_f.__initData=_worklet_12444593625099_init_data;_f.__workletHash=12444593625099;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[pagingEnabled,resetBoundary]);var withProcessTranslation=function(){var _e=[new global.Error(),-4,-27];var _f=function _f(translation){if(!infinite&&!overscrollEnabled){var limit=getLimit();var sign=Math.sign(translation);return sign*Math.max(0,Math.min(limit,Math.abs(translation)));}return translation;};_f._closure={infinite:infinite,overscrollEnabled:overscrollEnabled,getLimit:getLimit};_f.__initData=_worklet_11427369935693_init_data;_f.__workletHash=11427369935693;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}();var panGestureEventHandler=(0,_reactNativeReanimated.useAnimatedGestureHandler)({onStart:function(){var _e=[new global.Error(),-10,-27];var _f=function _f(_,ctx){touching.value=true;ctx.validStart=true;onScrollBegin&&(0,_reactNativeReanimated.runOnJS)(onScrollBegin)();ctx.max=(maxPage-1)*size;if(!infinite&&!overscrollEnabled)ctx.max=getLimit();ctx.panOffset=translation.value;};_f._closure={touching:touching,onScrollBegin:onScrollBegin,runOnJS:_reactNativeReanimated.runOnJS,maxPage:maxPage,size:size,infinite:infinite,overscrollEnabled:overscrollEnabled,getLimit:getLimit,translation:translation};_f.__initData=_worklet_6283859030724_init_data;_f.__workletHash=6283859030724;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),onActive:function(){var _e=[new global.Error(),-7,-27];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 totalTranslation=isHorizontal.value?translationX:translationY;if(typeof maxScrollDistancePerSwipe==="number"&&Math.abs(totalTranslation)>maxScrollDistancePerSwipe){var overSwipe=Math.abs(totalTranslation)-maxScrollDistancePerSwipe;var dampedTranslation=maxScrollDistancePerSwipe+overSwipe*0.5;translationX=isHorizontal.value?dampedTranslation*Math.sign(translationX):translationX;translationY=!isHorizontal.value?dampedTranslation*Math.sign(translationY):translationY;}var panTranslation=isHorizontal.value?translationX:translationY;if(!infinite){if(translation.value>0||translation.value<-ctx.max){var boundary=translation.value>0?0:-ctx.max;var fixed=boundary-ctx.panOffset;var dynamic=panTranslation-fixed;translation.value=boundary+dynamic*0.5;return;}}var translationValue=ctx.panOffset+panTranslation;translation.value=translationValue;};_f._closure={cancelAnimation:_reactNativeReanimated.cancelAnimation,translation:translation,touching:touching,isHorizontal:isHorizontal,maxScrollDistancePerSwipe:maxScrollDistancePerSwipe,infinite:infinite};_f.__initData=_worklet_14494691336804_init_data;_f.__workletHash=14494691336804;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),onEnd:function(){var _e=[new global.Error(),-13,-27];var _f=function _f(e,ctx){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;var totalTranslation=isHorizontal.value?translationX:translationY;if(typeof maxScrollDistancePerSwipe==="number"&&Math.abs(totalTranslation)>maxScrollDistancePerSwipe){var nextPage=Math.round((ctx.panOffset+maxScrollDistancePerSwipe*Math.sign(totalTranslation))/size)*size;translation.value=withSpring(withProcessTranslation(nextPage),onScrollEnd);}else{endWithSpring(onScrollEnd);}if(!infinite)touching.value=false;};_f._closure={scrollEndVelocity:scrollEndVelocity,isHorizontal:isHorizontal,scrollEndTranslation:scrollEndTranslation,maxScrollDistancePerSwipe:maxScrollDistancePerSwipe,size:size,translation:translation,withSpring:withSpring,withProcessTranslation:withProcessTranslation,onScrollEnd:onScrollEnd,endWithSpring:endWithSpring,infinite:infinite,touching:touching};_f.__initData=_worklet_15532837681820_init_data;_f.__workletHash=15532837681820;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}()},[pagingEnabled,isHorizontal.value,infinite,maxPage,size,snapEnabled,onScrollBegin,onScrollEnd]);return(0,_jsxRuntime.jsx)(_reactNativeGestureHandler.PanGestureHandler,Object.assign({},panGestureHandlerProps,{enabled:enabled,onGestureEvent:panGestureEventHandler,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{ref:containerRef,testID:testID,style:style,onTouchStart:onTouchBegin,onTouchEnd:onTouchEnd,children:props.children})}));};var ScrollViewGesture=IScrollViewGesture;exports.ScrollViewGesture=ScrollViewGesture;
|
|
2
2
|
//# sourceMappingURL=ScrollViewGesture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollViewGesture.tsx"],"names":["IScrollViewGesture","props","React","useContext","CTX","vertical","pagingEnabled","snapEnabled","panGestureHandlerProps","infinite","loop","scrollAnimationDuration","withAnimation","enabled","dataLength","overscrollEnabled","maxScrollDistancePerSwipe","size","translation","testID","style","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","containerRef","getLimit","useCallback","width","containerWidth","measure","withSpring","toValue","onFinished","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","isFinished","runOnJS","dealWithAnimation","endWithSpring","origin","value","velocity","finalTranslation","deceleration","Math","abs","offset","computed","ceil","floor","page","finalPage","withProcessTranslation","min","max","nextPage","round","limit","sign","withDecay","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","totalTranslation","overSwipe","dampedTranslation","panTranslation","boundary","fixed","dynamic","translationValue","cancelAnimation","onEnd","velocityX","velocityY","children","ScrollViewGesture"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { StyleProp, ViewStyle } from \"react-native\";\nimport type { PanGestureHandlerGestureEvent } from \"react-native-gesture-handler\";\nimport { PanGestureHandler } from \"react-native-gesture-handler\";\nimport Animated, {\n cancelAnimation,\n measure,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedReaction,\n useAnimatedRef,\n useDerivedValue,\n useSharedValue,\n withDecay,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"./constants\";\nimport { CTX } from \"./store\";\nimport type { WithTimingAnimation } from \"./types\";\nimport { dealWithAnimation } from \"./utils/dealWithAnimation\";\n\ninterface GestureContext extends Record<string, unknown> {\n validStart: boolean\n panOffset: number\n max: number\n}\n\ninterface Props {\n size: number\n infinite?: boolean\n testID?: string\n style?: StyleProp<ViewStyle>\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n onTouchBegin?: () => void\n onTouchEnd?: () => void\n translation: Animated.SharedValue<number>\n}\n\nconst IScrollViewGesture: React.FC<Props> = (props) => {\n const {\n props: {\n vertical,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n dataLength,\n overscrollEnabled,\n maxScrollDistancePerSwipe,\n },\n } = React.useContext(CTX);\n\n const {\n size,\n translation,\n testID,\n style = {},\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = dataLength;\n const isHorizontal = useDerivedValue(() => !vertical, [vertical]);\n const touching = useSharedValue(false);\n const scrollEndTranslation = useSharedValue(0);\n const scrollEndVelocity = useSharedValue(0);\n const containerRef = useAnimatedRef<Animated.View>();\n\n // Get the limit of the scroll.\n const getLimit = React.useCallback(() => {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const { width: containerWidth = 0 } = measure(containerRef);\n\n // If the item's total width is less than the container's width, then there is no need to scroll.\n if (dataLength * size < containerWidth)\n return 0;\n\n // Disable the \"overscroll\" effect\n return dataLength * size - containerWidth;\n }\n\n return dataLength * size;\n }, [infinite, size, dataLength, overscrollEnabled]);\n\n const withSpring = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished)\n onFinished && runOnJS(onFinished)();\n },\n );\n },\n [scrollAnimationDuration, withAnimation],\n );\n\n const endWithSpring = React.useCallback(\n (onFinished?: () => void) => {\n \"worklet\";\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n // Default to scroll in the direction of the slide (with deceleration)\n let finalTranslation: number = withDecay({ velocity, deceleration: 0.999 });\n\n // If the distance of the swipe exceeds the max scroll distance, keep the view at the current position\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(scrollEndTranslation.value) > maxScrollDistancePerSwipe) {\n finalTranslation = origin;\n }\n else {\n /**\n * The page size is the same as the item size.\n * If direction is vertical, the page size is the height of the item.\n * If direction is horizontal, the page size is the width of the item.\n *\n * `page size` equals to `size` variable.\n * */\n if (pagingEnabled) {\n // distance with direction\n const offset = -(scrollEndTranslation.value >= 0 ? 1 : -1); // 1 or -1\n const computed = offset < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n\n if (infinite) {\n const finalPage = page + offset;\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n else {\n const finalPage = Math.min(maxPage - 1, Math.max(0, page + offset));\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n }\n\n if (!pagingEnabled && snapEnabled) {\n // scroll to the nearest item\n const nextPage = Math.round((origin + velocity * 0.4) / size) * size;\n finalTranslation = withSpring(withProcessTranslation(nextPage), onFinished);\n }\n }\n\n translation.value = finalTranslation;\n\n function withProcessTranslation(translation: number) {\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n },\n [\n withSpring,\n size,\n maxPage,\n infinite,\n snapEnabled,\n translation,\n pagingEnabled,\n scrollEndVelocity.value,\n maxScrollDistancePerSwipe,\n scrollEndTranslation.value,\n ],\n );\n\n const onFinish = React.useCallback(\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n },\n [onScrollEnd, touching],\n );\n\n const activeDecay = React.useCallback(() => {\n \"worklet\";\n touching.value = true;\n translation.value = withDecay(\n { velocity: scrollEndVelocity.value },\n isFinished => onFinish(isFinished as boolean),\n );\n }, [onFinish, scrollEndVelocity.value, touching, translation]);\n\n const resetBoundary = React.useCallback(() => {\n \"worklet\";\n if (touching.value)\n return;\n\n if (translation.value > 0) {\n if (scrollEndTranslation.value < 0) {\n activeDecay();\n return;\n }\n if (!infinite) {\n translation.value = withSpring(0);\n return;\n }\n }\n\n if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite)\n translation.value = withSpring(-((maxPage - 1) * size));\n }\n }, [\n touching.value,\n translation,\n maxPage,\n size,\n scrollEndTranslation.value,\n infinite,\n activeDecay,\n withSpring,\n ]);\n\n useAnimatedReaction(\n () => translation.value,\n () => {\n if (!pagingEnabled)\n resetBoundary();\n },\n [pagingEnabled, resetBoundary],\n );\n\n function withProcessTranslation(translation: number) {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n\n const panGestureEventHandler = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n GestureContext\n >(\n {\n onStart: (_, ctx) => {\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n\n ctx.max = (maxPage - 1) * size;\n if (!infinite && !overscrollEnabled)\n ctx.max = getLimit();\n\n ctx.panOffset = translation.value;\n },\n onActive: (e, ctx) => {\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n let { translationX, translationY } = e;\n\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const overSwipe = Math.abs(totalTranslation) - maxScrollDistancePerSwipe;\n const dampedTranslation = maxScrollDistancePerSwipe + overSwipe * 0.5;\n\n translationX = isHorizontal.value ? dampedTranslation * Math.sign(translationX) : translationX;\n translationY = !isHorizontal.value ? dampedTranslation * Math.sign(translationY) : translationY;\n }\n\n const panTranslation = isHorizontal.value ? translationX : translationY;\n if (!infinite) {\n if ((translation.value > 0 || translation.value < -ctx.max)) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n }\n\n const translationValue = ctx.panOffset + panTranslation;\n\n translation.value = translationValue;\n },\n onEnd: (e, ctx) => {\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 const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const nextPage = Math.round((ctx.panOffset + maxScrollDistancePerSwipe * Math.sign(totalTranslation)) / size) * size;\n translation.value = withSpring(withProcessTranslation(nextPage), onScrollEnd);\n }\n else {\n endWithSpring(onScrollEnd);\n }\n\n if (!infinite)\n touching.value = false;\n },\n },\n [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ],\n );\n\n return (\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n <Animated.View\n ref={containerRef}\n testID={testID}\n style={style}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n {props.children}\n </Animated.View>\n </PanGestureHandler>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n"]}
|
|
1
|
+
{"version":3,"sources":["ScrollViewGesture.tsx"],"names":["IScrollViewGesture","props","React","useContext","CTX","vertical","pagingEnabled","snapEnabled","panGestureHandlerProps","infinite","loop","scrollAnimationDuration","withAnimation","enabled","dataLength","overscrollEnabled","maxScrollDistancePerSwipe","size","translation","testID","style","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","containerRef","getLimit","useCallback","width","containerWidth","measure","withSpring","toValue","onFinished","defaultWithAnimation","type","config","duration","easing","Easing","easeOutQuart","isFinished","runOnJS","dealWithAnimation","endWithSpring","origin","value","velocity","finalTranslation","deceleration","Math","abs","offset","computed","ceil","floor","page","finalPage","withProcessTranslation","min","max","nextPage","round","limit","sign","withDecay","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","totalTranslation","overSwipe","dampedTranslation","panTranslation","boundary","fixed","dynamic","translationValue","cancelAnimation","onEnd","velocityX","velocityY","children","ScrollViewGesture"],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport type { StyleProp, ViewStyle } from \"react-native\";\nimport type { PanGestureHandlerGestureEvent } from \"react-native-gesture-handler\";\nimport { PanGestureHandler } from \"react-native-gesture-handler\";\nimport Animated, {\n cancelAnimation,\n measure,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedReaction,\n useAnimatedRef,\n useDerivedValue,\n useSharedValue,\n withDecay,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"./constants\";\nimport { CTX } from \"./store\";\nimport type { WithTimingAnimation } from \"./types\";\nimport { dealWithAnimation } from \"./utils/dealWithAnimation\";\n\ninterface GestureContext extends Record<string, unknown> {\n validStart: boolean\n panOffset: number\n max: number\n}\n\ninterface Props {\n size: number\n infinite?: boolean\n testID?: string\n style?: StyleProp<ViewStyle>\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n onTouchBegin?: () => void\n onTouchEnd?: () => void\n translation: Animated.SharedValue<number>\n}\n\nconst IScrollViewGesture: React.FC<PropsWithChildren<Props>> = (props) => {\n const {\n props: {\n vertical,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n dataLength,\n overscrollEnabled,\n maxScrollDistancePerSwipe,\n },\n } = React.useContext(CTX);\n\n const {\n size,\n translation,\n testID,\n style = {},\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = dataLength;\n const isHorizontal = useDerivedValue(() => !vertical, [vertical]);\n const touching = useSharedValue(false);\n const scrollEndTranslation = useSharedValue(0);\n const scrollEndVelocity = useSharedValue(0);\n const containerRef = useAnimatedRef<Animated.View>();\n\n // Get the limit of the scroll.\n const getLimit = React.useCallback(() => {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const { width: containerWidth = 0 } = measure(containerRef);\n\n // If the item's total width is less than the container's width, then there is no need to scroll.\n if (dataLength * size < containerWidth)\n return 0;\n\n // Disable the \"overscroll\" effect\n return dataLength * size - containerWidth;\n }\n\n return dataLength * size;\n }, [infinite, size, dataLength, overscrollEnabled]);\n\n const withSpring = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished)\n onFinished && runOnJS(onFinished)();\n },\n );\n },\n [scrollAnimationDuration, withAnimation],\n );\n\n const endWithSpring = React.useCallback(\n (onFinished?: () => void) => {\n \"worklet\";\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n // Default to scroll in the direction of the slide (with deceleration)\n let finalTranslation: number = withDecay({ velocity, deceleration: 0.999 });\n\n // If the distance of the swipe exceeds the max scroll distance, keep the view at the current position\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(scrollEndTranslation.value) > maxScrollDistancePerSwipe) {\n finalTranslation = origin;\n }\n else {\n /**\n * The page size is the same as the item size.\n * If direction is vertical, the page size is the height of the item.\n * If direction is horizontal, the page size is the width of the item.\n *\n * `page size` equals to `size` variable.\n * */\n if (pagingEnabled) {\n // distance with direction\n const offset = -(scrollEndTranslation.value >= 0 ? 1 : -1); // 1 or -1\n const computed = offset < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n\n if (infinite) {\n const finalPage = page + offset;\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n else {\n const finalPage = Math.min(maxPage - 1, Math.max(0, page + offset));\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n }\n\n if (!pagingEnabled && snapEnabled) {\n // scroll to the nearest item\n const nextPage = Math.round((origin + velocity * 0.4) / size) * size;\n finalTranslation = withSpring(withProcessTranslation(nextPage), onFinished);\n }\n }\n\n translation.value = finalTranslation;\n\n function withProcessTranslation(translation: number) {\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n },\n [\n withSpring,\n size,\n maxPage,\n infinite,\n snapEnabled,\n translation,\n pagingEnabled,\n scrollEndVelocity.value,\n maxScrollDistancePerSwipe,\n scrollEndTranslation.value,\n ],\n );\n\n const onFinish = React.useCallback(\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n },\n [onScrollEnd, touching],\n );\n\n const activeDecay = React.useCallback(() => {\n \"worklet\";\n touching.value = true;\n translation.value = withDecay(\n { velocity: scrollEndVelocity.value },\n isFinished => onFinish(isFinished as boolean),\n );\n }, [onFinish, scrollEndVelocity.value, touching, translation]);\n\n const resetBoundary = React.useCallback(() => {\n \"worklet\";\n if (touching.value)\n return;\n\n if (translation.value > 0) {\n if (scrollEndTranslation.value < 0) {\n activeDecay();\n return;\n }\n if (!infinite) {\n translation.value = withSpring(0);\n return;\n }\n }\n\n if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite)\n translation.value = withSpring(-((maxPage - 1) * size));\n }\n }, [\n touching.value,\n translation,\n maxPage,\n size,\n scrollEndTranslation.value,\n infinite,\n activeDecay,\n withSpring,\n ]);\n\n useAnimatedReaction(\n () => translation.value,\n () => {\n if (!pagingEnabled)\n resetBoundary();\n },\n [pagingEnabled, resetBoundary],\n );\n\n function withProcessTranslation(translation: number) {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n\n const panGestureEventHandler = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n GestureContext\n >(\n {\n onStart: (_, ctx) => {\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n\n ctx.max = (maxPage - 1) * size;\n if (!infinite && !overscrollEnabled)\n ctx.max = getLimit();\n\n ctx.panOffset = translation.value;\n },\n onActive: (e, ctx) => {\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n let { translationX, translationY } = e;\n\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const overSwipe = Math.abs(totalTranslation) - maxScrollDistancePerSwipe;\n const dampedTranslation = maxScrollDistancePerSwipe + overSwipe * 0.5;\n\n translationX = isHorizontal.value ? dampedTranslation * Math.sign(translationX) : translationX;\n translationY = !isHorizontal.value ? dampedTranslation * Math.sign(translationY) : translationY;\n }\n\n const panTranslation = isHorizontal.value ? translationX : translationY;\n if (!infinite) {\n if ((translation.value > 0 || translation.value < -ctx.max)) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n }\n\n const translationValue = ctx.panOffset + panTranslation;\n\n translation.value = translationValue;\n },\n onEnd: (e, ctx) => {\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 const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const nextPage = Math.round((ctx.panOffset + maxScrollDistancePerSwipe * Math.sign(totalTranslation)) / size) * size;\n translation.value = withSpring(withProcessTranslation(nextPage), onScrollEnd);\n }\n else {\n endWithSpring(onScrollEnd);\n }\n\n if (!infinite)\n touching.value = false;\n },\n },\n [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ],\n );\n\n return (\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n <Animated.View\n ref={containerRef}\n testID={testID}\n style={style}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n {props.children}\n </Animated.View>\n </PanGestureHandler>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useAutoPlay.ts"],"names":["useAutoPlay","opts","autoPlay","autoPlayReverse","autoPlayInterval","carouselController","prev","next","timer","React","useRef","stopped","play","useCallback","current","clearTimeout","setTimeout","onFinished","pause","start","useEffect"],"mappings":"yFAAA,oD,0/BAIO,QAASA,CAAAA,WAAT,CAAqBC,IAArB,CAKJ,CACD,mBAKIA,IALJ,CACEC,QADF,CACEA,QADF,yBACa,KADb,sCAKID,IALJ,CAEEE,eAFF,CAEEA,eAFF,gCAEoB,KAFpB,uBAGEC,gBAHF,CAKIH,IALJ,CAGEG,gBAHF,CAIEC,kBAJF,CAKIJ,IALJ,CAIEI,kBAJF,CAOA,GAAQC,CAAAA,IAAR,CAAuBD,kBAAvB,CAAQC,IAAR,CAAcC,IAAd,CAAuBF,kBAAvB,CAAcE,IAAd,CACA,GAAMC,CAAAA,KAAK,CAAGC,KAAK,CAACC,MAAN,EAAd,CACA,GAAMC,CAAAA,OAAO,CAAGF,KAAK,CAACC,MAAN,CAAsB,CAACR,QAAvB,CAAhB,CAEA,GAAMU,CAAAA,IAAI,CAAGH,KAAK,CAACI,WAAN,CAAkB,UAAM,CACnC,GAAIF,OAAO,CAACG,OAAZ,CACE,OAEFN,KAAK,CAACM,OAAN,EAAiBC,YAAY,CAACP,KAAK,CAACM,OAAP,CAA7B,CACAN,KAAK,CAACM,OAAN,CAAgBE,UAAU,CAAC,UAAM,CAC/Bb,eAAe,CACXG,IAAI,CAAC,CAAEW,UAAU,CAAEL,IAAd,CAAD,CADO,CAEXL,IAAI,CAAC,CAAEU,UAAU,CAAEL,IAAd,CAAD,CAFR,CAGD,CAJyB,CAIvBR,gBAJuB,CAA1B,CAKD,CAVY,CAUV,CAACD,eAAD,CAAkBC,gBAAlB,CAAoCE,IAApC,CAA0CC,IAA1C,CAVU,CAAb,CAYA,GAAMW,CAAAA,KAAK,CAAGT,KAAK,CAACI,WAAN,CAAkB,UAAM,CACpC,GAAI,CAACX,QAAL,CACE,OAEFM,KAAK,CAACM,OAAN,EAAiBC,YAAY,CAACP,KAAK,CAACM,OAAP,CAA7B,CACAH,OAAO,CAACG,OAAR,CAAkB,IAAlB,CACD,CANa,CAMX,CAACZ,QAAD,CANW,CAAd,CAQA,GAAMiB,CAAAA,KAAK,CAAGV,KAAK,CAACI,WAAN,CAAkB,UAAM,CACpC,GAAI,CAACX,QAAL,CACE,OAEFS,OAAO,CAACG,OAAR,CAAkB,KAAlB,CACAF,IAAI,GACL,CANa,CAMX,CAACA,IAAD,CAAOV,QAAP,CANW,CAAd,CAQAO,KAAK,CAACW,SAAN,CAAgB,UAAM,CACpB,GAAIlB,QAAJ,CACEiB,KAAK,GADP,IAGED,CAAAA,KAAK,GAEP,MAAOA,CAAAA,KAAP,CACD,CAPD,CAOG,CAACA,KAAD,CAAQC,KAAR,CAAejB,QAAf,CAPH,EASA,MAAO,CACLgB,KAAK,CAALA,KADK,CAELC,KAAK,CAALA,KAFK,CAAP,CAID","sourcesContent":["import * as React from \"react\";\n\nimport type { ICarouselController } from \"./useCarouselController\";\n\nexport function useAutoPlay(opts: {\n autoPlay?: boolean\n autoPlayInterval?: number\n autoPlayReverse?: boolean\n carouselController: ICarouselController\n}) {\n const {\n autoPlay = false,\n autoPlayReverse = false,\n autoPlayInterval,\n carouselController,\n } = opts;\n\n const { prev, next } = carouselController;\n const timer = React.useRef<
|
|
1
|
+
{"version":3,"sources":["useAutoPlay.ts"],"names":["useAutoPlay","opts","autoPlay","autoPlayReverse","autoPlayInterval","carouselController","prev","next","timer","React","useRef","stopped","play","useCallback","current","clearTimeout","setTimeout","onFinished","pause","start","useEffect"],"mappings":"yFAAA,oD,0/BAIO,QAASA,CAAAA,WAAT,CAAqBC,IAArB,CAKJ,CACD,mBAKIA,IALJ,CACEC,QADF,CACEA,QADF,yBACa,KADb,sCAKID,IALJ,CAEEE,eAFF,CAEEA,eAFF,gCAEoB,KAFpB,uBAGEC,gBAHF,CAKIH,IALJ,CAGEG,gBAHF,CAIEC,kBAJF,CAKIJ,IALJ,CAIEI,kBAJF,CAOA,GAAQC,CAAAA,IAAR,CAAuBD,kBAAvB,CAAQC,IAAR,CAAcC,IAAd,CAAuBF,kBAAvB,CAAcE,IAAd,CACA,GAAMC,CAAAA,KAAK,CAAGC,KAAK,CAACC,MAAN,EAAd,CACA,GAAMC,CAAAA,OAAO,CAAGF,KAAK,CAACC,MAAN,CAAsB,CAACR,QAAvB,CAAhB,CAEA,GAAMU,CAAAA,IAAI,CAAGH,KAAK,CAACI,WAAN,CAAkB,UAAM,CACnC,GAAIF,OAAO,CAACG,OAAZ,CACE,OAEFN,KAAK,CAACM,OAAN,EAAiBC,YAAY,CAACP,KAAK,CAACM,OAAP,CAA7B,CACAN,KAAK,CAACM,OAAN,CAAgBE,UAAU,CAAC,UAAM,CAC/Bb,eAAe,CACXG,IAAI,CAAC,CAAEW,UAAU,CAAEL,IAAd,CAAD,CADO,CAEXL,IAAI,CAAC,CAAEU,UAAU,CAAEL,IAAd,CAAD,CAFR,CAGD,CAJyB,CAIvBR,gBAJuB,CAA1B,CAKD,CAVY,CAUV,CAACD,eAAD,CAAkBC,gBAAlB,CAAoCE,IAApC,CAA0CC,IAA1C,CAVU,CAAb,CAYA,GAAMW,CAAAA,KAAK,CAAGT,KAAK,CAACI,WAAN,CAAkB,UAAM,CACpC,GAAI,CAACX,QAAL,CACE,OAEFM,KAAK,CAACM,OAAN,EAAiBC,YAAY,CAACP,KAAK,CAACM,OAAP,CAA7B,CACAH,OAAO,CAACG,OAAR,CAAkB,IAAlB,CACD,CANa,CAMX,CAACZ,QAAD,CANW,CAAd,CAQA,GAAMiB,CAAAA,KAAK,CAAGV,KAAK,CAACI,WAAN,CAAkB,UAAM,CACpC,GAAI,CAACX,QAAL,CACE,OAEFS,OAAO,CAACG,OAAR,CAAkB,KAAlB,CACAF,IAAI,GACL,CANa,CAMX,CAACA,IAAD,CAAOV,QAAP,CANW,CAAd,CAQAO,KAAK,CAACW,SAAN,CAAgB,UAAM,CACpB,GAAIlB,QAAJ,CACEiB,KAAK,GADP,IAGED,CAAAA,KAAK,GAEP,MAAOA,CAAAA,KAAP,CACD,CAPD,CAOG,CAACA,KAAD,CAAQC,KAAR,CAAejB,QAAf,CAPH,EASA,MAAO,CACLgB,KAAK,CAALA,KADK,CAELC,KAAK,CAALA,KAFK,CAAP,CAID","sourcesContent":["import * as React from \"react\";\n\nimport type { ICarouselController } from \"./useCarouselController\";\n\nexport function useAutoPlay(opts: {\n autoPlay?: boolean\n autoPlayInterval?: number\n autoPlayReverse?: boolean\n carouselController: ICarouselController\n}) {\n const {\n autoPlay = false,\n autoPlayReverse = false,\n autoPlayInterval,\n carouselController,\n } = opts;\n\n const { prev, next } = carouselController;\n const timer = React.useRef<ReturnType<typeof setTimeout>>();\n const stopped = React.useRef<boolean>(!autoPlay);\n\n const play = React.useCallback(() => {\n if (stopped.current)\n return;\n\n timer.current && clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n autoPlayReverse\n ? prev({ onFinished: play })\n : next({ onFinished: play });\n }, autoPlayInterval);\n }, [autoPlayReverse, autoPlayInterval, prev, next]);\n\n const pause = React.useCallback(() => {\n if (!autoPlay)\n return;\n\n timer.current && clearTimeout(timer.current);\n stopped.current = true;\n }, [autoPlay]);\n\n const start = React.useCallback(() => {\n if (!autoPlay)\n return;\n\n stopped.current = false;\n play();\n }, [play, autoPlay]);\n\n React.useEffect(() => {\n if (autoPlay)\n start();\n else\n pause();\n\n return pause;\n }, [pause, start, autoPlay]);\n\n return {\n pause,\n start,\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["Carousel"],"mappings":"qRAAA,4DAOA,sC,aAEeA,iB","sourcesContent":["import Carousel from \"./Carousel\";\nexport type {\n TCarouselProps,\n ICarouselInstance,\n IComputedDirectionTypes,\n CarouselRenderItem
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Carousel"],"mappings":"qRAAA,4DAOA,sC,aAEeA,iB","sourcesContent":["import Carousel from \"./Carousel\";\nexport type {\n TCarouselProps,\n ICarouselInstance,\n IComputedDirectionTypes,\n CarouselRenderItem,\n} from \"./types\";\nexport { ILayoutConfig } from \"./layouts/stack\";\n\nexport default Carousel;\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 _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/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 _worklet_2396750619736_init_data={code:"function anonymous() {\n const {\n x,\n size,\n interpolate,\n parallaxScrollingOffset,\n Extrapolate,\n parallaxAdjacentItemScale,\n parallaxScrollingScale,\n vertical\n } = this._closure;\n const value = x.value / size;\n const translate = interpolate(value, [-1, 0, 1], [-size + parallaxScrollingOffset, 0, size - parallaxScrollingOffset], Extrapolate.EXTEND);\n const zIndex = interpolate(value, [-1, 0, 1], [0, size, 0], Extrapolate.CLAMP);\n const scale = interpolate(value, [-1, 0, 1], [parallaxAdjacentItemScale, parallaxScrollingScale, parallaxAdjacentItemScale], Extrapolate.CLAMP);\n return {\n transform: [vertical ? {\n translateY: translate\n } : {\n translateX: translate\n }, {\n scale: scale\n }],\n zIndex: zIndex\n };\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"x\",\"size\",\"interpolate\",\"parallaxScrollingOffset\",\"Extrapolate\",\"parallaxAdjacentItemScale\",\"parallaxScrollingScale\",\"vertical\",\"_closure\",\"value\",\"translate\",\"EXTEND\",\"zIndex\",\"CLAMP\",\"scale\",\"transform\",\"translateY\",\"translateX\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx\"],\"mappings\":\"
|
|
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 _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/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 _worklet_2396750619736_init_data={code:"function anonymous() {\n const {\n x,\n size,\n interpolate,\n parallaxScrollingOffset,\n Extrapolate,\n parallaxAdjacentItemScale,\n parallaxScrollingScale,\n vertical\n } = this._closure;\n const value = x.value / size;\n const translate = interpolate(value, [-1, 0, 1], [-size + parallaxScrollingOffset, 0, size - parallaxScrollingOffset], Extrapolate.EXTEND);\n const zIndex = interpolate(value, [-1, 0, 1], [0, size, 0], Extrapolate.CLAMP);\n const scale = interpolate(value, [-1, 0, 1], [parallaxAdjacentItemScale, parallaxScrollingScale, parallaxAdjacentItemScale], Extrapolate.CLAMP);\n return {\n transform: [vertical ? {\n translateY: translate\n } : {\n translateX: translate\n }, {\n scale: scale\n }],\n zIndex: zIndex\n };\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"x\",\"size\",\"interpolate\",\"parallaxScrollingOffset\",\"Extrapolate\",\"parallaxAdjacentItemScale\",\"parallaxScrollingScale\",\"vertical\",\"_closure\",\"value\",\"translate\",\"EXTEND\",\"zIndex\",\"CLAMP\",\"scale\",\"transform\",\"translateY\",\"translateX\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx\"],\"mappings\":\"AAwDwC,SAAAA,SAAMA,CAAA;EAAA;IAAAC,CAAA;IAAAC,IAAA;IAAAC,WAAA;IAAAC,uBAAA;IAAAC,WAAA;IAAAC,yBAAA;IAAAC,sBAAA;IAAAC;EAAA,SAAAC,QAAA;EAC1C,MAAMC,KAAK,GAAGT,CAAC,CAACS,KAAK,GAAGR,IAAI;EAE5B,MAAMS,SAAS,GAAGR,WAAW,CAC3BO,KAAK,EACL,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACV,CACE,CAACR,IAAI,GAAGE,uBAAuB,EAC/B,CAAC,EACDF,IAAI,GAAGE,uBAAuB,CAC/B,EACDC,WAAW,CAACO,MACd,CAAC;EAED,MAAMC,MAAM,GAAGV,WAAW,CACxBO,KAAK,EACL,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACV,CAAC,CAAC,EAAER,IAAI,EAAE,CAAC,CAAC,EACZG,WAAW,CAACS,KACd,CAAC;EAED,MAAMC,KAAK,GAAGZ,WAAW,CACvBO,KAAK,EACL,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACV,CACEJ,yBAAyB,EACzBC,sBAAsB,EACtBD,yBAAyB,CAC1B,EACDD,WAAW,CAACS,KACd,CAAC;EAED,OAAO;IACLE,SAAS,EAAE,CACTR,QAAQ,GACJ;MACAS,UAAU,EAAEN;IACd,CAAC,GACC;MACAO,UAAU,EAAEP;IACd,CAAC,EACH;MACEI,KAAA,EAAAA;IACF,CAAC,CACF;IACDF,MAAA,EAAAA;EACF,CAAC;AACH\"}"};var _worklet_11113070436332_init_data={code:"function anonymous() {\n const {\n visibleRanges\n } = this._closure;\n return visibleRanges.value;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"visibleRanges\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx\"],\"mappings\":\"AAoHI,SAAAA,UAAA;EAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,OAAMD,aAAc,CAAAE,KAAA;AAAA\"}"};var _worklet_15128277149381_init_data={code:"function anonymous() {\n const {\n runOnJS,\n updateView,\n visibleRanges\n } = this._closure;\n runOnJS(updateView)(visibleRanges.value.negativeRange, visibleRanges.value.positiveRange);\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"runOnJS\",\"updateView\",\"visibleRanges\",\"_closure\",\"value\",\"negativeRange\",\"positiveRange\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/layouts/ParallaxLayout.tsx\"],\"mappings\":\"AAqHI,SAAAA,SAAMA,CAAA;EAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC;EAAA,SAAAC,QAAA;EACJH,OAAO,CAACC,UAAU,CAAC,CACjBC,aAAa,CAACE,KAAK,CAACC,aAAa,EACjCH,aAAa,CAACE,KAAK,CAACE,aACtB,CAAC;AACH\"}"};var ParallaxLayout=function ParallaxLayout(props){var handlerOffset=props.handlerOffset,_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?parallaxScrollingScale**2:_props$parallaxAdjace,index=props.index,width=props.width,height=props.height,loop=props.loop,dataLength=props.dataLength,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)({handlerOffset:handlerOffset,index:index,size:size,dataLength:dataLength,loop:loop},visibleRanges);var offsetXStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _e=[new global.Error(),-9,-27];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:_reactNativeReanimated.Extrapolate,parallaxAdjacentItemScale:parallaxAdjacentItemScale,parallaxScrollingScale:parallaxScrollingScale,vertical:vertical};_f.__initData=_worklet_2396750619736_init_data;_f.__workletHash=2396750619736;_f.__stackDetails=_e;_f.__version="3.3.0";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 _e=[new global.Error(),-2,-27];var _f=function _f(){return visibleRanges.value;};_f._closure={visibleRanges:visibleRanges};_f.__initData=_worklet_11113070436332_init_data;_f.__workletHash=11113070436332;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),function(){var _e=[new global.Error(),-4,-27];var _f=function _f(){(0,_reactNativeReanimated.runOnJS)(updateView)(visibleRanges.value.negativeRange,visibleRanges.value.positiveRange);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,updateView:updateView,visibleRanges:visibleRanges};_f.__initData=_worklet_15128277149381_init_data;_f.__workletHash=15128277149381;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[visibleRanges.value]);return(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[{width:width||"100%",height:height||"100%",position:"absolute"},offsetXStyle],children:(0,_jsxRuntime.jsx)(_LazyView.LazyView,{shouldUpdate:shouldUpdate,children:children})});};exports.ParallaxLayout=ParallaxLayout;
|
|
2
2
|
//# sourceMappingURL=ParallaxLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["ParallaxLayout","props","handlerOffset","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","index","width","height","loop","dataLength","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":"
|
|
1
|
+
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["ParallaxLayout","props","handlerOffset","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","index","width","height","loop","dataLength","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 type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport Animated, {\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedReaction,\n useAnimatedStyle,\n} from \"react-native-reanimated\";\n\nimport type { ILayoutConfig } from \"./parallax\";\n\nimport { useOffsetX } from \"../hooks/useOffsetX\";\nimport type { IVisibleRanges } from \"../hooks/useVisibleRanges\";\nimport { LazyView } from \"../LazyView\";\nimport type { IComputedDirectionTypes } from \"../types\";\n\nexport const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<\n{\n loop?: boolean\n handlerOffset: Animated.SharedValue<number>\n index: number\n dataLength: number\n visibleRanges: IVisibleRanges\n} & ILayoutConfig\n>>> = (props) => {\n const {\n handlerOffset,\n parallaxScrollingOffset = 100,\n parallaxScrollingScale = 0.8,\n parallaxAdjacentItemScale = parallaxScrollingScale ** 2,\n index,\n width,\n height,\n loop,\n dataLength,\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 handlerOffset,\n index,\n size,\n dataLength,\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"]}
|
package/lib/module/Carousel.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
|
-
import {
|
|
4
|
+
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
5
5
|
import { runOnJS, useDerivedValue } from "react-native-reanimated";
|
|
6
6
|
import { useAutoPlay } from "./hooks/useAutoPlay";
|
|
7
7
|
import { useCarouselController } from "./hooks/useCarouselController";
|
|
@@ -162,7 +162,7 @@ const Carousel = /*#__PURE__*/React.forwardRef((_props, ref) => {
|
|
|
162
162
|
});
|
|
163
163
|
});
|
|
164
164
|
}, [loop, rawData, offsetX, visibleRanges, autoFillData, renderItem, layoutConfig, customAnimation]);
|
|
165
|
-
return /*#__PURE__*/React.createElement(CTX.Provider, {
|
|
165
|
+
return /*#__PURE__*/React.createElement(GestureHandlerRootView, null, /*#__PURE__*/React.createElement(CTX.Provider, {
|
|
166
166
|
value: {
|
|
167
167
|
props,
|
|
168
168
|
common: commonVariables
|
|
@@ -180,9 +180,9 @@ const Carousel = /*#__PURE__*/React.forwardRef((_props, ref) => {
|
|
|
180
180
|
onScrollEnd: scrollViewGestureOnScrollEnd,
|
|
181
181
|
onTouchBegin: scrollViewGestureOnTouchBegin,
|
|
182
182
|
onTouchEnd: scrollViewGestureOnTouchEnd
|
|
183
|
-
}, data.map(renderLayout)));
|
|
183
|
+
}, data.map(renderLayout))));
|
|
184
184
|
});
|
|
185
|
-
export default
|
|
185
|
+
export default Carousel;
|
|
186
186
|
const styles = StyleSheet.create({
|
|
187
187
|
container: {
|
|
188
188
|
overflow: "hidden"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Carousel.tsx"],"names":["React","StyleSheet","gestureHandlerRootHOC","runOnJS","useDerivedValue","useAutoPlay","useCarouselController","useCommonVariables","useInitProps","useLayoutConfig","useOnProgressChange","usePropsErrorBoundary","useVisibleRanges","BaseLayout","ScrollViewGesture","CTX","computedRealIndexWithAutoFillData","Carousel","forwardRef","_props","ref","props","testID","loop","autoFillData","data","dataLength","rawData","rawDataLength","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffset","offsetX","totalSize","x","value","isNaN","carouselController","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","start","startAutoPlay","pause","pauseAutoPlay","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","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { gestureHandlerRootHOC } from \"react-native-gesture-handler\";\nimport { runOnJS, useDerivedValue } from \"react-native-reanimated\";\n\nimport { useAutoPlay } from \"./hooks/useAutoPlay\";\nimport { useCarouselController } from \"./hooks/useCarouselController\";\nimport { useCommonVariables } from \"./hooks/useCommonVariables\";\nimport { useInitProps } from \"./hooks/useInitProps\";\nimport { useLayoutConfig } from \"./hooks/useLayoutConfig\";\nimport { useOnProgressChange } from \"./hooks/useOnProgressChange\";\nimport { usePropsErrorBoundary } from \"./hooks/usePropsErrorBoundary\";\nimport { useVisibleRanges } from \"./hooks/useVisibleRanges\";\nimport { BaseLayout } from \"./layouts/BaseLayout\";\nimport { ScrollViewGesture } from \"./ScrollViewGesture\";\nimport { CTX } from \"./store\";\nimport type { ICarouselInstance, TCarouselProps } from \"./types\";\nimport { computedRealIndexWithAutoFillData } from \"./utils/computedWithAutoFillData\";\n\nconst Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(\n (_props, ref) => {\n const props = useInitProps(_props);\n\n const {\n testID,\n loop,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n mode,\n style,\n width,\n height,\n vertical,\n autoPlay,\n windowSize,\n autoPlayReverse,\n autoPlayInterval,\n scrollAnimationDuration,\n withAnimation,\n renderItem,\n onScrollEnd,\n onSnapToItem,\n onScrollBegin,\n onProgressChange,\n customAnimation,\n defaultIndex,\n } = props;\n\n const commonVariables = useCommonVariables(props);\n const { size, handlerOffset } = commonVariables;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n\n if (!loop)\n return handlerOffset.value;\n\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary({ ...props, dataLength });\n useOnProgressChange({\n autoFillData,\n loop,\n size,\n offsetX,\n rawDataLength,\n onProgressChange,\n });\n\n const carouselController = useCarouselController({\n loop,\n size,\n dataLength,\n autoFillData,\n handlerOffset,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex }\n = carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem)\n onSnapToItem(realIndex);\n\n if (onScrollEnd)\n onScrollEnd(realIndex);\n }, [\n loop,\n autoFillData,\n rawDataLength,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo],\n );\n\n const visibleRanges = useVisibleRanges({\n total: dataLength,\n viewSize: size,\n translation: handlerOffset,\n windowSize,\n });\n\n const layoutConfig = useLayoutConfig({ ...props, size });\n\n const renderLayout = React.useCallback(\n (item: any, i: number) => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: i,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffset={offsetX}\n visibleRanges={visibleRanges}\n animationStyle={customAnimation || layoutConfig}\n >\n {({ animationValue }) =>\n renderItem({\n item,\n index: realIndex,\n animationValue,\n })\n }\n </BaseLayout>\n );\n },\n [\n loop,\n rawData,\n offsetX,\n visibleRanges,\n autoFillData,\n renderItem,\n layoutConfig,\n customAnimation,\n ],\n );\n\n return (\n <CTX.Provider value={{ props, common: commonVariables }}>\n <ScrollViewGesture\n key={mode}\n size={size}\n translation={handlerOffset}\n style={[\n styles.container,\n {\n width: width || \"100%\",\n height: height || \"100%\",\n },\n style,\n vertical\n ? styles.itemsVertical\n : styles.itemsHorizontal,\n ]}\n testID={testID}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n {data.map(renderLayout)}\n </ScrollViewGesture>\n </CTX.Provider>\n );\n },\n);\n\nexport default gestureHandlerRootHOC(Carousel as any) as any 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":["React","StyleSheet","GestureHandlerRootView","runOnJS","useDerivedValue","useAutoPlay","useCarouselController","useCommonVariables","useInitProps","useLayoutConfig","useOnProgressChange","usePropsErrorBoundary","useVisibleRanges","BaseLayout","ScrollViewGesture","CTX","computedRealIndexWithAutoFillData","Carousel","forwardRef","_props","ref","props","testID","loop","autoFillData","data","dataLength","rawData","rawDataLength","mode","style","width","height","vertical","autoPlay","windowSize","autoPlayReverse","autoPlayInterval","scrollAnimationDuration","withAnimation","renderItem","onScrollEnd","onSnapToItem","onScrollBegin","onProgressChange","customAnimation","defaultIndex","commonVariables","size","handlerOffset","offsetX","totalSize","x","value","isNaN","carouselController","_onScrollEnd","duration","next","prev","scrollTo","getSharedIndex","getCurrentIndex","start","startAutoPlay","pause","pauseAutoPlay","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","create","overflow","flexDirection"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { GestureHandlerRootView } from \"react-native-gesture-handler\";\nimport { runOnJS, useDerivedValue } from \"react-native-reanimated\";\n\nimport { useAutoPlay } from \"./hooks/useAutoPlay\";\nimport { useCarouselController } from \"./hooks/useCarouselController\";\nimport { useCommonVariables } from \"./hooks/useCommonVariables\";\nimport { useInitProps } from \"./hooks/useInitProps\";\nimport { useLayoutConfig } from \"./hooks/useLayoutConfig\";\nimport { useOnProgressChange } from \"./hooks/useOnProgressChange\";\nimport { usePropsErrorBoundary } from \"./hooks/usePropsErrorBoundary\";\nimport { useVisibleRanges } from \"./hooks/useVisibleRanges\";\nimport { BaseLayout } from \"./layouts/BaseLayout\";\nimport { ScrollViewGesture } from \"./ScrollViewGesture\";\nimport { CTX } from \"./store\";\nimport type { ICarouselInstance, TCarouselProps } from \"./types\";\nimport { computedRealIndexWithAutoFillData } from \"./utils/computedWithAutoFillData\";\n\nconst Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(\n (_props, ref) => {\n const props = useInitProps(_props);\n\n const {\n testID,\n loop,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n mode,\n style,\n width,\n height,\n vertical,\n autoPlay,\n windowSize,\n autoPlayReverse,\n autoPlayInterval,\n scrollAnimationDuration,\n withAnimation,\n renderItem,\n onScrollEnd,\n onSnapToItem,\n onScrollBegin,\n onProgressChange,\n customAnimation,\n defaultIndex,\n } = props;\n\n const commonVariables = useCommonVariables(props);\n const { size, handlerOffset } = commonVariables;\n\n const offsetX = useDerivedValue(() => {\n const totalSize = size * dataLength;\n const x = handlerOffset.value % totalSize;\n\n if (!loop)\n return handlerOffset.value;\n\n return isNaN(x) ? 0 : x;\n }, [loop, size, dataLength]);\n\n usePropsErrorBoundary({ ...props, dataLength });\n useOnProgressChange({\n autoFillData,\n loop,\n size,\n offsetX,\n rawDataLength,\n onProgressChange,\n });\n\n const carouselController = useCarouselController({\n loop,\n size,\n dataLength,\n autoFillData,\n handlerOffset,\n withAnimation,\n defaultIndex,\n onScrollEnd: () => runOnJS(_onScrollEnd)(),\n onScrollBegin: () => !!onScrollBegin && runOnJS(onScrollBegin)(),\n duration: scrollAnimationDuration,\n });\n\n const { next, prev, scrollTo, getSharedIndex, getCurrentIndex }\n = carouselController;\n\n const { start: startAutoPlay, pause: pauseAutoPlay } = useAutoPlay({\n autoPlay,\n autoPlayInterval,\n autoPlayReverse,\n carouselController,\n });\n\n const _onScrollEnd = React.useCallback(() => {\n const _sharedIndex = Math.round(getSharedIndex());\n\n const realIndex = computedRealIndexWithAutoFillData({\n index: _sharedIndex,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n if (onSnapToItem)\n onSnapToItem(realIndex);\n\n if (onScrollEnd)\n onScrollEnd(realIndex);\n }, [\n loop,\n autoFillData,\n rawDataLength,\n getSharedIndex,\n onSnapToItem,\n onScrollEnd,\n ]);\n\n const scrollViewGestureOnScrollBegin = React.useCallback(() => {\n pauseAutoPlay();\n onScrollBegin?.();\n }, [onScrollBegin, pauseAutoPlay]);\n\n const scrollViewGestureOnScrollEnd = React.useCallback(() => {\n startAutoPlay();\n _onScrollEnd();\n }, [_onScrollEnd, startAutoPlay]);\n\n const scrollViewGestureOnTouchBegin = React.useCallback(pauseAutoPlay, [\n pauseAutoPlay,\n ]);\n\n const scrollViewGestureOnTouchEnd = React.useCallback(startAutoPlay, [\n startAutoPlay,\n ]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n next,\n prev,\n getCurrentIndex,\n scrollTo,\n }),\n [getCurrentIndex, next, prev, scrollTo],\n );\n\n const visibleRanges = useVisibleRanges({\n total: dataLength,\n viewSize: size,\n translation: handlerOffset,\n windowSize,\n });\n\n const layoutConfig = useLayoutConfig({ ...props, size });\n\n const renderLayout = React.useCallback(\n (item: any, i: number) => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: i,\n dataLength: rawDataLength,\n loop,\n autoFillData,\n });\n\n return (\n <BaseLayout\n key={i}\n index={i}\n handlerOffset={offsetX}\n visibleRanges={visibleRanges}\n animationStyle={customAnimation || layoutConfig}\n >\n {({ animationValue }) =>\n renderItem({\n item,\n index: realIndex,\n animationValue,\n })\n }\n </BaseLayout>\n );\n },\n [\n loop,\n rawData,\n offsetX,\n visibleRanges,\n autoFillData,\n renderItem,\n layoutConfig,\n customAnimation,\n ],\n );\n\n return (\n <GestureHandlerRootView>\n <CTX.Provider value={{ props, common: commonVariables }}>\n <ScrollViewGesture\n key={mode}\n size={size}\n translation={handlerOffset}\n style={[\n styles.container,\n {\n width: width || \"100%\",\n height: height || \"100%\",\n },\n style,\n vertical\n ? styles.itemsVertical\n : styles.itemsHorizontal,\n ]}\n testID={testID}\n onScrollBegin={scrollViewGestureOnScrollBegin}\n onScrollEnd={scrollViewGestureOnScrollEnd}\n onTouchBegin={scrollViewGestureOnTouchBegin}\n onTouchEnd={scrollViewGestureOnTouchEnd}\n >\n {data.map(renderLayout)}\n </ScrollViewGesture>\n </CTX.Provider>\n </GestureHandlerRootView>\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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["LazyView.tsx"],"names":["React","LazyView","props","shouldUpdate","children"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["LazyView.tsx"],"names":["React","LazyView","props","shouldUpdate","children"],"mappings":"AACA,OAAOA,KAAP,MAAkB,OAAlB;AAMA,OAAO,MAAMC,QAA4C,GAAIC,KAAD,IAAW;AACrE,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAA6BF,KAAnC;AAEA,MAAI,CAACC,YAAL,EACE,oBAAO,yCAAP;AAEF,sBAAO,0CAAGC,QAAH,CAAP;AACD,CAPM","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\n\ninterface Props {\n shouldUpdate: boolean\n}\n\nexport const LazyView: React.FC<PropsWithChildren<Props>> = (props) => {\n const { shouldUpdate, children } = props;\n\n if (!shouldUpdate)\n return <></>;\n\n return <>{children}</>;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollViewGesture.tsx"],"names":["React","PanGestureHandler","Animated","cancelAnimation","measure","runOnJS","useAnimatedGestureHandler","useAnimatedReaction","useAnimatedRef","useDerivedValue","useSharedValue","withDecay","Easing","CTX","dealWithAnimation","IScrollViewGesture","props","vertical","pagingEnabled","snapEnabled","panGestureHandlerProps","loop","infinite","scrollAnimationDuration","withAnimation","enabled","dataLength","overscrollEnabled","maxScrollDistancePerSwipe","useContext","size","translation","testID","style","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","containerRef","getLimit","useCallback","width","containerWidth","withSpring","toValue","onFinished","defaultWithAnimation","type","config","duration","easing","easeOutQuart","isFinished","endWithSpring","origin","value","velocity","finalTranslation","deceleration","Math","abs","offset","computed","ceil","floor","page","finalPage","withProcessTranslation","min","max","nextPage","round","limit","sign","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","totalTranslation","overSwipe","dampedTranslation","panTranslation","boundary","fixed","dynamic","translationValue","onEnd","velocityX","velocityY","children","ScrollViewGesture"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { StyleProp, ViewStyle } from \"react-native\";\nimport type { PanGestureHandlerGestureEvent } from \"react-native-gesture-handler\";\nimport { PanGestureHandler } from \"react-native-gesture-handler\";\nimport Animated, {\n cancelAnimation,\n measure,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedReaction,\n useAnimatedRef,\n useDerivedValue,\n useSharedValue,\n withDecay,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"./constants\";\nimport { CTX } from \"./store\";\nimport type { WithTimingAnimation } from \"./types\";\nimport { dealWithAnimation } from \"./utils/dealWithAnimation\";\n\ninterface GestureContext extends Record<string, unknown> {\n validStart: boolean\n panOffset: number\n max: number\n}\n\ninterface Props {\n size: number\n infinite?: boolean\n testID?: string\n style?: StyleProp<ViewStyle>\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n onTouchBegin?: () => void\n onTouchEnd?: () => void\n translation: Animated.SharedValue<number>\n}\n\nconst IScrollViewGesture: React.FC<Props> = (props) => {\n const {\n props: {\n vertical,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n dataLength,\n overscrollEnabled,\n maxScrollDistancePerSwipe,\n },\n } = React.useContext(CTX);\n\n const {\n size,\n translation,\n testID,\n style = {},\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = dataLength;\n const isHorizontal = useDerivedValue(() => !vertical, [vertical]);\n const touching = useSharedValue(false);\n const scrollEndTranslation = useSharedValue(0);\n const scrollEndVelocity = useSharedValue(0);\n const containerRef = useAnimatedRef<Animated.View>();\n\n // Get the limit of the scroll.\n const getLimit = React.useCallback(() => {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const { width: containerWidth = 0 } = measure(containerRef);\n\n // If the item's total width is less than the container's width, then there is no need to scroll.\n if (dataLength * size < containerWidth)\n return 0;\n\n // Disable the \"overscroll\" effect\n return dataLength * size - containerWidth;\n }\n\n return dataLength * size;\n }, [infinite, size, dataLength, overscrollEnabled]);\n\n const withSpring = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished)\n onFinished && runOnJS(onFinished)();\n },\n );\n },\n [scrollAnimationDuration, withAnimation],\n );\n\n const endWithSpring = React.useCallback(\n (onFinished?: () => void) => {\n \"worklet\";\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n // Default to scroll in the direction of the slide (with deceleration)\n let finalTranslation: number = withDecay({ velocity, deceleration: 0.999 });\n\n // If the distance of the swipe exceeds the max scroll distance, keep the view at the current position\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(scrollEndTranslation.value) > maxScrollDistancePerSwipe) {\n finalTranslation = origin;\n }\n else {\n /**\n * The page size is the same as the item size.\n * If direction is vertical, the page size is the height of the item.\n * If direction is horizontal, the page size is the width of the item.\n *\n * `page size` equals to `size` variable.\n * */\n if (pagingEnabled) {\n // distance with direction\n const offset = -(scrollEndTranslation.value >= 0 ? 1 : -1); // 1 or -1\n const computed = offset < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n\n if (infinite) {\n const finalPage = page + offset;\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n else {\n const finalPage = Math.min(maxPage - 1, Math.max(0, page + offset));\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n }\n\n if (!pagingEnabled && snapEnabled) {\n // scroll to the nearest item\n const nextPage = Math.round((origin + velocity * 0.4) / size) * size;\n finalTranslation = withSpring(withProcessTranslation(nextPage), onFinished);\n }\n }\n\n translation.value = finalTranslation;\n\n function withProcessTranslation(translation: number) {\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n },\n [\n withSpring,\n size,\n maxPage,\n infinite,\n snapEnabled,\n translation,\n pagingEnabled,\n scrollEndVelocity.value,\n maxScrollDistancePerSwipe,\n scrollEndTranslation.value,\n ],\n );\n\n const onFinish = React.useCallback(\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n },\n [onScrollEnd, touching],\n );\n\n const activeDecay = React.useCallback(() => {\n \"worklet\";\n touching.value = true;\n translation.value = withDecay(\n { velocity: scrollEndVelocity.value },\n isFinished => onFinish(isFinished as boolean),\n );\n }, [onFinish, scrollEndVelocity.value, touching, translation]);\n\n const resetBoundary = React.useCallback(() => {\n \"worklet\";\n if (touching.value)\n return;\n\n if (translation.value > 0) {\n if (scrollEndTranslation.value < 0) {\n activeDecay();\n return;\n }\n if (!infinite) {\n translation.value = withSpring(0);\n return;\n }\n }\n\n if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite)\n translation.value = withSpring(-((maxPage - 1) * size));\n }\n }, [\n touching.value,\n translation,\n maxPage,\n size,\n scrollEndTranslation.value,\n infinite,\n activeDecay,\n withSpring,\n ]);\n\n useAnimatedReaction(\n () => translation.value,\n () => {\n if (!pagingEnabled)\n resetBoundary();\n },\n [pagingEnabled, resetBoundary],\n );\n\n function withProcessTranslation(translation: number) {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n\n const panGestureEventHandler = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n GestureContext\n >(\n {\n onStart: (_, ctx) => {\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n\n ctx.max = (maxPage - 1) * size;\n if (!infinite && !overscrollEnabled)\n ctx.max = getLimit();\n\n ctx.panOffset = translation.value;\n },\n onActive: (e, ctx) => {\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n let { translationX, translationY } = e;\n\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const overSwipe = Math.abs(totalTranslation) - maxScrollDistancePerSwipe;\n const dampedTranslation = maxScrollDistancePerSwipe + overSwipe * 0.5;\n\n translationX = isHorizontal.value ? dampedTranslation * Math.sign(translationX) : translationX;\n translationY = !isHorizontal.value ? dampedTranslation * Math.sign(translationY) : translationY;\n }\n\n const panTranslation = isHorizontal.value ? translationX : translationY;\n if (!infinite) {\n if ((translation.value > 0 || translation.value < -ctx.max)) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n }\n\n const translationValue = ctx.panOffset + panTranslation;\n\n translation.value = translationValue;\n },\n onEnd: (e, ctx) => {\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 const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const nextPage = Math.round((ctx.panOffset + maxScrollDistancePerSwipe * Math.sign(totalTranslation)) / size) * size;\n translation.value = withSpring(withProcessTranslation(nextPage), onScrollEnd);\n }\n else {\n endWithSpring(onScrollEnd);\n }\n\n if (!infinite)\n touching.value = false;\n },\n },\n [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ],\n );\n\n return (\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n <Animated.View\n ref={containerRef}\n testID={testID}\n style={style}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n {props.children}\n </Animated.View>\n </PanGestureHandler>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n"]}
|
|
1
|
+
{"version":3,"sources":["ScrollViewGesture.tsx"],"names":["React","PanGestureHandler","Animated","cancelAnimation","measure","runOnJS","useAnimatedGestureHandler","useAnimatedReaction","useAnimatedRef","useDerivedValue","useSharedValue","withDecay","Easing","CTX","dealWithAnimation","IScrollViewGesture","props","vertical","pagingEnabled","snapEnabled","panGestureHandlerProps","loop","infinite","scrollAnimationDuration","withAnimation","enabled","dataLength","overscrollEnabled","maxScrollDistancePerSwipe","useContext","size","translation","testID","style","onScrollBegin","onScrollEnd","onTouchBegin","onTouchEnd","maxPage","isHorizontal","touching","scrollEndTranslation","scrollEndVelocity","containerRef","getLimit","useCallback","width","containerWidth","withSpring","toValue","onFinished","defaultWithAnimation","type","config","duration","easing","easeOutQuart","isFinished","endWithSpring","origin","value","velocity","finalTranslation","deceleration","Math","abs","offset","computed","ceil","floor","page","finalPage","withProcessTranslation","min","max","nextPage","round","limit","sign","onFinish","activeDecay","resetBoundary","panGestureEventHandler","onStart","_","ctx","validStart","panOffset","onActive","e","translationX","translationY","totalTranslation","overSwipe","dampedTranslation","panTranslation","boundary","fixed","dynamic","translationValue","onEnd","velocityX","velocityY","children","ScrollViewGesture"],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport type { StyleProp, ViewStyle } from \"react-native\";\nimport type { PanGestureHandlerGestureEvent } from \"react-native-gesture-handler\";\nimport { PanGestureHandler } from \"react-native-gesture-handler\";\nimport Animated, {\n cancelAnimation,\n measure,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedReaction,\n useAnimatedRef,\n useDerivedValue,\n useSharedValue,\n withDecay,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"./constants\";\nimport { CTX } from \"./store\";\nimport type { WithTimingAnimation } from \"./types\";\nimport { dealWithAnimation } from \"./utils/dealWithAnimation\";\n\ninterface GestureContext extends Record<string, unknown> {\n validStart: boolean\n panOffset: number\n max: number\n}\n\ninterface Props {\n size: number\n infinite?: boolean\n testID?: string\n style?: StyleProp<ViewStyle>\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n onTouchBegin?: () => void\n onTouchEnd?: () => void\n translation: Animated.SharedValue<number>\n}\n\nconst IScrollViewGesture: React.FC<PropsWithChildren<Props>> = (props) => {\n const {\n props: {\n vertical,\n pagingEnabled,\n snapEnabled,\n panGestureHandlerProps,\n loop: infinite,\n scrollAnimationDuration,\n withAnimation,\n enabled,\n dataLength,\n overscrollEnabled,\n maxScrollDistancePerSwipe,\n },\n } = React.useContext(CTX);\n\n const {\n size,\n translation,\n testID,\n style = {},\n onScrollBegin,\n onScrollEnd,\n onTouchBegin,\n onTouchEnd,\n } = props;\n\n const maxPage = dataLength;\n const isHorizontal = useDerivedValue(() => !vertical, [vertical]);\n const touching = useSharedValue(false);\n const scrollEndTranslation = useSharedValue(0);\n const scrollEndVelocity = useSharedValue(0);\n const containerRef = useAnimatedRef<Animated.View>();\n\n // Get the limit of the scroll.\n const getLimit = React.useCallback(() => {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const { width: containerWidth = 0 } = measure(containerRef);\n\n // If the item's total width is less than the container's width, then there is no need to scroll.\n if (dataLength * size < containerWidth)\n return 0;\n\n // Disable the \"overscroll\" effect\n return dataLength * size - containerWidth;\n }\n\n return dataLength * size;\n }, [infinite, size, dataLength, overscrollEnabled]);\n\n const withSpring = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: {\n duration: scrollAnimationDuration + 100,\n easing: Easing.easeOutQuart,\n },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished)\n onFinished && runOnJS(onFinished)();\n },\n );\n },\n [scrollAnimationDuration, withAnimation],\n );\n\n const endWithSpring = React.useCallback(\n (onFinished?: () => void) => {\n \"worklet\";\n const origin = translation.value;\n const velocity = scrollEndVelocity.value;\n // Default to scroll in the direction of the slide (with deceleration)\n let finalTranslation: number = withDecay({ velocity, deceleration: 0.999 });\n\n // If the distance of the swipe exceeds the max scroll distance, keep the view at the current position\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(scrollEndTranslation.value) > maxScrollDistancePerSwipe) {\n finalTranslation = origin;\n }\n else {\n /**\n * The page size is the same as the item size.\n * If direction is vertical, the page size is the height of the item.\n * If direction is horizontal, the page size is the width of the item.\n *\n * `page size` equals to `size` variable.\n * */\n if (pagingEnabled) {\n // distance with direction\n const offset = -(scrollEndTranslation.value >= 0 ? 1 : -1); // 1 or -1\n const computed = offset < 0 ? Math.ceil : Math.floor;\n const page = computed(-translation.value / size);\n\n if (infinite) {\n const finalPage = page + offset;\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n else {\n const finalPage = Math.min(maxPage - 1, Math.max(0, page + offset));\n finalTranslation = withSpring(withProcessTranslation(-finalPage * size), onFinished);\n }\n }\n\n if (!pagingEnabled && snapEnabled) {\n // scroll to the nearest item\n const nextPage = Math.round((origin + velocity * 0.4) / size) * size;\n finalTranslation = withSpring(withProcessTranslation(nextPage), onFinished);\n }\n }\n\n translation.value = finalTranslation;\n\n function withProcessTranslation(translation: number) {\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n },\n [\n withSpring,\n size,\n maxPage,\n infinite,\n snapEnabled,\n translation,\n pagingEnabled,\n scrollEndVelocity.value,\n maxScrollDistancePerSwipe,\n scrollEndTranslation.value,\n ],\n );\n\n const onFinish = React.useCallback(\n (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n touching.value = false;\n onScrollEnd && runOnJS(onScrollEnd)();\n }\n },\n [onScrollEnd, touching],\n );\n\n const activeDecay = React.useCallback(() => {\n \"worklet\";\n touching.value = true;\n translation.value = withDecay(\n { velocity: scrollEndVelocity.value },\n isFinished => onFinish(isFinished as boolean),\n );\n }, [onFinish, scrollEndVelocity.value, touching, translation]);\n\n const resetBoundary = React.useCallback(() => {\n \"worklet\";\n if (touching.value)\n return;\n\n if (translation.value > 0) {\n if (scrollEndTranslation.value < 0) {\n activeDecay();\n return;\n }\n if (!infinite) {\n translation.value = withSpring(0);\n return;\n }\n }\n\n if (translation.value < -((maxPage - 1) * size)) {\n if (scrollEndTranslation.value > 0) {\n activeDecay();\n return;\n }\n if (!infinite)\n translation.value = withSpring(-((maxPage - 1) * size));\n }\n }, [\n touching.value,\n translation,\n maxPage,\n size,\n scrollEndTranslation.value,\n infinite,\n activeDecay,\n withSpring,\n ]);\n\n useAnimatedReaction(\n () => translation.value,\n () => {\n if (!pagingEnabled)\n resetBoundary();\n },\n [pagingEnabled, resetBoundary],\n );\n\n function withProcessTranslation(translation: number) {\n \"worklet\";\n\n if (!infinite && !overscrollEnabled) {\n const limit = getLimit();\n const sign = Math.sign(translation);\n return sign * Math.max(0, Math.min(limit, Math.abs(translation)));\n }\n\n return translation;\n }\n\n const panGestureEventHandler = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n GestureContext\n >(\n {\n onStart: (_, ctx) => {\n touching.value = true;\n ctx.validStart = true;\n onScrollBegin && runOnJS(onScrollBegin)();\n\n ctx.max = (maxPage - 1) * size;\n if (!infinite && !overscrollEnabled)\n ctx.max = getLimit();\n\n ctx.panOffset = translation.value;\n },\n onActive: (e, ctx) => {\n if (ctx.validStart) {\n ctx.validStart = false;\n cancelAnimation(translation);\n }\n touching.value = true;\n let { translationX, translationY } = e;\n\n const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const overSwipe = Math.abs(totalTranslation) - maxScrollDistancePerSwipe;\n const dampedTranslation = maxScrollDistancePerSwipe + overSwipe * 0.5;\n\n translationX = isHorizontal.value ? dampedTranslation * Math.sign(translationX) : translationX;\n translationY = !isHorizontal.value ? dampedTranslation * Math.sign(translationY) : translationY;\n }\n\n const panTranslation = isHorizontal.value ? translationX : translationY;\n if (!infinite) {\n if ((translation.value > 0 || translation.value < -ctx.max)) {\n const boundary = translation.value > 0 ? 0 : -ctx.max;\n const fixed = boundary - ctx.panOffset;\n const dynamic = panTranslation - fixed;\n translation.value = boundary + dynamic * 0.5;\n return;\n }\n }\n\n const translationValue = ctx.panOffset + panTranslation;\n\n translation.value = translationValue;\n },\n onEnd: (e, ctx) => {\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 const totalTranslation = isHorizontal.value ? translationX : translationY;\n\n if (typeof maxScrollDistancePerSwipe === \"number\" && Math.abs(totalTranslation) > maxScrollDistancePerSwipe) {\n const nextPage = Math.round((ctx.panOffset + maxScrollDistancePerSwipe * Math.sign(totalTranslation)) / size) * size;\n translation.value = withSpring(withProcessTranslation(nextPage), onScrollEnd);\n }\n else {\n endWithSpring(onScrollEnd);\n }\n\n if (!infinite)\n touching.value = false;\n },\n },\n [\n pagingEnabled,\n isHorizontal.value,\n infinite,\n maxPage,\n size,\n snapEnabled,\n onScrollBegin,\n onScrollEnd,\n ],\n );\n\n return (\n <PanGestureHandler\n {...panGestureHandlerProps}\n enabled={enabled}\n onGestureEvent={panGestureEventHandler}\n >\n <Animated.View\n ref={containerRef}\n testID={testID}\n style={style}\n onTouchStart={onTouchBegin}\n onTouchEnd={onTouchEnd}\n >\n {props.children}\n </Animated.View>\n </PanGestureHandler>\n );\n};\n\nexport const ScrollViewGesture = IScrollViewGesture;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useAutoPlay.ts"],"names":["React","useAutoPlay","opts","autoPlay","autoPlayReverse","autoPlayInterval","carouselController","prev","next","timer","useRef","stopped","play","useCallback","current","clearTimeout","setTimeout","onFinished","pause","start","useEffect"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAIA,OAAO,SAASC,WAAT,CAAqBC,IAArB,EAKJ;AACD,QAAM;AACJC,IAAAA,QAAQ,GAAG,KADP;AAEJC,IAAAA,eAAe,GAAG,KAFd;AAGJC,IAAAA,gBAHI;AAIJC,IAAAA;AAJI,MAKFJ,IALJ;AAOA,QAAM;AAAEK,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAiBF,kBAAvB;AACA,QAAMG,KAAK,GAAGT,KAAK,CAACU,MAAN,EAAd;AACA,QAAMC,OAAO,GAAGX,KAAK,CAACU,MAAN,CAAsB,CAACP,QAAvB,CAAhB;AAEA,QAAMS,IAAI,GAAGZ,KAAK,CAACa,WAAN,CAAkB,MAAM;AACnC,QAAIF,OAAO,CAACG,OAAZ,EACE;AAEFL,IAAAA,KAAK,CAACK,OAAN,IAAiBC,YAAY,CAACN,KAAK,CAACK,OAAP,CAA7B;AACAL,IAAAA,KAAK,CAACK,OAAN,GAAgBE,UAAU,CAAC,MAAM;AAC/BZ,MAAAA,eAAe,GACXG,IAAI,CAAC;AAAEU,QAAAA,UAAU,EAAEL;AAAd,OAAD,CADO,GAEXJ,IAAI,CAAC;AAAES,QAAAA,UAAU,EAAEL;AAAd,OAAD,CAFR;AAGD,KAJyB,EAIvBP,gBAJuB,CAA1B;AAKD,GAVY,EAUV,CAACD,eAAD,EAAkBC,gBAAlB,EAAoCE,IAApC,EAA0CC,IAA1C,CAVU,CAAb;AAYA,QAAMU,KAAK,GAAGlB,KAAK,CAACa,WAAN,CAAkB,MAAM;AACpC,QAAI,CAACV,QAAL,EACE;AAEFM,IAAAA,KAAK,CAACK,OAAN,IAAiBC,YAAY,CAACN,KAAK,CAACK,OAAP,CAA7B;AACAH,IAAAA,OAAO,CAACG,OAAR,GAAkB,IAAlB;AACD,GANa,EAMX,CAACX,QAAD,CANW,CAAd;AAQA,QAAMgB,KAAK,GAAGnB,KAAK,CAACa,WAAN,CAAkB,MAAM;AACpC,QAAI,CAACV,QAAL,EACE;AAEFQ,IAAAA,OAAO,CAACG,OAAR,GAAkB,KAAlB;AACAF,IAAAA,IAAI;AACL,GANa,EAMX,CAACA,IAAD,EAAOT,QAAP,CANW,CAAd;AAQAH,EAAAA,KAAK,CAACoB,SAAN,CAAgB,MAAM;AACpB,QAAIjB,QAAJ,EACEgB,KAAK,GADP,KAGED,KAAK;AAEP,WAAOA,KAAP;AACD,GAPD,EAOG,CAACA,KAAD,EAAQC,KAAR,EAAehB,QAAf,CAPH;AASA,SAAO;AACLe,IAAAA,KADK;AAELC,IAAAA;AAFK,GAAP;AAID","sourcesContent":["import * as React from \"react\";\n\nimport type { ICarouselController } from \"./useCarouselController\";\n\nexport function useAutoPlay(opts: {\n autoPlay?: boolean\n autoPlayInterval?: number\n autoPlayReverse?: boolean\n carouselController: ICarouselController\n}) {\n const {\n autoPlay = false,\n autoPlayReverse = false,\n autoPlayInterval,\n carouselController,\n } = opts;\n\n const { prev, next } = carouselController;\n const timer = React.useRef<
|
|
1
|
+
{"version":3,"sources":["useAutoPlay.ts"],"names":["React","useAutoPlay","opts","autoPlay","autoPlayReverse","autoPlayInterval","carouselController","prev","next","timer","useRef","stopped","play","useCallback","current","clearTimeout","setTimeout","onFinished","pause","start","useEffect"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAIA,OAAO,SAASC,WAAT,CAAqBC,IAArB,EAKJ;AACD,QAAM;AACJC,IAAAA,QAAQ,GAAG,KADP;AAEJC,IAAAA,eAAe,GAAG,KAFd;AAGJC,IAAAA,gBAHI;AAIJC,IAAAA;AAJI,MAKFJ,IALJ;AAOA,QAAM;AAAEK,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAiBF,kBAAvB;AACA,QAAMG,KAAK,GAAGT,KAAK,CAACU,MAAN,EAAd;AACA,QAAMC,OAAO,GAAGX,KAAK,CAACU,MAAN,CAAsB,CAACP,QAAvB,CAAhB;AAEA,QAAMS,IAAI,GAAGZ,KAAK,CAACa,WAAN,CAAkB,MAAM;AACnC,QAAIF,OAAO,CAACG,OAAZ,EACE;AAEFL,IAAAA,KAAK,CAACK,OAAN,IAAiBC,YAAY,CAACN,KAAK,CAACK,OAAP,CAA7B;AACAL,IAAAA,KAAK,CAACK,OAAN,GAAgBE,UAAU,CAAC,MAAM;AAC/BZ,MAAAA,eAAe,GACXG,IAAI,CAAC;AAAEU,QAAAA,UAAU,EAAEL;AAAd,OAAD,CADO,GAEXJ,IAAI,CAAC;AAAES,QAAAA,UAAU,EAAEL;AAAd,OAAD,CAFR;AAGD,KAJyB,EAIvBP,gBAJuB,CAA1B;AAKD,GAVY,EAUV,CAACD,eAAD,EAAkBC,gBAAlB,EAAoCE,IAApC,EAA0CC,IAA1C,CAVU,CAAb;AAYA,QAAMU,KAAK,GAAGlB,KAAK,CAACa,WAAN,CAAkB,MAAM;AACpC,QAAI,CAACV,QAAL,EACE;AAEFM,IAAAA,KAAK,CAACK,OAAN,IAAiBC,YAAY,CAACN,KAAK,CAACK,OAAP,CAA7B;AACAH,IAAAA,OAAO,CAACG,OAAR,GAAkB,IAAlB;AACD,GANa,EAMX,CAACX,QAAD,CANW,CAAd;AAQA,QAAMgB,KAAK,GAAGnB,KAAK,CAACa,WAAN,CAAkB,MAAM;AACpC,QAAI,CAACV,QAAL,EACE;AAEFQ,IAAAA,OAAO,CAACG,OAAR,GAAkB,KAAlB;AACAF,IAAAA,IAAI;AACL,GANa,EAMX,CAACA,IAAD,EAAOT,QAAP,CANW,CAAd;AAQAH,EAAAA,KAAK,CAACoB,SAAN,CAAgB,MAAM;AACpB,QAAIjB,QAAJ,EACEgB,KAAK,GADP,KAGED,KAAK;AAEP,WAAOA,KAAP;AACD,GAPD,EAOG,CAACA,KAAD,EAAQC,KAAR,EAAehB,QAAf,CAPH;AASA,SAAO;AACLe,IAAAA,KADK;AAELC,IAAAA;AAFK,GAAP;AAID","sourcesContent":["import * as React from \"react\";\n\nimport type { ICarouselController } from \"./useCarouselController\";\n\nexport function useAutoPlay(opts: {\n autoPlay?: boolean\n autoPlayInterval?: number\n autoPlayReverse?: boolean\n carouselController: ICarouselController\n}) {\n const {\n autoPlay = false,\n autoPlayReverse = false,\n autoPlayInterval,\n carouselController,\n } = opts;\n\n const { prev, next } = carouselController;\n const timer = React.useRef<ReturnType<typeof setTimeout>>();\n const stopped = React.useRef<boolean>(!autoPlay);\n\n const play = React.useCallback(() => {\n if (stopped.current)\n return;\n\n timer.current && clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n autoPlayReverse\n ? prev({ onFinished: play })\n : next({ onFinished: play });\n }, autoPlayInterval);\n }, [autoPlayReverse, autoPlayInterval, prev, next]);\n\n const pause = React.useCallback(() => {\n if (!autoPlay)\n return;\n\n timer.current && clearTimeout(timer.current);\n stopped.current = true;\n }, [autoPlay]);\n\n const start = React.useCallback(() => {\n if (!autoPlay)\n return;\n\n stopped.current = false;\n play();\n }, [play, autoPlay]);\n\n React.useEffect(() => {\n if (autoPlay)\n start();\n else\n pause();\n\n return pause;\n }, [pause, start, autoPlay]);\n\n return {\n pause,\n start,\n };\n}\n"]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["Carousel","ILayoutConfig"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,YAArB;AAOA,
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Carousel","ILayoutConfig"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,YAArB;AAOA,SAASC,aAAT,QAA8B,iBAA9B;AAEA,eAAeD,QAAf","sourcesContent":["import Carousel from \"./Carousel\";\nexport type {\n TCarouselProps,\n ICarouselInstance,\n IComputedDirectionTypes,\n CarouselRenderItem,\n} from \"./types\";\nexport { ILayoutConfig } from \"./layouts/stack\";\n\nexport default Carousel;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["React","Animated","Extrapolate","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useOffsetX","LazyView","ParallaxLayout","props","handlerOffset","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","index","width","height","loop","dataLength","children","visibleRanges","vertical","shouldUpdate","setShouldUpdate","useState","size","x","offsetXStyle","value","translate","EXTEND","zIndex","CLAMP","scale","transform","translateY","translateX","updateView","useCallback","negativeRange","positiveRange","position"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["ParallaxLayout.tsx"],"names":["React","Animated","Extrapolate","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useOffsetX","LazyView","ParallaxLayout","props","handlerOffset","parallaxScrollingOffset","parallaxScrollingScale","parallaxAdjacentItemScale","index","width","height","loop","dataLength","children","visibleRanges","vertical","shouldUpdate","setShouldUpdate","useState","size","x","offsetXStyle","value","translate","EXTEND","zIndex","CLAMP","scale","transform","translateY","translateX","updateView","useCallback","negativeRange","positiveRange","position"],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport Animated, {\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedReaction,\n useAnimatedStyle,\n} from \"react-native-reanimated\";\n\nimport type { ILayoutConfig } from \"./parallax\";\n\nimport { useOffsetX } from \"../hooks/useOffsetX\";\nimport type { IVisibleRanges } from \"../hooks/useVisibleRanges\";\nimport { LazyView } from \"../LazyView\";\nimport type { IComputedDirectionTypes } from \"../types\";\n\nexport const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<\n{\n loop?: boolean\n handlerOffset: Animated.SharedValue<number>\n index: number\n dataLength: number\n visibleRanges: IVisibleRanges\n} & ILayoutConfig\n>>> = (props) => {\n const {\n handlerOffset,\n parallaxScrollingOffset = 100,\n parallaxScrollingScale = 0.8,\n parallaxAdjacentItemScale = parallaxScrollingScale ** 2,\n index,\n width,\n height,\n loop,\n dataLength,\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 handlerOffset,\n index,\n size,\n dataLength,\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,3 +1,4 @@
|
|
|
1
|
+
import type { PropsWithChildren } from "react";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import type { StyleProp, ViewStyle } from "react-native";
|
|
3
4
|
import Animated from "react-native-reanimated";
|
|
@@ -12,5 +13,5 @@ interface Props {
|
|
|
12
13
|
onTouchEnd?: () => void;
|
|
13
14
|
translation: Animated.SharedValue<number>;
|
|
14
15
|
}
|
|
15
|
-
export declare const ScrollViewGesture: React.FC<Props
|
|
16
|
+
export declare const ScrollViewGesture: React.FC<PropsWithChildren<Props>>;
|
|
16
17
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import Carousel from "./Carousel";
|
|
2
|
-
export type { TCarouselProps, ICarouselInstance, IComputedDirectionTypes, CarouselRenderItem } from "./types";
|
|
3
|
-
export { ILayoutConfig } from
|
|
2
|
+
export type { TCarouselProps, ICarouselInstance, IComputedDirectionTypes, CarouselRenderItem, } from "./types";
|
|
3
|
+
export { ILayoutConfig } from "./layouts/stack";
|
|
4
4
|
export default Carousel;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import type { PropsWithChildren } from "react";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import Animated from "react-native-reanimated";
|
|
3
4
|
import type { ILayoutConfig } from "./parallax";
|
|
4
5
|
import type { IVisibleRanges } from "../hooks/useVisibleRanges";
|
|
5
6
|
import type { IComputedDirectionTypes } from "../types";
|
|
6
|
-
export declare const ParallaxLayout: React.FC<IComputedDirectionTypes<{
|
|
7
|
+
export declare const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<{
|
|
7
8
|
loop?: boolean;
|
|
8
9
|
handlerOffset: Animated.SharedValue<number>;
|
|
9
10
|
index: number;
|
|
10
11
|
dataLength: number;
|
|
11
12
|
visibleRanges: IVisibleRanges;
|
|
12
|
-
} & ILayoutConfig
|
|
13
|
+
} & ILayoutConfig>>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-reanimated-carousel",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "Simple carousel component.fully implemented using Reanimated 2.Infinitely scrolling, very smooth.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"react-native": "src/index.tsx",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"@react-native-community/eslint-config": "^2.0.0",
|
|
58
58
|
"@release-it/conventional-changelog": "^2.0.0",
|
|
59
59
|
"@types/jest": "^29.2.5",
|
|
60
|
+
"@types/react": "^18.2.15",
|
|
60
61
|
"@types/react-native": "^0.66.16",
|
|
61
62
|
"@types/react-native-snap-carousel": "^3.8.5",
|
|
62
63
|
"babel-plugin-inline-dotenv": "^1.6.0",
|
package/src/Carousel.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { StyleSheet } from "react-native";
|
|
4
|
-
import {
|
|
4
|
+
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
5
5
|
import { runOnJS, useDerivedValue } from "react-native-reanimated";
|
|
6
6
|
|
|
7
7
|
import { useAutoPlay } from "./hooks/useAutoPlay";
|
|
@@ -202,36 +202,38 @@ const Carousel = React.forwardRef<ICarouselInstance, TCarouselProps<any>>(
|
|
|
202
202
|
);
|
|
203
203
|
|
|
204
204
|
return (
|
|
205
|
-
<
|
|
206
|
-
<
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
205
|
+
<GestureHandlerRootView>
|
|
206
|
+
<CTX.Provider value={{ props, common: commonVariables }}>
|
|
207
|
+
<ScrollViewGesture
|
|
208
|
+
key={mode}
|
|
209
|
+
size={size}
|
|
210
|
+
translation={handlerOffset}
|
|
211
|
+
style={[
|
|
212
|
+
styles.container,
|
|
213
|
+
{
|
|
214
|
+
width: width || "100%",
|
|
215
|
+
height: height || "100%",
|
|
216
|
+
},
|
|
217
|
+
style,
|
|
218
|
+
vertical
|
|
219
|
+
? styles.itemsVertical
|
|
220
|
+
: styles.itemsHorizontal,
|
|
221
|
+
]}
|
|
222
|
+
testID={testID}
|
|
223
|
+
onScrollBegin={scrollViewGestureOnScrollBegin}
|
|
224
|
+
onScrollEnd={scrollViewGestureOnScrollEnd}
|
|
225
|
+
onTouchBegin={scrollViewGestureOnTouchBegin}
|
|
226
|
+
onTouchEnd={scrollViewGestureOnTouchEnd}
|
|
227
|
+
>
|
|
228
|
+
{data.map(renderLayout)}
|
|
229
|
+
</ScrollViewGesture>
|
|
230
|
+
</CTX.Provider>
|
|
231
|
+
</GestureHandlerRootView>
|
|
230
232
|
);
|
|
231
233
|
},
|
|
232
234
|
);
|
|
233
235
|
|
|
234
|
-
export default
|
|
236
|
+
export default Carousel as <T extends any>(
|
|
235
237
|
props: React.PropsWithChildren<TCarouselProps<T>>
|
|
236
238
|
) => React.ReactElement;
|
|
237
239
|
|
package/src/LazyView.tsx
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { PropsWithChildren } from "react";
|
|
1
2
|
import React from "react";
|
|
2
3
|
|
|
3
4
|
interface Props {
|
|
4
5
|
shouldUpdate: boolean
|
|
5
6
|
}
|
|
6
7
|
|
|
7
|
-
export const LazyView: React.FC<Props
|
|
8
|
+
export const LazyView: React.FC<PropsWithChildren<Props>> = (props) => {
|
|
8
9
|
const { shouldUpdate, children } = props;
|
|
9
10
|
|
|
10
11
|
if (!shouldUpdate)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PropsWithChildren } from "react";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import type { StyleProp, ViewStyle } from "react-native";
|
|
3
4
|
import type { PanGestureHandlerGestureEvent } from "react-native-gesture-handler";
|
|
@@ -37,7 +38,7 @@ interface Props {
|
|
|
37
38
|
translation: Animated.SharedValue<number>
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
const IScrollViewGesture: React.FC<Props
|
|
41
|
+
const IScrollViewGesture: React.FC<PropsWithChildren<Props>> = (props) => {
|
|
41
42
|
const {
|
|
42
43
|
props: {
|
|
43
44
|
vertical,
|
package/src/hooks/useAutoPlay.ts
CHANGED
|
@@ -16,7 +16,7 @@ export function useAutoPlay(opts: {
|
|
|
16
16
|
} = opts;
|
|
17
17
|
|
|
18
18
|
const { prev, next } = carouselController;
|
|
19
|
-
const timer = React.useRef<
|
|
19
|
+
const timer = React.useRef<ReturnType<typeof setTimeout>>();
|
|
20
20
|
const stopped = React.useRef<boolean>(!autoPlay);
|
|
21
21
|
|
|
22
22
|
const play = React.useCallback(() => {
|
package/src/index.tsx
CHANGED
|
@@ -3,8 +3,8 @@ export type {
|
|
|
3
3
|
TCarouselProps,
|
|
4
4
|
ICarouselInstance,
|
|
5
5
|
IComputedDirectionTypes,
|
|
6
|
-
CarouselRenderItem
|
|
6
|
+
CarouselRenderItem,
|
|
7
7
|
} from "./types";
|
|
8
|
-
export {ILayoutConfig} from
|
|
8
|
+
export { ILayoutConfig } from "./layouts/stack";
|
|
9
9
|
|
|
10
10
|
export default Carousel;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PropsWithChildren } from "react";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import Animated, {
|
|
3
4
|
Extrapolate,
|
|
@@ -14,8 +15,7 @@ import type { IVisibleRanges } from "../hooks/useVisibleRanges";
|
|
|
14
15
|
import { LazyView } from "../LazyView";
|
|
15
16
|
import type { IComputedDirectionTypes } from "../types";
|
|
16
17
|
|
|
17
|
-
export const ParallaxLayout: React.FC<
|
|
18
|
-
IComputedDirectionTypes<
|
|
18
|
+
export const ParallaxLayout: React.FC<PropsWithChildren<IComputedDirectionTypes<
|
|
19
19
|
{
|
|
20
20
|
loop?: boolean
|
|
21
21
|
handlerOffset: Animated.SharedValue<number>
|
|
@@ -23,8 +23,7 @@ IComputedDirectionTypes<
|
|
|
23
23
|
dataLength: number
|
|
24
24
|
visibleRanges: IVisibleRanges
|
|
25
25
|
} & ILayoutConfig
|
|
26
|
-
|
|
27
|
-
> = (props) => {
|
|
26
|
+
>>> = (props) => {
|
|
28
27
|
const {
|
|
29
28
|
handlerOffset,
|
|
30
29
|
parallaxScrollingOffset = 100,
|