react-native-reanimated-carousel 4.0.0-alpha.0 → 4.0.0-alpha.10
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 +22 -162
- package/lib/commonjs/components/BaseLayout.js +95 -0
- package/lib/commonjs/components/BaseLayout.js.map +1 -0
- package/lib/commonjs/components/Carousel.js +210 -0
- package/lib/commonjs/components/Carousel.js.map +1 -0
- package/lib/commonjs/components/ItemRenderer.js +80 -0
- package/lib/commonjs/components/ItemRenderer.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 +315 -0
- package/lib/commonjs/components/ScrollViewGesture.js.map +1 -0
- package/lib/commonjs/components/rnr-demo.test.js +45 -0
- package/lib/commonjs/components/rnr-demo.test.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 +245 -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 +102 -1
- package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.test.js +38 -0
- package/lib/commonjs/hooks/useCommonVariables.test.js.map +1 -0
- 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 +51 -1
- package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.test.js +53 -0
- package/lib/commonjs/hooks/useOffsetX.test.js.map +1 -0
- package/lib/commonjs/hooks/useOnProgressChange.js +38 -1
- package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
- package/lib/commonjs/hooks/usePanGestureProxy.js +84 -0
- package/lib/commonjs/hooks/usePanGestureProxy.js.map +1 -0
- package/lib/commonjs/hooks/usePanGestureProxy.test.js +397 -0
- package/lib/commonjs/hooks/usePanGestureProxy.test.js.map +1 -0
- 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 +71 -1
- package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.test.js +162 -0
- package/lib/commonjs/hooks/useVisibleRanges.test.js.map +1 -0
- package/lib/commonjs/index.js +13 -1
- package/lib/commonjs/index.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/compute-offset-if-data-changed.js +52 -0
- package/lib/commonjs/utils/compute-offset-if-data-changed.js.map +1 -0
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js +30 -0
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js.map +1 -0
- package/lib/commonjs/utils/compute-offset-if-size-changed.js +18 -0
- package/lib/commonjs/utils/compute-offset-if-size-changed.js.map +1 -0
- package/lib/commonjs/utils/compute-offset-if-size-changed.test.js +72 -0
- package/lib/commonjs/utils/compute-offset-if-size-changed.test.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/handleroffset-direction.test.js +46 -0
- package/lib/commonjs/utils/handleroffset-direction.test.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/{layouts → components}/BaseLayout.js +6 -16
- package/lib/module/components/BaseLayout.js.map +1 -0
- package/lib/module/{Carousel.js → components/Carousel.js} +33 -52
- package/lib/module/components/Carousel.js.map +1 -0
- package/lib/module/components/ItemRenderer.js +62 -0
- package/lib/module/components/ItemRenderer.js.map +1 -0
- package/lib/module/{ScrollViewGesture.js → components/ScrollViewGesture.js} +59 -32
- package/lib/module/components/ScrollViewGesture.js.map +1 -0
- package/lib/module/components/rnr-demo.test.js +33 -0
- package/lib/module/components/rnr-demo.test.js.map +1 -0
- package/lib/module/hooks/useCarouselController.js +15 -14
- package/lib/module/hooks/useCarouselController.js.map +1 -1
- package/lib/module/hooks/useCommonVariables.js +39 -9
- package/lib/module/hooks/useCommonVariables.js.map +1 -1
- package/lib/module/hooks/useCommonVariables.test.js +34 -0
- package/lib/module/hooks/useCommonVariables.test.js.map +1 -0
- package/lib/module/hooks/useInitProps.js +1 -3
- package/lib/module/hooks/useInitProps.js.map +1 -1
- package/lib/module/hooks/useLayoutConfig.js.map +1 -1
- package/lib/module/hooks/useOffsetX.js +9 -6
- package/lib/module/hooks/useOffsetX.js.map +1 -1
- package/lib/module/hooks/useOffsetX.test.js +48 -0
- package/lib/module/hooks/useOffsetX.test.js.map +1 -0
- package/lib/module/hooks/useOnProgressChange.js +1 -1
- package/lib/module/hooks/useOnProgressChange.js.map +1 -1
- package/lib/module/hooks/usePanGestureProxy.js +71 -0
- package/lib/module/hooks/usePanGestureProxy.js.map +1 -0
- package/lib/module/hooks/usePanGestureProxy.test.js +383 -0
- package/lib/module/hooks/usePanGestureProxy.test.js.map +1 -0
- package/lib/module/hooks/useUpdateGestureConfig.js +10 -0
- package/lib/module/hooks/useUpdateGestureConfig.js.map +1 -0
- package/lib/module/hooks/useVisibleRanges.js +47 -19
- package/lib/module/hooks/useVisibleRanges.js.map +1 -1
- package/lib/module/hooks/useVisibleRanges.test.js +157 -0
- package/lib/module/hooks/useVisibleRanges.test.js.map +1 -0
- package/lib/module/index.js +1 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/{hooks/computeNewIndexWhenDataChanges.js → utils/compute-offset-if-data-changed.js} +2 -2
- package/lib/module/utils/compute-offset-if-data-changed.js.map +1 -0
- package/lib/module/utils/compute-offset-if-data-changed.test.js +27 -0
- package/lib/module/utils/compute-offset-if-data-changed.test.js.map +1 -0
- package/lib/module/utils/compute-offset-if-size-changed.js +11 -0
- package/lib/module/utils/compute-offset-if-size-changed.js.map +1 -0
- package/lib/module/utils/compute-offset-if-size-changed.test.js +69 -0
- package/lib/module/utils/compute-offset-if-size-changed.test.js.map +1 -0
- 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/handleroffset-direction.js +9 -0
- package/lib/module/utils/handleroffset-direction.js.map +1 -0
- package/lib/module/utils/handleroffset-direction.test.js +41 -0
- package/lib/module/utils/handleroffset-direction.test.js.map +1 -0
- package/lib/module/{hooks → utils}/index.test.js +6 -6
- package/lib/module/utils/index.test.js.map +1 -0
- package/lib/typescript/{Carousel.d.ts → components/Carousel.d.ts} +1 -1
- package/lib/typescript/components/ItemRenderer.d.ts +22 -0
- package/lib/typescript/{ScrollViewGesture.d.ts → components/ScrollViewGesture.d.ts} +1 -1
- package/lib/typescript/hooks/useCarouselController.d.ts +3 -2
- package/lib/typescript/hooks/useCommonVariables.test.d.ts +1 -0
- package/lib/typescript/hooks/useLayoutConfig.d.ts +1 -1
- package/lib/typescript/hooks/useOffsetX.test.d.ts +1 -0
- package/lib/typescript/hooks/usePanGestureProxy.d.ts +9 -0
- package/lib/typescript/hooks/usePanGestureProxy.test.d.ts +1 -0
- package/lib/typescript/hooks/useUpdateGestureConfig.d.ts +5 -0
- package/lib/typescript/hooks/useVisibleRanges.d.ts +8 -4
- package/lib/typescript/hooks/useVisibleRanges.test.d.ts +1 -0
- package/lib/typescript/index.d.ts +3 -2
- package/lib/typescript/types.d.ts +113 -104
- package/lib/typescript/{hooks/computeNewIndexWhenDataChanges.d.ts → utils/compute-offset-if-data-changed.d.ts} +1 -1
- package/lib/typescript/utils/compute-offset-if-data-changed.test.d.ts +1 -0
- package/lib/typescript/utils/compute-offset-if-size-changed.d.ts +5 -0
- package/lib/typescript/utils/compute-offset-if-size-changed.test.d.ts +1 -0
- package/lib/typescript/utils/handleroffset-direction.d.ts +3 -0
- package/lib/typescript/utils/handleroffset-direction.test.d.ts +1 -0
- package/lib/typescript/utils/index.test.d.ts +1 -0
- package/package.json +32 -73
- package/src/{layouts → components}/BaseLayout.tsx +7 -35
- package/src/{Carousel.tsx → components/Carousel.tsx} +35 -69
- package/src/components/ItemRenderer.tsx +105 -0
- package/src/{ScrollViewGesture.tsx → components/ScrollViewGesture.tsx} +88 -48
- package/src/components/rnr-demo.test.tsx +43 -0
- package/src/hooks/useCarouselController.tsx +27 -24
- package/src/hooks/useCommonVariables.test.tsx +41 -0
- package/src/hooks/useCommonVariables.ts +36 -11
- package/src/hooks/useInitProps.ts +1 -3
- package/src/hooks/useLayoutConfig.ts +1 -1
- package/src/hooks/useOffsetX.test.ts +54 -0
- package/src/hooks/useOffsetX.ts +33 -31
- package/src/hooks/useOnProgressChange.ts +1 -1
- package/src/hooks/usePanGestureProxy.test.tsx +376 -0
- package/src/hooks/usePanGestureProxy.ts +110 -0
- package/src/hooks/useUpdateGestureConfig.ts +15 -0
- package/src/hooks/useVisibleRanges.test.tsx +179 -0
- package/src/hooks/useVisibleRanges.tsx +72 -24
- package/src/index.tsx +4 -2
- package/src/types.ts +132 -125
- package/src/utils/compute-offset-if-data-changed.test.ts +30 -0
- package/src/{hooks/computeNewIndexWhenDataChanges.ts → utils/compute-offset-if-data-changed.ts} +1 -1
- package/src/utils/compute-offset-if-size-changed.test.ts +78 -0
- package/src/utils/compute-offset-if-size-changed.ts +11 -0
- package/src/utils/handleroffset-direction.test.ts +52 -0
- package/src/utils/handleroffset-direction.ts +18 -0
- package/src/{hooks → utils}/index.test.ts +6 -6
- 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/layouts/BaseLayout.js +0 -2
- package/lib/commonjs/layouts/BaseLayout.js.map +0 -1
- package/lib/commonjs/layouts/ParallaxLayout.js +0 -2
- package/lib/commonjs/layouts/ParallaxLayout.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/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
- package/lib/module/hooks/index.test.js.map +0 -1
- package/lib/module/layouts/BaseLayout.js.map +0 -1
- package/lib/module/layouts/ParallaxLayout.js +0 -61
- package/lib/module/layouts/ParallaxLayout.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 +0 -9
- package/lib/module/utils/handlerOffsetDirection.js.map +0 -1
- package/lib/typescript/layouts/ParallaxLayout.d.ts +0 -13
- package/lib/typescript/utils/handlerOffsetDirection.d.ts +0 -2
- package/src/layouts/ParallaxLayout.tsx +0 -141
- package/src/utils/handlerOffsetDirection.ts +0 -15
- /package/lib/module/{LazyView.js → components/LazyView.js} +0 -0
- /package/lib/module/{LazyView.js.map → components/LazyView.js.map} +0 -0
- /package/lib/typescript/{layouts → components}/BaseLayout.d.ts +0 -0
- /package/lib/typescript/{LazyView.d.ts → components/LazyView.d.ts} +0 -0
- /package/lib/typescript/{hooks/index.test.d.ts → components/rnr-demo.test.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/src/{LazyView.tsx → components/LazyView.tsx} +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
|
@@ -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.computeOffsetIfDataChanged = computeOffsetIfDataChanged;
|
|
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 computeOffsetIfDataChanged(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=compute-offset-if-data-changed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["compute-offset-if-data-changed.ts"],"names":["omitZero","a","b","computeOffsetIfDataChanged","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,0BAAT,CAAoCC,MAApC,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 computeOffsetIfDataChanged(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,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _computeOffsetIfDataChanged = require("./compute-offset-if-data-changed");
|
|
4
|
+
|
|
5
|
+
describe("computeOffsetIfDataChanged", () => {
|
|
6
|
+
const size = 634;
|
|
7
|
+
it("should return the correct values, if index is 0", () => {
|
|
8
|
+
const index = 0;
|
|
9
|
+
const result = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)({
|
|
10
|
+
direction: -1,
|
|
11
|
+
previousLength: 4,
|
|
12
|
+
currentLength: 6,
|
|
13
|
+
size,
|
|
14
|
+
handlerOffset: index * size
|
|
15
|
+
});
|
|
16
|
+
expect(result).toMatchInlineSnapshot("0");
|
|
17
|
+
});
|
|
18
|
+
it("should return the correct values, if index is 1", () => {
|
|
19
|
+
const index = 1;
|
|
20
|
+
const result = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)({
|
|
21
|
+
direction: -1,
|
|
22
|
+
previousLength: 4,
|
|
23
|
+
currentLength: 6,
|
|
24
|
+
size,
|
|
25
|
+
handlerOffset: index * size
|
|
26
|
+
});
|
|
27
|
+
expect(result).toMatchInlineSnapshot("634");
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=compute-offset-if-data-changed.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["compute-offset-if-data-changed.test.ts"],"names":["describe","size","it","index","result","direction","previousLength","currentLength","handlerOffset","expect","toMatchInlineSnapshot"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,4BAAD,EAA+B,MAAM;AAC3C,QAAMC,IAAI,GAAG,GAAb;AACAC,EAAAA,EAAE,CAAC,iDAAD,EAAoD,MAAM;AAC1D,UAAMC,KAAK,GAAG,CAAd;AACA,UAAMC,MAAM,GAAG,4DAA2B;AACxCC,MAAAA,SAAS,EAAE,CAAC,CAD4B;AAExCC,MAAAA,cAAc,EAAE,CAFwB;AAGxCC,MAAAA,aAAa,EAAE,CAHyB;AAIxCN,MAAAA,IAJwC;AAKxCO,MAAAA,aAAa,EAAEL,KAAK,GAAGF;AALiB,KAA3B,CAAf;AAQAQ,IAAAA,MAAM,CAACL,MAAD,CAAN,CAAeM,qBAAf,CAAqC,GAArC;AACD,GAXC,CAAF;AAaAR,EAAAA,EAAE,CAAC,iDAAD,EAAoD,MAAM;AAC1D,UAAMC,KAAK,GAAG,CAAd;AACA,UAAMC,MAAM,GAAG,4DAA2B;AACxCC,MAAAA,SAAS,EAAE,CAAC,CAD4B;AAExCC,MAAAA,cAAc,EAAE,CAFwB;AAGxCC,MAAAA,aAAa,EAAE,CAHyB;AAIxCN,MAAAA,IAJwC;AAKxCO,MAAAA,aAAa,EAAEL,KAAK,GAAGF;AALiB,KAA3B,CAAf;AAQAQ,IAAAA,MAAM,CAACL,MAAD,CAAN,CAAeM,qBAAf,CAAqC,KAArC;AACD,GAXC,CAAF;AAYD,CA3BO,CAAR","sourcesContent":["import { computeOffsetIfDataChanged } from \"./compute-offset-if-data-changed\";\n\ndescribe(\"computeOffsetIfDataChanged\", () => {\n const size = 634;\n it(\"should return the correct values, if index is 0\", () => {\n const index = 0;\n const result = computeOffsetIfDataChanged({\n direction: -1,\n previousLength: 4,\n currentLength: 6,\n size,\n handlerOffset: index * size,\n });\n\n expect(result).toMatchInlineSnapshot(\"0\");\n });\n\n it(\"should return the correct values, if index is 1\", () => {\n const index = 1;\n const result = computeOffsetIfDataChanged({\n direction: -1,\n previousLength: 4,\n currentLength: 6,\n size,\n handlerOffset: index * size,\n });\n\n expect(result).toMatchInlineSnapshot(\"634\");\n });\n});\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.computeOffsetIfSizeChanged = computeOffsetIfSizeChanged;
|
|
7
|
+
|
|
8
|
+
function computeOffsetIfSizeChanged(params) {
|
|
9
|
+
"worklet";
|
|
10
|
+
|
|
11
|
+
const {
|
|
12
|
+
handlerOffset,
|
|
13
|
+
prevSize,
|
|
14
|
+
size
|
|
15
|
+
} = params;
|
|
16
|
+
return handlerOffset / prevSize * size;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=compute-offset-if-size-changed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["compute-offset-if-size-changed.ts"],"names":["computeOffsetIfSizeChanged","params","handlerOffset","prevSize","size"],"mappings":";;;;;;;AAAO,SAASA,0BAAT,CAAoCC,MAApC,EAIJ;AACD;;AACA,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,QAAjB;AAA2BC,IAAAA;AAA3B,MAAoCH,MAA1C;AAEA,SAAOC,aAAa,GAAGC,QAAhB,GAA2BC,IAAlC;AACD","sourcesContent":["export function computeOffsetIfSizeChanged(params: {\n handlerOffset: number\n prevSize: number\n size: number\n}) {\n \"worklet\";\n const { handlerOffset, prevSize, size } = params;\n\n return handlerOffset / prevSize * size;\n}\n\n"]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _computeOffsetIfSizeChanged = require("./compute-offset-if-size-changed");
|
|
4
|
+
|
|
5
|
+
describe("computeOffsetIfSizeChanged", () => {
|
|
6
|
+
it("[CASE 1] should return the correct values when size does not change", () => {
|
|
7
|
+
const prevIndex = 1;
|
|
8
|
+
const prevSize = 500;
|
|
9
|
+
const size = 500;
|
|
10
|
+
const handlerOffset = prevIndex * size;
|
|
11
|
+
const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
|
|
12
|
+
prevSize,
|
|
13
|
+
size,
|
|
14
|
+
handlerOffset
|
|
15
|
+
});
|
|
16
|
+
const finallyIndex = result / size;
|
|
17
|
+
expect(finallyIndex).toEqual(prevIndex);
|
|
18
|
+
});
|
|
19
|
+
it("[CASE 2] should return the correct values when size changes from 500 to 400", () => {
|
|
20
|
+
const prevIndex = 1;
|
|
21
|
+
const prevSize = 500;
|
|
22
|
+
const size = 400;
|
|
23
|
+
const handlerOffset = prevIndex * prevSize;
|
|
24
|
+
const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
|
|
25
|
+
prevSize,
|
|
26
|
+
size,
|
|
27
|
+
handlerOffset
|
|
28
|
+
});
|
|
29
|
+
const finallyIndex = result / size;
|
|
30
|
+
expect(finallyIndex).toEqual(prevIndex);
|
|
31
|
+
});
|
|
32
|
+
it("[CASE 3] should return the correct values when size changes from 500 to 499", () => {
|
|
33
|
+
const prevIndex = 1;
|
|
34
|
+
const prevSize = 500;
|
|
35
|
+
const size = 499;
|
|
36
|
+
const handlerOffset = prevIndex * prevSize;
|
|
37
|
+
const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
|
|
38
|
+
prevSize,
|
|
39
|
+
size,
|
|
40
|
+
handlerOffset
|
|
41
|
+
});
|
|
42
|
+
const finallyIndex = result / size;
|
|
43
|
+
expect(finallyIndex).toEqual(prevIndex);
|
|
44
|
+
});
|
|
45
|
+
it("[CASE 4] should return the correct values when size changes from 500 to 501", () => {
|
|
46
|
+
const prevIndex = 1;
|
|
47
|
+
const prevSize = 500;
|
|
48
|
+
const size = 501;
|
|
49
|
+
const handlerOffset = prevIndex * prevSize;
|
|
50
|
+
const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
|
|
51
|
+
prevSize,
|
|
52
|
+
size,
|
|
53
|
+
handlerOffset
|
|
54
|
+
});
|
|
55
|
+
const finallyIndex = result / size;
|
|
56
|
+
expect(finallyIndex).toEqual(prevIndex);
|
|
57
|
+
});
|
|
58
|
+
it("[CASE 5] should return the correct values when size changes from 224 to 524", () => {
|
|
59
|
+
const prevIndex = 1;
|
|
60
|
+
const prevSize = 224;
|
|
61
|
+
const size = 524;
|
|
62
|
+
const handlerOffset = prevIndex * prevSize;
|
|
63
|
+
const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
|
|
64
|
+
prevSize,
|
|
65
|
+
size,
|
|
66
|
+
handlerOffset
|
|
67
|
+
});
|
|
68
|
+
const finallyIndex = result / size;
|
|
69
|
+
expect(finallyIndex).toEqual(prevIndex);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
//# sourceMappingURL=compute-offset-if-size-changed.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["compute-offset-if-size-changed.test.ts"],"names":["describe","it","prevIndex","prevSize","size","handlerOffset","result","finallyIndex","expect","toEqual"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,4BAAD,EAA+B,MAAM;AAC3CC,EAAAA,EAAE,CAAC,qEAAD,EAAwE,MAAM;AAC9E,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGE,IAAlC;AACA,UAAME,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAcD,CA3EO,CAAR","sourcesContent":["import { computeOffsetIfSizeChanged } from \"./compute-offset-if-size-changed\";\n\ndescribe(\"computeOffsetIfSizeChanged\", () => {\n it(\"[CASE 1] should return the correct values when size does not change\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 500;\n const handlerOffset = prevIndex * size;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 2] should return the correct values when size changes from 500 to 400\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 400;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 3] should return the correct values when size changes from 500 to 499\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 499;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 4] should return the correct values when size changes from 500 to 501\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 501;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 5] should return the correct values when size changes from 224 to 524\", () => {\n const prevIndex = 1;\n const prevSize = 224;\n const size = 524;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\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, fixedDirection) {
|
|
9
|
+
"worklet";
|
|
10
|
+
|
|
11
|
+
if (fixedDirection === "negative") return -1;
|
|
12
|
+
if (fixedDirection === "positive") return 1;
|
|
13
|
+
if (handlerOffset.value === 0) return -1;
|
|
14
|
+
return Math.sign(handlerOffset.value);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=handleroffset-direction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["handleroffset-direction.ts"],"names":["handlerOffsetDirection","handlerOffset","fixedDirection","value","Math","sign"],"mappings":";;;;;;;AAIO,SAASA,sBAAT,CAAgCC,aAAhC,EAAoEC,cAApE,EAA+H;AACpI;;AAEA,MAAIA,cAAc,KAAK,UAAvB,EACE,OAAO,CAAC,CAAR;AAEF,MAAIA,cAAc,KAAK,UAAvB,EACE,OAAO,CAAP;AAEF,MAAID,aAAa,CAACE,KAAd,KAAwB,CAA5B,EACE,OAAO,CAAC,CAAR;AAEF,SAAOC,IAAI,CAACC,IAAL,CAAUJ,aAAa,CAACE,KAAxB,CAAP;AACD","sourcesContent":["import type { SharedValue } from \"react-native-reanimated\";\n\nimport type { TCarouselProps } from \"../types\";\n\nexport function handlerOffsetDirection(handlerOffset: SharedValue<number>, fixedDirection?: TCarouselProps[\"fixedDirection\"]): -1 | 1 {\n \"worklet\";\n\n if (fixedDirection === \"negative\")\n return -1;\n\n if (fixedDirection === \"positive\")\n return 1;\n\n if (handlerOffset.value === 0)\n return -1;\n\n return Math.sign(handlerOffset.value) as -1 | 1;\n}\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
4
|
+
|
|
5
|
+
var _reactHooks = require("@testing-library/react-hooks");
|
|
6
|
+
|
|
7
|
+
var _handleroffsetDirection = require("./handleroffset-direction");
|
|
8
|
+
|
|
9
|
+
describe("handlerOffsetDirection", () => {
|
|
10
|
+
it("should return -1 when default value equals to zero", () => {
|
|
11
|
+
const result = (0, _reactHooks.renderHook)(() => {
|
|
12
|
+
const handlerOffsetAnimVal = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
13
|
+
return (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffsetAnimVal);
|
|
14
|
+
});
|
|
15
|
+
expect(result.result.current).toBe(-1);
|
|
16
|
+
});
|
|
17
|
+
it("should return 1 when default value is greater than zero", () => {
|
|
18
|
+
const result = (0, _reactHooks.renderHook)(() => {
|
|
19
|
+
const handlerOffsetAnimVal = (0, _reactNativeReanimated.useSharedValue)(1);
|
|
20
|
+
return (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffsetAnimVal);
|
|
21
|
+
});
|
|
22
|
+
expect(result.result.current).toBe(1);
|
|
23
|
+
});
|
|
24
|
+
it("should return -1 when default value is less than zero", () => {
|
|
25
|
+
const result = (0, _reactHooks.renderHook)(() => {
|
|
26
|
+
const handlerOffsetAnimVal = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
27
|
+
return (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffsetAnimVal);
|
|
28
|
+
});
|
|
29
|
+
expect(result.result.current).toBe(-1);
|
|
30
|
+
});
|
|
31
|
+
it("should return 1 when default value equals to zero and fixedDirection is negative", () => {
|
|
32
|
+
const result = (0, _reactHooks.renderHook)(() => {
|
|
33
|
+
const handlerOffsetAnimVal = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
34
|
+
return (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffsetAnimVal, "positive");
|
|
35
|
+
});
|
|
36
|
+
expect(result.result.current).toBe(1);
|
|
37
|
+
});
|
|
38
|
+
it("should return -1 when default value is greater than zero and fixedDirection is negative", () => {
|
|
39
|
+
const result = (0, _reactHooks.renderHook)(() => {
|
|
40
|
+
const handlerOffsetAnimVal = (0, _reactNativeReanimated.useSharedValue)(1);
|
|
41
|
+
return (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffsetAnimVal, "negative");
|
|
42
|
+
});
|
|
43
|
+
expect(result.result.current).toBe(-1);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=handleroffset-direction.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["handleroffset-direction.test.ts"],"names":["describe","it","result","handlerOffsetAnimVal","expect","current","toBe"],"mappings":";;AAAA;;AAEA;;AAEA;;AAEAA,QAAQ,CAAC,wBAAD,EAA2B,MAAM;AACvCC,EAAAA,EAAE,CAAC,oDAAD,EAAuD,MAAM;AAC7D,UAAMC,MAAM,GAAG,4BAAW,MAAM;AAC9B,YAAMC,oBAAoB,GAAG,2CAAe,CAAf,CAA7B;AACA,aAAO,oDAAuBA,oBAAvB,CAAP;AACD,KAHc,CAAf;AAKAC,IAAAA,MAAM,CAACF,MAAM,CAACA,MAAP,CAAcG,OAAf,CAAN,CAA8BC,IAA9B,CAAmC,CAAC,CAApC;AACD,GAPC,CAAF;AASAL,EAAAA,EAAE,CAAC,yDAAD,EAA4D,MAAM;AAClE,UAAMC,MAAM,GAAG,4BAAW,MAAM;AAC9B,YAAMC,oBAAoB,GAAG,2CAAe,CAAf,CAA7B;AACA,aAAO,oDAAuBA,oBAAvB,CAAP;AACD,KAHc,CAAf;AAKAC,IAAAA,MAAM,CAACF,MAAM,CAACA,MAAP,CAAcG,OAAf,CAAN,CAA8BC,IAA9B,CAAmC,CAAnC;AACD,GAPC,CAAF;AASAL,EAAAA,EAAE,CAAC,uDAAD,EAA0D,MAAM;AAChE,UAAMC,MAAM,GAAG,4BAAW,MAAM;AAC9B,YAAMC,oBAAoB,GAAG,2CAAe,CAAC,CAAhB,CAA7B;AACA,aAAO,oDAAuBA,oBAAvB,CAAP;AACD,KAHc,CAAf;AAKAC,IAAAA,MAAM,CAACF,MAAM,CAACA,MAAP,CAAcG,OAAf,CAAN,CAA8BC,IAA9B,CAAmC,CAAC,CAApC;AACD,GAPC,CAAF;AASAL,EAAAA,EAAE,CAAC,kFAAD,EAAqF,MAAM;AAC3F,UAAMC,MAAM,GAAG,4BAAW,MAAM;AAC9B,YAAMC,oBAAoB,GAAG,2CAAe,CAAC,CAAhB,CAA7B;AACA,aAAO,oDAAuBA,oBAAvB,EAA6C,UAA7C,CAAP;AACD,KAHc,CAAf;AAKAC,IAAAA,MAAM,CAACF,MAAM,CAACA,MAAP,CAAcG,OAAf,CAAN,CAA8BC,IAA9B,CAAmC,CAAnC;AACD,GAPC,CAAF;AASAL,EAAAA,EAAE,CAAC,yFAAD,EAA4F,MAAM;AAClG,UAAMC,MAAM,GAAG,4BAAW,MAAM;AAC9B,YAAMC,oBAAoB,GAAG,2CAAe,CAAf,CAA7B;AACA,aAAO,oDAAuBA,oBAAvB,EAA6C,UAA7C,CAAP;AACD,KAHc,CAAf;AAKAC,IAAAA,MAAM,CAACF,MAAM,CAACA,MAAP,CAAcG,OAAf,CAAN,CAA8BC,IAA9B,CAAmC,CAAC,CAApC;AACD,GAPC,CAAF;AAQD,CA7CO,CAAR","sourcesContent":["import { useSharedValue } from \"react-native-reanimated\";\n\nimport { renderHook } from \"@testing-library/react-hooks\";\n\nimport { handlerOffsetDirection } from \"./handleroffset-direction\";\n\ndescribe(\"handlerOffsetDirection\", () => {\n it(\"should return -1 when default value equals to zero\", () => {\n const result = renderHook(() => {\n const handlerOffsetAnimVal = useSharedValue(0);\n return handlerOffsetDirection(handlerOffsetAnimVal);\n });\n\n expect(result.result.current).toBe(-1);\n });\n\n it(\"should return 1 when default value is greater than zero\", () => {\n const result = renderHook(() => {\n const handlerOffsetAnimVal = useSharedValue(1);\n return handlerOffsetDirection(handlerOffsetAnimVal);\n });\n\n expect(result.result.current).toBe(1);\n });\n\n it(\"should return -1 when default value is less than zero\", () => {\n const result = renderHook(() => {\n const handlerOffsetAnimVal = useSharedValue(-1);\n return handlerOffsetDirection(handlerOffsetAnimVal);\n });\n\n expect(result.result.current).toBe(-1);\n });\n\n it(\"should return 1 when default value equals to zero and fixedDirection is negative\", () => {\n const result = renderHook(() => {\n const handlerOffsetAnimVal = useSharedValue(-1);\n return handlerOffsetDirection(handlerOffsetAnimVal, \"positive\");\n });\n\n expect(result.result.current).toBe(1);\n });\n\n it(\"should return -1 when default value is greater than zero and fixedDirection is negative\", () => {\n const result = renderHook(() => {\n const handlerOffsetAnimVal = useSharedValue(1);\n return handlerOffsetDirection(handlerOffsetAnimVal, \"negative\");\n });\n\n expect(result.result.current).toBe(-1);\n });\n});\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _computeOffsetIfDataChanged = require("./compute-offset-if-data-changed");
|
|
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, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(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, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(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, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(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, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(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, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(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
|