react-native-reanimated-carousel 4.0.0-alpha.0 → 4.0.0-alpha.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/README.md +21 -160
- package/lib/commonjs/components/Carousel.js +231 -0
- package/lib/commonjs/components/Carousel.js.map +1 -0
- package/lib/commonjs/components/LazyView.js +22 -0
- package/lib/commonjs/components/LazyView.js.map +1 -0
- package/lib/commonjs/components/ScrollViewGesture.js +297 -0
- package/lib/commonjs/components/ScrollViewGesture.js.map +1 -0
- package/lib/commonjs/constants/index.js +21 -1
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/hooks/useAutoPlay.js +56 -1
- package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.js +244 -1
- package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
- package/lib/commonjs/hooks/useCheckMounted.js +23 -1
- package/lib/commonjs/hooks/useCheckMounted.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.js +76 -1
- package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
- package/lib/commonjs/hooks/useInitProps.js +78 -1
- package/lib/commonjs/hooks/useInitProps.js.map +1 -1
- package/lib/commonjs/hooks/useLayoutConfig.js +39 -1
- package/lib/commonjs/hooks/useLayoutConfig.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.js +48 -1
- package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js +38 -1
- package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js +36 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
- package/lib/commonjs/hooks/useUpdateGestureConfig.js +20 -0
- package/lib/commonjs/hooks/useUpdateGestureConfig.js.map +1 -0
- package/lib/commonjs/hooks/useVisibleRanges.js +42 -1
- package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
- package/lib/commonjs/index.js +13 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/layouts/BaseLayout.js +110 -1
- package/lib/commonjs/layouts/BaseLayout.js.map +1 -1
- package/lib/commonjs/layouts/ParallaxLayout.js +83 -1
- package/lib/commonjs/layouts/ParallaxLayout.js.map +1 -1
- package/lib/commonjs/layouts/index.js +20 -1
- package/lib/commonjs/layouts/index.js.map +1 -1
- package/lib/commonjs/layouts/normal.js +27 -1
- package/lib/commonjs/layouts/normal.js.map +1 -1
- package/lib/commonjs/layouts/parallax.js +38 -1
- package/lib/commonjs/layouts/parallax.js.map +1 -1
- package/lib/commonjs/layouts/stack.js +215 -1
- package/lib/commonjs/layouts/stack.js.map +1 -1
- package/lib/commonjs/store/index.js +14 -1
- package/lib/commonjs/store/index.js.map +1 -1
- package/lib/commonjs/types.js +5 -1
- package/lib/commonjs/utils/computeNewIndexWhenDataChanges.js +52 -0
- package/lib/commonjs/utils/computeNewIndexWhenDataChanges.js.map +1 -0
- package/lib/commonjs/utils/computed-with-auto-fill-data.js +124 -0
- package/lib/commonjs/utils/computed-with-auto-fill-data.js.map +1 -0
- package/lib/commonjs/utils/deal-with-animation.js +21 -0
- package/lib/commonjs/utils/deal-with-animation.js.map +1 -0
- package/lib/commonjs/utils/handleroffset-direction.js +16 -0
- package/lib/commonjs/utils/handleroffset-direction.js.map +1 -0
- package/lib/commonjs/utils/index.test.js +74 -0
- package/lib/commonjs/utils/index.test.js.map +1 -0
- package/lib/commonjs/utils/log.js +22 -1
- package/lib/commonjs/utils/log.js.map +1 -1
- package/lib/module/{Carousel.js → components/Carousel.js} +11 -12
- package/lib/module/components/Carousel.js.map +1 -0
- package/lib/module/{ScrollViewGesture.js → components/ScrollViewGesture.js} +14 -6
- package/lib/module/components/ScrollViewGesture.js.map +1 -0
- package/lib/module/hooks/useCarouselController.js +3 -3
- package/lib/module/hooks/useCarouselController.js.map +1 -1
- package/lib/module/hooks/useCommonVariables.js +2 -2
- package/lib/module/hooks/useCommonVariables.js.map +1 -1
- package/lib/module/hooks/useInitProps.js +1 -3
- package/lib/module/hooks/useInitProps.js.map +1 -1
- package/lib/module/hooks/useOnProgressChange.js +1 -1
- package/lib/module/hooks/useOnProgressChange.js.map +1 -1
- package/lib/module/hooks/useUpdateGestureConfig.js +10 -0
- package/lib/module/hooks/useUpdateGestureConfig.js.map +1 -0
- package/lib/module/index.js +1 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/layouts/BaseLayout.js +1 -1
- package/lib/module/layouts/BaseLayout.js.map +1 -1
- package/lib/module/layouts/ParallaxLayout.js +1 -1
- package/lib/module/layouts/ParallaxLayout.js.map +1 -1
- package/lib/module/utils/{computedWithAutoFillData.js → computed-with-auto-fill-data.js} +1 -1
- package/lib/module/utils/computed-with-auto-fill-data.js.map +1 -0
- package/lib/module/utils/{dealWithAnimation.js → deal-with-animation.js} +1 -1
- package/lib/module/utils/deal-with-animation.js.map +1 -0
- package/lib/module/utils/{handlerOffsetDirection.js → handleroffset-direction.js} +1 -1
- package/lib/module/utils/handleroffset-direction.js.map +1 -0
- package/lib/typescript/{Carousel.d.ts → components/Carousel.d.ts} +1 -1
- package/lib/typescript/hooks/useUpdateGestureConfig.d.ts +4 -0
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/types.d.ts +103 -103
- package/package.json +18 -16
- package/src/{Carousel.tsx → components/Carousel.tsx} +13 -13
- package/src/{ScrollViewGesture.tsx → components/ScrollViewGesture.tsx} +30 -15
- package/src/hooks/useCarouselController.tsx +3 -3
- package/src/hooks/useCommonVariables.ts +2 -2
- package/src/hooks/useInitProps.ts +1 -3
- package/src/hooks/useOnProgressChange.ts +1 -1
- package/src/hooks/useUpdateGestureConfig.ts +13 -0
- package/src/index.tsx +2 -2
- package/src/layouts/BaseLayout.tsx +1 -1
- package/src/layouts/ParallaxLayout.tsx +1 -1
- package/src/types.ts +122 -124
- package/README.zh-CN.md +0 -202
- package/lib/commonjs/Carousel.js +0 -2
- package/lib/commonjs/Carousel.js.map +0 -1
- package/lib/commonjs/LazyView.js +0 -2
- package/lib/commonjs/LazyView.js.map +0 -1
- package/lib/commonjs/ScrollViewGesture.js +0 -2
- package/lib/commonjs/ScrollViewGesture.js.map +0 -1
- package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js +0 -2
- package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
- package/lib/commonjs/hooks/index.test.js +0 -2
- package/lib/commonjs/hooks/index.test.js.map +0 -1
- package/lib/commonjs/utils/computedWithAutoFillData.js +0 -2
- package/lib/commonjs/utils/computedWithAutoFillData.js.map +0 -1
- package/lib/commonjs/utils/dealWithAnimation.js +0 -2
- package/lib/commonjs/utils/dealWithAnimation.js.map +0 -1
- package/lib/commonjs/utils/handlerOffsetDirection.js +0 -2
- package/lib/commonjs/utils/handlerOffsetDirection.js.map +0 -1
- package/lib/module/Carousel.js.map +0 -1
- package/lib/module/ScrollViewGesture.js.map +0 -1
- package/lib/module/utils/computedWithAutoFillData.js.map +0 -1
- package/lib/module/utils/dealWithAnimation.js.map +0 -1
- package/lib/module/utils/handlerOffsetDirection.js.map +0 -1
- /package/lib/module/{LazyView.js → components/LazyView.js} +0 -0
- /package/lib/module/{LazyView.js.map → components/LazyView.js.map} +0 -0
- /package/lib/module/{hooks → utils}/computeNewIndexWhenDataChanges.js +0 -0
- /package/lib/module/{hooks → utils}/computeNewIndexWhenDataChanges.js.map +0 -0
- /package/lib/module/{hooks → utils}/index.test.js +0 -0
- /package/lib/module/{hooks → utils}/index.test.js.map +0 -0
- /package/lib/typescript/{LazyView.d.ts → components/LazyView.d.ts} +0 -0
- /package/lib/typescript/{ScrollViewGesture.d.ts → components/ScrollViewGesture.d.ts} +0 -0
- /package/lib/typescript/{hooks → utils}/computeNewIndexWhenDataChanges.d.ts +0 -0
- /package/lib/typescript/utils/{computedWithAutoFillData.d.ts → computed-with-auto-fill-data.d.ts} +0 -0
- /package/lib/typescript/utils/{dealWithAnimation.d.ts → deal-with-animation.d.ts} +0 -0
- /package/lib/typescript/utils/{handlerOffsetDirection.d.ts → handleroffset-direction.d.ts} +0 -0
- /package/lib/typescript/{hooks → utils}/index.test.d.ts +0 -0
- /package/src/{LazyView.tsx → components/LazyView.tsx} +0 -0
- /package/src/{hooks → utils}/computeNewIndexWhenDataChanges.ts +0 -0
- /package/src/utils/{computedWithAutoFillData.ts → computed-with-auto-fill-data.ts} +0 -0
- /package/src/utils/{dealWithAnimation.ts → deal-with-animation.ts} +0 -0
- /package/src/utils/{handlerOffsetDirection.ts → handleroffset-direction.ts} +0 -0
- /package/src/{hooks → utils}/index.test.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["stack.ts"],"names":["screen","Dimensions","get","horizontalStackLayout","modeConfig","_value","showLength","snapDirection","moveSize","width","stackInterval","scaleInterval","opacityInterval","rotateZDeg","transform","getCommonVariables","value","validLength","inputRange","getCommonStyles","zIndex","opacity","styles","translateX","scale","rotateZ","Extrapolate","CLAMP","push","interpolate","useHorizontalStackLayout","customAnimationConfig","customConfig","config","type","viewCount","layout","verticalStackLayout","translateY","opts","easeInOutCubic","v","page","Math","floor","abs","diff","Error","Number","MIN_VALUE"],"mappings":"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","sourcesContent":["import { useMemo } from \"react\";\nimport type { TransformsStyle, ViewStyle } from \"react-native\";\nimport { Dimensions } from \"react-native\";\nimport { Extrapolate, interpolate } from \"react-native-reanimated\";\n\nimport type { IComputedDirectionTypes, CustomConfig } from \"../types\";\n\nconst screen = Dimensions.get(\"window\");\n\nexport interface ILayoutConfig {\n showLength?: number\n moveSize?: number\n stackInterval?: number\n scaleInterval?: number\n opacityInterval?: number\n rotateZDeg?: number\n snapDirection?: \"left\" | \"right\"\n}\n\nexport type TStackModeProps = IComputedDirectionTypes<{\n /**\n * Carousel Animated transitions.\n */\n mode?: \"horizontal-stack\" | \"vertical-stack\"\n /**\n * Stack animation style.\n * @default\n * mode: 'vertical',\n * snapDirection: 'right',\n * moveSize: window.width,\n * stackInterval: 30,\n * scaleInterval: 0.08,\n * rotateZDeg: 135,\n */\n modeConfig?: ILayoutConfig\n}>;\n\nexport function horizontalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n \"worklet\";\n\n const {\n showLength,\n snapDirection = \"left\",\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n\n const transform: TransformsStyle[\"transform\"] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n\n if (snapDirection === \"left\") {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, validLength * stackInterval],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP,\n )}deg`;\n }\n else if (snapDirection === \"right\") {\n translateX = interpolate(\n value,\n inputRange,\n [-validLength * stackInterval, 0, moveSize],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP,\n )}deg`;\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n },\n );\n\n return styles;\n };\n}\n\nexport function useHorizontalStackLayout(\n customAnimationConfig: ILayoutConfig = {},\n customConfig: CustomConfig = {},\n) {\n const config = useMemo(\n () => ({\n type:\n customAnimationConfig.snapDirection === \"right\"\n ? \"negative\"\n : \"positive\",\n viewCount: customAnimationConfig.showLength,\n ...customConfig,\n }),\n [customAnimationConfig, customConfig],\n );\n\n return {\n layout: horizontalStackLayout(customAnimationConfig),\n config,\n };\n}\n\nexport function verticalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n \"worklet\";\n\n const {\n showLength,\n snapDirection = \"left\",\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n const transform: TransformsStyle[\"transform\"] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n let translateY: number;\n\n if (snapDirection === \"left\") {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, 0],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP,\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [0, 0, validLength * stackInterval],\n Extrapolate.CLAMP,\n );\n }\n else if (snapDirection === \"right\") {\n translateX = interpolate(\n value,\n inputRange,\n [0, 0, moveSize],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP,\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [validLength * stackInterval, 0, 0],\n Extrapolate.CLAMP,\n );\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n },\n {\n translateY: translateY!,\n },\n );\n\n return styles;\n };\n}\n\nfunction getCommonVariables(opts: {\n value: number\n showLength: number\n snapDirection: \"left\" | \"right\"\n}) {\n \"worklet\";\n\n const { showLength, value: _value, snapDirection } = opts;\n function easeInOutCubic(v: number): number {\n return v < 0.5 ? 4 * v * v * v : 1 - (-2 * v + 2) ** 3 / 2;\n }\n const page = Math.floor(Math.abs(_value));\n const diff = Math.abs(_value) % 1;\n const value\n = _value < 0\n ? -(page + easeInOutCubic(diff))\n : page + easeInOutCubic(diff);\n const validLength = showLength! - 1;\n\n let inputRange: [number, number, number];\n\n if (snapDirection === \"left\")\n inputRange = [-1, 0, validLength];\n else if (snapDirection === \"right\")\n inputRange = [-validLength, 0, 1];\n else\n throw new Error(\"snapDirection must be set to either left or right\");\n\n return {\n inputRange,\n validLength,\n value,\n };\n}\n\nfunction getCommonStyles(opts: {\n value: number\n validLength: number\n opacityInterval: number\n snapDirection: \"left\" | \"right\"\n}) {\n \"worklet\";\n\n const { snapDirection, validLength, value, opacityInterval } = opts;\n\n let zIndex: number;\n let opacity: number;\n\n if (snapDirection === \"left\") {\n zIndex\n = Math.floor(\n interpolate(\n value,\n [-1.5, -1, -1 + Number.MIN_VALUE, 0, validLength],\n [\n Number.MIN_VALUE,\n validLength,\n validLength,\n validLength - 1,\n -1,\n ],\n ) * 10000,\n ) / 100;\n\n opacity = interpolate(\n value,\n [-1, 0, validLength - 1, validLength],\n [0.25, 1, 1 - (validLength - 1) * opacityInterval, 0.25],\n );\n }\n else if (snapDirection === \"right\") {\n zIndex\n = Math.floor(\n interpolate(\n value,\n [-validLength, 0, 1 - Number.MIN_VALUE, 1, 1.5],\n [\n 1,\n validLength - 1,\n validLength,\n validLength,\n Number.MIN_VALUE,\n ],\n ) * 10000,\n ) / 100;\n opacity = interpolate(\n value,\n [-validLength, 1 - validLength, 0, 1],\n [0.25, 1 - (validLength - 1) * opacityInterval, 1, 0.25],\n );\n }\n else {\n throw new Error(\"snapDirection must be set to either left or right\");\n }\n\n return {\n zIndex,\n opacity,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["stack.ts"],"names":["screen","Dimensions","get","horizontalStackLayout","modeConfig","_value","showLength","snapDirection","moveSize","width","stackInterval","scaleInterval","opacityInterval","rotateZDeg","transform","validLength","value","inputRange","getCommonVariables","zIndex","opacity","getCommonStyles","styles","translateX","scale","rotateZ","Extrapolate","CLAMP","push","useHorizontalStackLayout","customAnimationConfig","customConfig","config","type","viewCount","layout","verticalStackLayout","translateY","opts","easeInOutCubic","v","page","Math","floor","abs","diff","Error","Number","MIN_VALUE"],"mappings":"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","sourcesContent":["import { useMemo } from \"react\";\nimport type { TransformsStyle, ViewStyle } from \"react-native\";\nimport { Dimensions } from \"react-native\";\nimport { Extrapolate, interpolate } from \"react-native-reanimated\";\n\nimport type { IComputedDirectionTypes, CustomConfig } from \"../types\";\n\nconst screen = Dimensions.get(\"window\");\n\nexport interface ILayoutConfig {\n showLength?: number\n moveSize?: number\n stackInterval?: number\n scaleInterval?: number\n opacityInterval?: number\n rotateZDeg?: number\n snapDirection?: \"left\" | \"right\"\n}\n\nexport type TStackModeProps = IComputedDirectionTypes<{\n /**\n * Carousel Animated transitions.\n */\n mode?: \"horizontal-stack\" | \"vertical-stack\"\n /**\n * Stack animation style.\n * @default\n * mode: 'vertical',\n * snapDirection: 'right',\n * moveSize: window.width,\n * stackInterval: 30,\n * scaleInterval: 0.08,\n * rotateZDeg: 135,\n */\n modeConfig?: ILayoutConfig\n}>;\n\nexport function horizontalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n \"worklet\";\n\n const {\n showLength,\n snapDirection = \"left\",\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n\n const transform: TransformsStyle[\"transform\"] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n\n if (snapDirection === \"left\") {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, validLength * stackInterval],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP,\n )}deg`;\n }\n else if (snapDirection === \"right\") {\n translateX = interpolate(\n value,\n inputRange,\n [-validLength * stackInterval, 0, moveSize],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP,\n )}deg`;\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n },\n );\n\n return styles;\n };\n}\n\nexport function useHorizontalStackLayout(\n customAnimationConfig: ILayoutConfig = {},\n customConfig: CustomConfig = {},\n) {\n const config = useMemo(\n () => ({\n type:\n customAnimationConfig.snapDirection === \"right\"\n ? \"negative\"\n : \"positive\",\n viewCount: customAnimationConfig.showLength,\n ...customConfig,\n }),\n [customAnimationConfig, customConfig],\n );\n\n return {\n layout: horizontalStackLayout(customAnimationConfig),\n config,\n };\n}\n\nexport function verticalStackLayout(modeConfig: ILayoutConfig = {}) {\n return (_value: number) => {\n \"worklet\";\n\n const {\n showLength,\n snapDirection = \"left\",\n moveSize = screen.width,\n stackInterval = 18,\n scaleInterval = 0.04,\n opacityInterval = 0.1,\n rotateZDeg = 30,\n } = modeConfig;\n const transform: TransformsStyle[\"transform\"] = [];\n const { validLength, value, inputRange } = getCommonVariables({\n showLength: showLength!,\n value: _value,\n snapDirection,\n });\n const { zIndex, opacity } = getCommonStyles({\n validLength,\n value,\n opacityInterval,\n snapDirection,\n });\n\n const styles: ViewStyle = {\n transform,\n zIndex,\n opacity,\n };\n\n let translateX: number;\n let scale: number;\n let rotateZ: string;\n let translateY: number;\n\n if (snapDirection === \"left\") {\n translateX = interpolate(\n value,\n inputRange,\n [-moveSize, 0, 0],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1, 1, 1 - validLength * scaleInterval],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [-rotateZDeg, 0, 0],\n Extrapolate.CLAMP,\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [0, 0, validLength * stackInterval],\n Extrapolate.CLAMP,\n );\n }\n else if (snapDirection === \"right\") {\n translateX = interpolate(\n value,\n inputRange,\n [0, 0, moveSize],\n Extrapolate.CLAMP,\n );\n scale = interpolate(\n value,\n inputRange,\n [1 - validLength * scaleInterval, 1, 1],\n Extrapolate.CLAMP,\n );\n rotateZ = `${interpolate(\n value,\n inputRange,\n [0, 0, rotateZDeg],\n Extrapolate.CLAMP,\n )}deg`;\n translateY = interpolate(\n value,\n inputRange,\n [validLength * stackInterval, 0, 0],\n Extrapolate.CLAMP,\n );\n }\n\n transform.push(\n {\n translateX: translateX!,\n },\n {\n scale: scale!,\n },\n {\n rotateZ: rotateZ!,\n },\n {\n translateY: translateY!,\n },\n );\n\n return styles;\n };\n}\n\nfunction getCommonVariables(opts: {\n value: number\n showLength: number\n snapDirection: \"left\" | \"right\"\n}) {\n \"worklet\";\n\n const { showLength, value: _value, snapDirection } = opts;\n function easeInOutCubic(v: number): number {\n return v < 0.5 ? 4 * v * v * v : 1 - (-2 * v + 2) ** 3 / 2;\n }\n const page = Math.floor(Math.abs(_value));\n const diff = Math.abs(_value) % 1;\n const value\n = _value < 0\n ? -(page + easeInOutCubic(diff))\n : page + easeInOutCubic(diff);\n const validLength = showLength! - 1;\n\n let inputRange: [number, number, number];\n\n if (snapDirection === \"left\")\n inputRange = [-1, 0, validLength];\n else if (snapDirection === \"right\")\n inputRange = [-validLength, 0, 1];\n else\n throw new Error(\"snapDirection must be set to either left or right\");\n\n return {\n inputRange,\n validLength,\n value,\n };\n}\n\nfunction getCommonStyles(opts: {\n value: number\n validLength: number\n opacityInterval: number\n snapDirection: \"left\" | \"right\"\n}) {\n \"worklet\";\n\n const { snapDirection, validLength, value, opacityInterval } = opts;\n\n let zIndex: number;\n let opacity: number;\n\n if (snapDirection === \"left\") {\n zIndex\n = Math.floor(\n interpolate(\n value,\n [-1.5, -1, -1 + Number.MIN_VALUE, 0, validLength],\n [\n Number.MIN_VALUE,\n validLength,\n validLength,\n validLength - 1,\n -1,\n ],\n ) * 10000,\n ) / 100;\n\n opacity = interpolate(\n value,\n [-1, 0, validLength - 1, validLength],\n [0.25, 1, 1 - (validLength - 1) * opacityInterval, 0.25],\n );\n }\n else if (snapDirection === \"right\") {\n zIndex\n = Math.floor(\n interpolate(\n value,\n [-validLength, 0, 1 - Number.MIN_VALUE, 1, 1.5],\n [\n 1,\n validLength - 1,\n validLength,\n validLength,\n Number.MIN_VALUE,\n ],\n ) * 10000,\n ) / 100;\n opacity = interpolate(\n value,\n [-validLength, 1 - validLength, 0, 1],\n [0.25, 1 - (validLength - 1) * opacityInterval, 1, 0.25],\n );\n }\n else {\n throw new Error(\"snapDirection must be set to either left or right\");\n }\n\n return {\n zIndex,\n opacity,\n };\n}\n"]}
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CTX = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
const CTX = /*#__PURE__*/_react.default.createContext({});
|
|
13
|
+
|
|
14
|
+
exports.CTX = CTX;
|
|
2
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["CTX","React","createContext"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["CTX","React","createContext"],"mappings":";;;;;;;AAAA;;;;AAYO,MAAMA,GAAG,gBAAGC,eAAMC,aAAN,CAA8B,EAA9B,CAAZ","sourcesContent":["import React from \"react\";\n\nimport type { TInitializeCarouselProps } from \"../hooks/useInitProps\";\n\nexport interface IContext {\n props: TInitializeCarouselProps<any>\n common: {\n size: number\n validLength: number\n }\n}\n\nexport const CTX = React.createContext<IContext>({} as IContext);\n"]}
|
package/lib/commonjs/types.js
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.computeNewIndexWhenDataChanges = computeNewIndexWhenDataChanges;
|
|
7
|
+
exports.omitZero = omitZero;
|
|
8
|
+
|
|
9
|
+
function omitZero(a, b) {
|
|
10
|
+
"worklet";
|
|
11
|
+
|
|
12
|
+
if (a === 0) return 0;
|
|
13
|
+
return b;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function computeNewIndexWhenDataChanges(params) {
|
|
17
|
+
"worklet";
|
|
18
|
+
|
|
19
|
+
const {
|
|
20
|
+
direction,
|
|
21
|
+
handlerOffset: _handlerOffset,
|
|
22
|
+
size,
|
|
23
|
+
previousLength,
|
|
24
|
+
currentLength
|
|
25
|
+
} = params;
|
|
26
|
+
let handlerOffset = _handlerOffset;
|
|
27
|
+
let positionIndex;
|
|
28
|
+
let round;
|
|
29
|
+
const isPositive = direction < 0;
|
|
30
|
+
|
|
31
|
+
if (isPositive) {
|
|
32
|
+
positionIndex = Math.abs(handlerOffset) / size;
|
|
33
|
+
round = parseInt(String(omitZero(previousLength, positionIndex / previousLength)));
|
|
34
|
+
} else {
|
|
35
|
+
positionIndex = (Math.abs(handlerOffset) - size) / size;
|
|
36
|
+
round = parseInt(String(omitZero(previousLength, positionIndex / previousLength))) + 1;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const prevOffset = omitZero(previousLength, positionIndex % previousLength);
|
|
40
|
+
const prevIndex = isPositive ? prevOffset : previousLength - prevOffset - 1;
|
|
41
|
+
const changedLength = round * (currentLength - previousLength);
|
|
42
|
+
const changedOffset = changedLength * size;
|
|
43
|
+
|
|
44
|
+
if (prevIndex > currentLength - 1 && currentLength < previousLength) {
|
|
45
|
+
if (isPositive) handlerOffset = (currentLength - 1) * size * direction;else handlerOffset = (currentLength - 1) * size * -1;
|
|
46
|
+
} else {
|
|
47
|
+
handlerOffset += changedOffset * direction;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return handlerOffset;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=computeNewIndexWhenDataChanges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["computeNewIndexWhenDataChanges.ts"],"names":["omitZero","a","b","computeNewIndexWhenDataChanges","params","direction","handlerOffset","_handlerOffset","size","previousLength","currentLength","positionIndex","round","isPositive","Math","abs","parseInt","String","prevOffset","prevIndex","changedLength","changedOffset"],"mappings":";;;;;;;;AAAO,SAASA,QAAT,CAAkBC,CAAlB,EAA6BC,CAA7B,EAAwC;AAC7C;;AACA,MAAID,CAAC,KAAK,CAAV,EACE,OAAO,CAAP;AAEF,SAAOC,CAAP;AACD;;AAEM,SAASC,8BAAT,CAAwCC,MAAxC,EAMJ;AACD;;AACA,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,aAAa,EAAEC,cAA5B;AAA4CC,IAAAA,IAA5C;AAAkDC,IAAAA,cAAlD;AAAkEC,IAAAA;AAAlE,MAAoFN,MAA1F;AAEA,MAAIE,aAAa,GAAGC,cAApB;AACA,MAAII,aAAJ;AACA,MAAIC,KAAJ;AAEA,QAAMC,UAAU,GAAGR,SAAS,GAAG,CAA/B;;AAEA,MAAIQ,UAAJ,EAAgB;AACdF,IAAAA,aAAa,GAAIG,IAAI,CAACC,GAAL,CAAST,aAAT,CAAD,GAA4BE,IAA5C;AACAI,IAAAA,KAAK,GAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,EAAiBE,aAAa,GAAGF,cAAjC,CAAT,CAAP,CAAhB;AACD,GAHD,MAIK;AACHE,IAAAA,aAAa,GAAG,CAACG,IAAI,CAACC,GAAL,CAAST,aAAT,IAA0BE,IAA3B,IAAmCA,IAAnD;AACAI,IAAAA,KAAK,GAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,EAAiBE,aAAa,GAAGF,cAAjC,CAAT,CAAP,CAAR,GAA6E,CAArF;AACD;;AAED,QAAMS,UAAU,GAAGlB,QAAQ,CAACS,cAAD,EAAiBE,aAAa,GAAGF,cAAjC,CAA3B;AACA,QAAMU,SAAS,GAAGN,UAAU,GAAGK,UAAH,GAAgBT,cAAc,GAAGS,UAAjB,GAA8B,CAA1E;AACA,QAAME,aAAa,GAAGR,KAAK,IAAIF,aAAa,GAAGD,cAApB,CAA3B;AACA,QAAMY,aAAa,GAAGD,aAAa,GAAGZ,IAAtC;;AACA,MAAIW,SAAS,GAAGT,aAAa,GAAG,CAA5B,IAAiCA,aAAa,GAAGD,cAArD,EAAqE;AACnE,QAAII,UAAJ,EACEP,aAAa,GAAG,CAACI,aAAa,GAAG,CAAjB,IAAsBF,IAAtB,GAA6BH,SAA7C,CADF,KAIEC,aAAa,GAAG,CAACI,aAAa,GAAG,CAAjB,IAAsBF,IAAtB,GAA6B,CAAC,CAA9C;AACH,GAND,MAOK;AACHF,IAAAA,aAAa,IAAIe,aAAa,GAAGhB,SAAjC;AACD;;AAED,SAAOC,aAAP;AACD","sourcesContent":["export function omitZero(a: number, b: number) {\n \"worklet\";\n if (a === 0)\n return 0;\n\n return b;\n}\n\nexport function computeNewIndexWhenDataChanges(params: {\n direction: number\n handlerOffset: number\n size: number\n previousLength: number\n currentLength: number\n}) {\n \"worklet\";\n const { direction, handlerOffset: _handlerOffset, size, previousLength, currentLength } = params;\n\n let handlerOffset = _handlerOffset;\n let positionIndex;\n let round;\n\n const isPositive = direction < 0;\n\n if (isPositive) {\n positionIndex = (Math.abs(handlerOffset)) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength)));\n }\n else {\n positionIndex = (Math.abs(handlerOffset) - size) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength))) + 1;\n }\n\n const prevOffset = omitZero(previousLength, positionIndex % previousLength);\n const prevIndex = isPositive ? prevOffset : previousLength - prevOffset - 1;\n const changedLength = round * (currentLength - previousLength);\n const changedOffset = changedLength * size;\n if (prevIndex > currentLength - 1 && currentLength < previousLength) {\n if (isPositive)\n handlerOffset = (currentLength - 1) * size * direction;\n\n else\n handlerOffset = (currentLength - 1) * size * -1;\n }\n else {\n handlerOffset += changedOffset * direction;\n }\n\n return handlerOffset;\n}\n\n"]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.computedFillDataWithAutoFillData = computedFillDataWithAutoFillData;
|
|
7
|
+
exports.computedOffsetXValueWithAutoFillData = computedOffsetXValueWithAutoFillData;
|
|
8
|
+
exports.computedRealIndexWithAutoFillData = computedRealIndexWithAutoFillData;
|
|
9
|
+
exports.convertToSharedIndex = convertToSharedIndex;
|
|
10
|
+
|
|
11
|
+
var _constants = require("../constants");
|
|
12
|
+
|
|
13
|
+
const {
|
|
14
|
+
SINGLE_ITEM,
|
|
15
|
+
DOUBLE_ITEM
|
|
16
|
+
} = _constants.DATA_LENGTH;
|
|
17
|
+
|
|
18
|
+
function isAutoFillData(params) {
|
|
19
|
+
"worklet";
|
|
20
|
+
|
|
21
|
+
return !!params.loop && !!params.autoFillData;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function convertToSharedIndex(params) {
|
|
25
|
+
"worklet";
|
|
26
|
+
|
|
27
|
+
const {
|
|
28
|
+
loop,
|
|
29
|
+
rawDataLength,
|
|
30
|
+
index,
|
|
31
|
+
autoFillData
|
|
32
|
+
} = params;
|
|
33
|
+
|
|
34
|
+
if (isAutoFillData({
|
|
35
|
+
loop,
|
|
36
|
+
autoFillData
|
|
37
|
+
})) {
|
|
38
|
+
switch (rawDataLength) {
|
|
39
|
+
case SINGLE_ITEM:
|
|
40
|
+
return 0;
|
|
41
|
+
|
|
42
|
+
case DOUBLE_ITEM:
|
|
43
|
+
return index % 2;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return index;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function computedOffsetXValueWithAutoFillData(params) {
|
|
51
|
+
"worklet";
|
|
52
|
+
|
|
53
|
+
const {
|
|
54
|
+
rawDataLength,
|
|
55
|
+
value,
|
|
56
|
+
size,
|
|
57
|
+
loop,
|
|
58
|
+
autoFillData
|
|
59
|
+
} = params;
|
|
60
|
+
|
|
61
|
+
if (isAutoFillData({
|
|
62
|
+
loop,
|
|
63
|
+
autoFillData
|
|
64
|
+
})) {
|
|
65
|
+
switch (rawDataLength) {
|
|
66
|
+
case SINGLE_ITEM:
|
|
67
|
+
return value % size;
|
|
68
|
+
|
|
69
|
+
case DOUBLE_ITEM:
|
|
70
|
+
return value % (size * 2);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function computedRealIndexWithAutoFillData(params) {
|
|
78
|
+
const {
|
|
79
|
+
index,
|
|
80
|
+
dataLength,
|
|
81
|
+
loop,
|
|
82
|
+
autoFillData
|
|
83
|
+
} = params;
|
|
84
|
+
|
|
85
|
+
if (isAutoFillData({
|
|
86
|
+
loop,
|
|
87
|
+
autoFillData
|
|
88
|
+
})) {
|
|
89
|
+
switch (dataLength) {
|
|
90
|
+
case SINGLE_ITEM:
|
|
91
|
+
return index % 1;
|
|
92
|
+
|
|
93
|
+
case DOUBLE_ITEM:
|
|
94
|
+
return index % 2;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return index;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function computedFillDataWithAutoFillData(params) {
|
|
102
|
+
const {
|
|
103
|
+
data,
|
|
104
|
+
loop,
|
|
105
|
+
autoFillData,
|
|
106
|
+
dataLength
|
|
107
|
+
} = params;
|
|
108
|
+
|
|
109
|
+
if (isAutoFillData({
|
|
110
|
+
loop,
|
|
111
|
+
autoFillData
|
|
112
|
+
})) {
|
|
113
|
+
switch (dataLength) {
|
|
114
|
+
case SINGLE_ITEM:
|
|
115
|
+
return [data[0], data[0], data[0]];
|
|
116
|
+
|
|
117
|
+
case DOUBLE_ITEM:
|
|
118
|
+
return [data[0], data[1], data[0], data[1]];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return data;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=computed-with-auto-fill-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["computed-with-auto-fill-data.ts"],"names":["SINGLE_ITEM","DOUBLE_ITEM","DATA_LENGTH","isAutoFillData","params","loop","autoFillData","convertToSharedIndex","rawDataLength","index","computedOffsetXValueWithAutoFillData","value","size","computedRealIndexWithAutoFillData","dataLength","computedFillDataWithAutoFillData","data"],"mappings":";;;;;;;;;;AAAA;;AAEA,MAAM;AAAEA,EAAAA,WAAF;AAAeC,EAAAA;AAAf,IAA+BC,sBAArC;;AAEA,SAASC,cAAT,CAAwBC,MAAxB,EAA0E;AACxE;;AACA,SAAO,CAAC,CAACA,MAAM,CAACC,IAAT,IAAiB,CAAC,CAACD,MAAM,CAACE,YAAjC;AACD;;AAOM,SAASC,oBAAT,CACLH,MADK,EAEL;AACA;;AACA,QAAM;AAAEC,IAAAA,IAAF;AAAQG,IAAAA,aAAR;AAAuBC,IAAAA,KAAvB;AAA8BH,IAAAA;AAA9B,MAA+CF,MAArD;;AAEA,MAAID,cAAc,CAAC;AAAEE,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,CAAlB,EAA4C;AAC1C,YAAQE,aAAR;AACE,WAAKR,WAAL;AACE,eAAO,CAAP;;AACF,WAAKC,WAAL;AACE,eAAOQ,KAAK,GAAG,CAAf;AAJJ;AAMD;;AAED,SAAOA,KAAP;AACD;;AAEM,SAASC,oCAAT,CACLN,MADK,EAML;AACA;;AAEA,QAAM;AAAEI,IAAAA,aAAF;AAAiBG,IAAAA,KAAjB;AAAwBC,IAAAA,IAAxB;AAA8BP,IAAAA,IAA9B;AAAoCC,IAAAA;AAApC,MAAqDF,MAA3D;;AAEA,MAAID,cAAc,CAAC;AAAEE,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,CAAlB,EAA4C;AAC1C,YAAQE,aAAR;AACE,WAAKR,WAAL;AACE,eAAOW,KAAK,GAAGC,IAAf;;AACF,WAAKX,WAAL;AACE,eAAOU,KAAK,IAAIC,IAAI,GAAG,CAAX,CAAZ;AAJJ;AAMD;;AAED,SAAOD,KAAP;AACD;;AAEM,SAASE,iCAAT,CACLT,MADK,EAKL;AACA,QAAM;AAAEK,IAAAA,KAAF;AAASK,IAAAA,UAAT;AAAqBT,IAAAA,IAArB;AAA2BC,IAAAA;AAA3B,MAA4CF,MAAlD;;AAEA,MAAID,cAAc,CAAC;AAAEE,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,CAAlB,EAA4C;AAC1C,YAAQQ,UAAR;AACE,WAAKd,WAAL;AACE,eAAOS,KAAK,GAAG,CAAf;;AACF,WAAKR,WAAL;AACE,eAAOQ,KAAK,GAAG,CAAf;AAJJ;AAMD;;AAED,SAAOA,KAAP;AACD;;AAEM,SAASM,gCAAT,CACLX,MADK,EAKA;AACL,QAAM;AAAEY,IAAAA,IAAF;AAAQX,IAAAA,IAAR;AAAcC,IAAAA,YAAd;AAA4BQ,IAAAA;AAA5B,MAA2CV,MAAjD;;AAEA,MAAID,cAAc,CAAC;AAAEE,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,CAAlB,EAA4C;AAC1C,YAAQQ,UAAR;AACE,WAAKd,WAAL;AACE,eAAO,CAACgB,IAAI,CAAC,CAAD,CAAL,EAAUA,IAAI,CAAC,CAAD,CAAd,EAAmBA,IAAI,CAAC,CAAD,CAAvB,CAAP;;AACF,WAAKf,WAAL;AACE,eAAO,CAACe,IAAI,CAAC,CAAD,CAAL,EAAUA,IAAI,CAAC,CAAD,CAAd,EAAmBA,IAAI,CAAC,CAAD,CAAvB,EAA4BA,IAAI,CAAC,CAAD,CAAhC,CAAP;AAJJ;AAMD;;AAED,SAAOA,IAAP;AACD","sourcesContent":["import { DATA_LENGTH } from \"../constants\";\n\nconst { SINGLE_ITEM, DOUBLE_ITEM } = DATA_LENGTH;\n\nfunction isAutoFillData(params: { autoFillData: boolean; loop: boolean }) {\n \"worklet\";\n return !!params.loop && !!params.autoFillData;\n}\n\ntype BaseParams<T extends object = {}> = {\n autoFillData: boolean\n loop: boolean\n} & T;\n\nexport function convertToSharedIndex(\n params: BaseParams<{ index: number; rawDataLength: number }>,\n) {\n \"worklet\";\n const { loop, rawDataLength, index, autoFillData } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (rawDataLength) {\n case SINGLE_ITEM:\n return 0;\n case DOUBLE_ITEM:\n return index % 2;\n }\n }\n\n return index;\n}\n\nexport function computedOffsetXValueWithAutoFillData(\n params: BaseParams<{\n rawDataLength: number\n value: number\n size: number\n }>,\n) {\n \"worklet\";\n\n const { rawDataLength, value, size, loop, autoFillData } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (rawDataLength) {\n case SINGLE_ITEM:\n return value % size;\n case DOUBLE_ITEM:\n return value % (size * 2);\n }\n }\n\n return value;\n}\n\nexport function computedRealIndexWithAutoFillData(\n params: BaseParams<{\n index: number\n dataLength: number\n }>,\n) {\n const { index, dataLength, loop, autoFillData } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (dataLength) {\n case SINGLE_ITEM:\n return index % 1;\n case DOUBLE_ITEM:\n return index % 2;\n }\n }\n\n return index;\n}\n\nexport function computedFillDataWithAutoFillData<T>(\n params: BaseParams<{\n data: T[]\n dataLength: number\n }>,\n): T[] {\n const { data, loop, autoFillData, dataLength } = params;\n\n if (isAutoFillData({ loop, autoFillData })) {\n switch (dataLength) {\n case SINGLE_ITEM:\n return [data[0], data[0], data[0]];\n case DOUBLE_ITEM:\n return [data[0], data[1], data[0], data[1]];\n }\n }\n\n return data;\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.dealWithAnimation = dealWithAnimation;
|
|
7
|
+
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
|
|
10
|
+
function dealWithAnimation(withAnimation) {
|
|
11
|
+
"worklet";
|
|
12
|
+
|
|
13
|
+
switch (withAnimation.type) {
|
|
14
|
+
case "spring":
|
|
15
|
+
return (value, cb) => (0, _reactNativeReanimated.withSpring)(value, withAnimation.config, isFinished => cb(isFinished));
|
|
16
|
+
|
|
17
|
+
case "timing":
|
|
18
|
+
return (value, cb) => (0, _reactNativeReanimated.withTiming)(value, withAnimation.config, isFinished => cb(isFinished));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=deal-with-animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["deal-with-animation.ts"],"names":["dealWithAnimation","withAnimation","type","value","cb","config","isFinished"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,iBAAT,CACLC,aADK,EAEyD;AAC9D;;AACA,UAAQA,aAAa,CAACC,IAAtB;AACE,SAAK,QAAL;AACE,aAAO,CAACC,KAAD,EAAQC,EAAR,KAAe,uCAAWD,KAAX,EAAkBF,aAAa,CAACI,MAAhC,EAAwCC,UAAU,IACtEF,EAAE,CAACE,UAAD,CADkB,CAAtB;;AAGF,SAAK,QAAL;AACE,aAAO,CAACH,KAAD,EAAQC,EAAR,KAAe,uCAAWD,KAAX,EAAkBF,aAAa,CAACI,MAAhC,EAAwCC,UAAU,IACtEF,EAAE,CAACE,UAAD,CADkB,CAAtB;AANJ;AAUD","sourcesContent":["import { withSpring, withTiming } from \"react-native-reanimated\";\n\nimport type { WithAnimation } from \"../types\";\n\nexport function dealWithAnimation(\n withAnimation: WithAnimation,\n): (value: number, cb: (isFinished: boolean) => void) => number {\n \"worklet\";\n switch (withAnimation.type) {\n case \"spring\":\n return (value, cb) => withSpring(value, withAnimation.config, isFinished =>\n cb(isFinished as boolean),\n );\n case \"timing\":\n return (value, cb) => withTiming(value, withAnimation.config, isFinished =>\n cb(isFinished as boolean),\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.handlerOffsetDirection = handlerOffsetDirection;
|
|
7
|
+
|
|
8
|
+
function handlerOffsetDirection(handlerOffset) {
|
|
9
|
+
"worklet";
|
|
10
|
+
|
|
11
|
+
const isPositiveZero = Object.is(handlerOffset.value, +0);
|
|
12
|
+
const isNegativeZero = Object.is(handlerOffset.value, -0);
|
|
13
|
+
const direction = isPositiveZero ? 1 : isNegativeZero ? -1 : Math.sign(handlerOffset.value);
|
|
14
|
+
return direction;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=handleroffset-direction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["handleroffset-direction.ts"],"names":["handlerOffsetDirection","handlerOffset","isPositiveZero","Object","is","value","isNegativeZero","direction","Math","sign"],"mappings":";;;;;;;AAEO,SAASA,sBAAT,CAAgCC,aAAhC,EAA4E;AACjF;;AAEA,QAAMC,cAAc,GAAGC,MAAM,CAACC,EAAP,CAAUH,aAAa,CAACI,KAAxB,EAA+B,CAAC,CAAhC,CAAvB;AACA,QAAMC,cAAc,GAAGH,MAAM,CAACC,EAAP,CAAUH,aAAa,CAACI,KAAxB,EAA+B,CAAC,CAAhC,CAAvB;AACA,QAAME,SAAS,GAAGL,cAAc,GAC5B,CAD4B,GAE5BI,cAAc,GACZ,CAAC,CADW,GAEZE,IAAI,CAACC,IAAL,CAAUR,aAAa,CAACI,KAAxB,CAJN;AAMA,SAAOE,SAAP;AACD","sourcesContent":["import type { SharedValue } from \"react-native-reanimated\";\n\nexport function handlerOffsetDirection(handlerOffset: SharedValue<number>): -1 | 1 {\n \"worklet\";\n\n const isPositiveZero = Object.is(handlerOffset.value, +0);\n const isNegativeZero = Object.is(handlerOffset.value, -0);\n const direction = isPositiveZero\n ? 1\n : isNegativeZero\n ? -1\n : Math.sign(handlerOffset.value) as -1 | 1;\n\n return direction;\n}\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _computeNewIndexWhenDataChanges = require("./computeNewIndexWhenDataChanges");
|
|
4
|
+
|
|
5
|
+
describe("should work as expected", () => {
|
|
6
|
+
const size = 375;
|
|
7
|
+
const positive = -1;
|
|
8
|
+
const negative = 1;
|
|
9
|
+
|
|
10
|
+
const params = params => {
|
|
11
|
+
const {
|
|
12
|
+
currentIndex,
|
|
13
|
+
direction: _direction,
|
|
14
|
+
previousLength,
|
|
15
|
+
currentLength
|
|
16
|
+
} = params;
|
|
17
|
+
const direction = _direction === "negative" ? negative : positive;
|
|
18
|
+
return {
|
|
19
|
+
direction,
|
|
20
|
+
handlerOffset: size * currentIndex * direction,
|
|
21
|
+
size,
|
|
22
|
+
previousLength,
|
|
23
|
+
currentLength
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
it("The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.", async () => {
|
|
28
|
+
const currentIndex = 1;
|
|
29
|
+
const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
|
|
30
|
+
currentIndex,
|
|
31
|
+
direction: "negative",
|
|
32
|
+
previousLength: 4,
|
|
33
|
+
currentLength: 3
|
|
34
|
+
}));
|
|
35
|
+
expect(handlerOffset / size).toBe(2 * positive);
|
|
36
|
+
});
|
|
37
|
+
it("The direction is negative, Changing length of data set from 4 to 3, the index remains original.", async () => {
|
|
38
|
+
const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
|
|
39
|
+
currentIndex: 2,
|
|
40
|
+
direction: "negative",
|
|
41
|
+
previousLength: 4,
|
|
42
|
+
currentLength: 3
|
|
43
|
+
}));
|
|
44
|
+
expect(handlerOffset / size).toBe(1 * negative);
|
|
45
|
+
});
|
|
46
|
+
it("The direction is positive, Changing length of data set from 4 to 5, the index remains original.", async () => {
|
|
47
|
+
const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
|
|
48
|
+
currentIndex: 3,
|
|
49
|
+
direction: "positive",
|
|
50
|
+
previousLength: 4,
|
|
51
|
+
currentLength: 5
|
|
52
|
+
}));
|
|
53
|
+
expect(handlerOffset / size).toBe(3 * positive);
|
|
54
|
+
});
|
|
55
|
+
it("The direction is negative, Changing length of data set from 4 to 5, the index remains original.", async () => {
|
|
56
|
+
const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
|
|
57
|
+
currentIndex: 3,
|
|
58
|
+
direction: "negative",
|
|
59
|
+
previousLength: 4,
|
|
60
|
+
currentLength: 5
|
|
61
|
+
}));
|
|
62
|
+
expect(handlerOffset / size).toBe(4 * negative);
|
|
63
|
+
});
|
|
64
|
+
it("Changing length of data set from 0 to 3, the index remains original.", async () => {
|
|
65
|
+
const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
|
|
66
|
+
currentIndex: 0,
|
|
67
|
+
direction: "positive",
|
|
68
|
+
previousLength: 0,
|
|
69
|
+
currentLength: 3
|
|
70
|
+
}));
|
|
71
|
+
expect(handlerOffset / size).toBe(0 * positive);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.test.ts"],"names":["describe","size","positive","negative","params","currentIndex","direction","_direction","previousLength","currentLength","handlerOffset","it","expect","toBe"],"mappings":"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","sourcesContent":["import { computeNewIndexWhenDataChanges } from \"./computeNewIndexWhenDataChanges\";\n\ndescribe(\"should work as expected\", () => {\n const size = 375;\n const positive = -1;\n const negative = 1;\n\n const params = (params: {\n direction: \"positive\" | \"negative\"\n currentIndex: number\n previousLength: number\n currentLength: number\n }) => {\n const { currentIndex, direction: _direction, previousLength, currentLength } = params;\n const direction = _direction === \"negative\" ? negative : positive;\n return {\n direction,\n handlerOffset: size * currentIndex * direction,\n size,\n previousLength,\n currentLength,\n };\n };\n\n it(\"The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.\", async () => {\n const currentIndex = 1;\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(2 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 2,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(1 * negative);\n });\n\n it(\"The direction is positive, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"positive\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(3 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(4 * negative);\n });\n\n it(\"Changing length of data set from 0 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 0,\n direction: \"positive\",\n previousLength: 0,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(0 * positive);\n });\n});\n"]}
|
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.log = log;
|
|
7
|
+
exports.round = round;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* In worklet
|
|
11
|
+
* e.g. runOnJS(lop)(...);
|
|
12
|
+
*/
|
|
13
|
+
function log() {
|
|
14
|
+
// eslint-disable-next-line no-console
|
|
15
|
+
console.log(...arguments);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function round(number) {
|
|
19
|
+
"worklet";
|
|
20
|
+
|
|
21
|
+
return Math.round(number);
|
|
22
|
+
}
|
|
2
23
|
//# sourceMappingURL=log.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["log.ts"],"names":["log","console","round","number","Math"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["log.ts"],"names":["log","console","round","number","Math"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,GAAT,GAA0B;AAC/B;AACAC,EAAAA,OAAO,CAACD,GAAR,CAAY,YAAZ;AACD;;AAEM,SAASE,KAAT,CAAeC,MAAf,EAA+B;AACpC;;AACA,SAAOC,IAAI,CAACF,KAAL,CAAWC,MAAX,CAAP;AACD","sourcesContent":["/**\n * In worklet\n * e.g. runOnJS(lop)(...);\n */\nexport function log(...msg: any) {\n // eslint-disable-next-line no-console\n console.log(...msg);\n}\n\nexport function round(number: number) {\n \"worklet\";\n return Math.round(number);\n}\n"]}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
2
1
|
import React from "react";
|
|
3
2
|
import { StyleSheet } from "react-native";
|
|
4
3
|
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
5
4
|
import { runOnJS, useDerivedValue } from "react-native-reanimated";
|
|
6
|
-
import { useAutoPlay } from "./hooks/useAutoPlay";
|
|
7
|
-
import { useCarouselController } from "./hooks/useCarouselController";
|
|
8
|
-
import { useCommonVariables } from "./hooks/useCommonVariables";
|
|
9
|
-
import { useInitProps } from "./hooks/useInitProps";
|
|
10
|
-
import { useLayoutConfig } from "./hooks/useLayoutConfig";
|
|
11
|
-
import { useOnProgressChange } from "./hooks/useOnProgressChange";
|
|
12
|
-
import { usePropsErrorBoundary } from "./hooks/usePropsErrorBoundary";
|
|
13
|
-
import { useVisibleRanges } from "./hooks/useVisibleRanges";
|
|
14
|
-
import { BaseLayout } from "./layouts/BaseLayout";
|
|
15
5
|
import { ScrollViewGesture } from "./ScrollViewGesture";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
6
|
+
import { useAutoPlay } from "../hooks/useAutoPlay";
|
|
7
|
+
import { useCarouselController } from "../hooks/useCarouselController";
|
|
8
|
+
import { useCommonVariables } from "../hooks/useCommonVariables";
|
|
9
|
+
import { useInitProps } from "../hooks/useInitProps";
|
|
10
|
+
import { useLayoutConfig } from "../hooks/useLayoutConfig";
|
|
11
|
+
import { useOnProgressChange } from "../hooks/useOnProgressChange";
|
|
12
|
+
import { usePropsErrorBoundary } from "../hooks/usePropsErrorBoundary";
|
|
13
|
+
import { useVisibleRanges } from "../hooks/useVisibleRanges";
|
|
14
|
+
import { BaseLayout } from "../layouts/BaseLayout";
|
|
15
|
+
import { CTX } from "../store";
|
|
16
|
+
import { computedRealIndexWithAutoFillData } from "../utils/computed-with-auto-fill-data";
|
|
18
17
|
const Carousel = /*#__PURE__*/React.forwardRef((_props, ref) => {
|
|
19
18
|
const props = useInitProps(_props);
|
|
20
19
|
const {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Carousel.tsx"],"names":["React","StyleSheet","GestureHandlerRootView","runOnJS","useDerivedValue","ScrollViewGesture","useAutoPlay","useCarouselController","useCommonVariables","useInitProps","useLayoutConfig","useOnProgressChange","usePropsErrorBoundary","useVisibleRanges","BaseLayout","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":["import React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { GestureHandlerRootView } from \"react-native-gesture-handler\";\nimport { runOnJS, useDerivedValue } from \"react-native-reanimated\";\n\nimport { ScrollViewGesture } from \"./ScrollViewGesture\";\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 { CTX } from \"../store\";\nimport type { ICarouselInstance, TCarouselProps } from \"../types\";\nimport { computedRealIndexWithAutoFillData } from \"../utils/computed-with-auto-fill-data\";\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,13 +1,15 @@
|
|
|
1
1
|
import React, { useCallback, useMemo } from "react";
|
|
2
2
|
import { Gesture, GestureDetector } from "react-native-gesture-handler";
|
|
3
3
|
import Animated, { cancelAnimation, measure, runOnJS, useAnimatedReaction, useAnimatedRef, useDerivedValue, useSharedValue, withDecay } from "react-native-reanimated";
|
|
4
|
-
import { Easing } from "
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { Easing } from "../constants";
|
|
5
|
+
import { useUpdateGestureConfig } from "../hooks/useUpdateGestureConfig";
|
|
6
|
+
import { CTX } from "../store";
|
|
7
|
+
import { dealWithAnimation } from "../utils/deal-with-animation";
|
|
7
8
|
|
|
8
9
|
const IScrollViewGesture = props => {
|
|
9
10
|
const {
|
|
10
11
|
props: {
|
|
12
|
+
onConfigurePanGesture,
|
|
11
13
|
vertical,
|
|
12
14
|
pagingEnabled,
|
|
13
15
|
snapEnabled,
|
|
@@ -246,9 +248,15 @@ const IScrollViewGesture = props => {
|
|
|
246
248
|
|
|
247
249
|
if (!infinite) touching.value = false;
|
|
248
250
|
}, [size, infinite, touching, panOffset, translation, isHorizontal, scrollEndVelocity, scrollEndTranslation, maxScrollDistancePerSwipeIsSet, maxScrollDistancePerSwipe, endWithSpring, withSpring, onScrollEnd]);
|
|
249
|
-
const gesture = useMemo(() =>
|
|
250
|
-
|
|
251
|
-
|
|
251
|
+
const gesture = useMemo(() => {
|
|
252
|
+
const gesture = Gesture.Pan().onBegin(onGestureBegin).onUpdate(onGestureUpdate).onEnd(onGestureFinish);
|
|
253
|
+
if (onConfigurePanGesture) onConfigurePanGesture(gesture);
|
|
254
|
+
return gesture;
|
|
255
|
+
}, [onGestureBegin, onGestureUpdate, onGestureFinish, onConfigurePanGesture]);
|
|
256
|
+
useUpdateGestureConfig(gesture, {
|
|
257
|
+
enabled
|
|
258
|
+
});
|
|
259
|
+
return /*#__PURE__*/React.createElement(GestureDetector, {
|
|
252
260
|
gesture: gesture
|
|
253
261
|
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
254
262
|
ref: containerRef,
|