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.
Files changed (230) hide show
  1. package/README.md +22 -162
  2. package/lib/commonjs/components/BaseLayout.js +95 -0
  3. package/lib/commonjs/components/BaseLayout.js.map +1 -0
  4. package/lib/commonjs/components/Carousel.js +210 -0
  5. package/lib/commonjs/components/Carousel.js.map +1 -0
  6. package/lib/commonjs/components/ItemRenderer.js +80 -0
  7. package/lib/commonjs/components/ItemRenderer.js.map +1 -0
  8. package/lib/commonjs/components/LazyView.js +22 -0
  9. package/lib/commonjs/components/LazyView.js.map +1 -0
  10. package/lib/commonjs/components/ScrollViewGesture.js +315 -0
  11. package/lib/commonjs/components/ScrollViewGesture.js.map +1 -0
  12. package/lib/commonjs/components/rnr-demo.test.js +45 -0
  13. package/lib/commonjs/components/rnr-demo.test.js.map +1 -0
  14. package/lib/commonjs/constants/index.js +21 -1
  15. package/lib/commonjs/constants/index.js.map +1 -1
  16. package/lib/commonjs/hooks/useAutoPlay.js +56 -1
  17. package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
  18. package/lib/commonjs/hooks/useCarouselController.js +245 -1
  19. package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
  20. package/lib/commonjs/hooks/useCheckMounted.js +23 -1
  21. package/lib/commonjs/hooks/useCheckMounted.js.map +1 -1
  22. package/lib/commonjs/hooks/useCommonVariables.js +102 -1
  23. package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
  24. package/lib/commonjs/hooks/useCommonVariables.test.js +38 -0
  25. package/lib/commonjs/hooks/useCommonVariables.test.js.map +1 -0
  26. package/lib/commonjs/hooks/useInitProps.js +78 -1
  27. package/lib/commonjs/hooks/useInitProps.js.map +1 -1
  28. package/lib/commonjs/hooks/useLayoutConfig.js +39 -1
  29. package/lib/commonjs/hooks/useLayoutConfig.js.map +1 -1
  30. package/lib/commonjs/hooks/useOffsetX.js +51 -1
  31. package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
  32. package/lib/commonjs/hooks/useOffsetX.test.js +53 -0
  33. package/lib/commonjs/hooks/useOffsetX.test.js.map +1 -0
  34. package/lib/commonjs/hooks/useOnProgressChange.js +38 -1
  35. package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
  36. package/lib/commonjs/hooks/usePanGestureProxy.js +84 -0
  37. package/lib/commonjs/hooks/usePanGestureProxy.js.map +1 -0
  38. package/lib/commonjs/hooks/usePanGestureProxy.test.js +397 -0
  39. package/lib/commonjs/hooks/usePanGestureProxy.test.js.map +1 -0
  40. package/lib/commonjs/hooks/usePropsErrorBoundary.js +36 -1
  41. package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
  42. package/lib/commonjs/hooks/useUpdateGestureConfig.js +20 -0
  43. package/lib/commonjs/hooks/useUpdateGestureConfig.js.map +1 -0
  44. package/lib/commonjs/hooks/useVisibleRanges.js +71 -1
  45. package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
  46. package/lib/commonjs/hooks/useVisibleRanges.test.js +162 -0
  47. package/lib/commonjs/hooks/useVisibleRanges.test.js.map +1 -0
  48. package/lib/commonjs/index.js +13 -1
  49. package/lib/commonjs/index.js.map +1 -1
  50. package/lib/commonjs/layouts/index.js +20 -1
  51. package/lib/commonjs/layouts/index.js.map +1 -1
  52. package/lib/commonjs/layouts/normal.js +27 -1
  53. package/lib/commonjs/layouts/normal.js.map +1 -1
  54. package/lib/commonjs/layouts/parallax.js +38 -1
  55. package/lib/commonjs/layouts/parallax.js.map +1 -1
  56. package/lib/commonjs/layouts/stack.js +215 -1
  57. package/lib/commonjs/layouts/stack.js.map +1 -1
  58. package/lib/commonjs/store/index.js +14 -1
  59. package/lib/commonjs/store/index.js.map +1 -1
  60. package/lib/commonjs/types.js +5 -1
  61. package/lib/commonjs/utils/compute-offset-if-data-changed.js +52 -0
  62. package/lib/commonjs/utils/compute-offset-if-data-changed.js.map +1 -0
  63. package/lib/commonjs/utils/compute-offset-if-data-changed.test.js +30 -0
  64. package/lib/commonjs/utils/compute-offset-if-data-changed.test.js.map +1 -0
  65. package/lib/commonjs/utils/compute-offset-if-size-changed.js +18 -0
  66. package/lib/commonjs/utils/compute-offset-if-size-changed.js.map +1 -0
  67. package/lib/commonjs/utils/compute-offset-if-size-changed.test.js +72 -0
  68. package/lib/commonjs/utils/compute-offset-if-size-changed.test.js.map +1 -0
  69. package/lib/commonjs/utils/computed-with-auto-fill-data.js +124 -0
  70. package/lib/commonjs/utils/computed-with-auto-fill-data.js.map +1 -0
  71. package/lib/commonjs/utils/deal-with-animation.js +21 -0
  72. package/lib/commonjs/utils/deal-with-animation.js.map +1 -0
  73. package/lib/commonjs/utils/handleroffset-direction.js +16 -0
  74. package/lib/commonjs/utils/handleroffset-direction.js.map +1 -0
  75. package/lib/commonjs/utils/handleroffset-direction.test.js +46 -0
  76. package/lib/commonjs/utils/handleroffset-direction.test.js.map +1 -0
  77. package/lib/commonjs/utils/index.test.js +74 -0
  78. package/lib/commonjs/utils/index.test.js.map +1 -0
  79. package/lib/commonjs/utils/log.js +22 -1
  80. package/lib/commonjs/utils/log.js.map +1 -1
  81. package/lib/module/{layouts → components}/BaseLayout.js +6 -16
  82. package/lib/module/components/BaseLayout.js.map +1 -0
  83. package/lib/module/{Carousel.js → components/Carousel.js} +33 -52
  84. package/lib/module/components/Carousel.js.map +1 -0
  85. package/lib/module/components/ItemRenderer.js +62 -0
  86. package/lib/module/components/ItemRenderer.js.map +1 -0
  87. package/lib/module/{ScrollViewGesture.js → components/ScrollViewGesture.js} +59 -32
  88. package/lib/module/components/ScrollViewGesture.js.map +1 -0
  89. package/lib/module/components/rnr-demo.test.js +33 -0
  90. package/lib/module/components/rnr-demo.test.js.map +1 -0
  91. package/lib/module/hooks/useCarouselController.js +15 -14
  92. package/lib/module/hooks/useCarouselController.js.map +1 -1
  93. package/lib/module/hooks/useCommonVariables.js +39 -9
  94. package/lib/module/hooks/useCommonVariables.js.map +1 -1
  95. package/lib/module/hooks/useCommonVariables.test.js +34 -0
  96. package/lib/module/hooks/useCommonVariables.test.js.map +1 -0
  97. package/lib/module/hooks/useInitProps.js +1 -3
  98. package/lib/module/hooks/useInitProps.js.map +1 -1
  99. package/lib/module/hooks/useLayoutConfig.js.map +1 -1
  100. package/lib/module/hooks/useOffsetX.js +9 -6
  101. package/lib/module/hooks/useOffsetX.js.map +1 -1
  102. package/lib/module/hooks/useOffsetX.test.js +48 -0
  103. package/lib/module/hooks/useOffsetX.test.js.map +1 -0
  104. package/lib/module/hooks/useOnProgressChange.js +1 -1
  105. package/lib/module/hooks/useOnProgressChange.js.map +1 -1
  106. package/lib/module/hooks/usePanGestureProxy.js +71 -0
  107. package/lib/module/hooks/usePanGestureProxy.js.map +1 -0
  108. package/lib/module/hooks/usePanGestureProxy.test.js +383 -0
  109. package/lib/module/hooks/usePanGestureProxy.test.js.map +1 -0
  110. package/lib/module/hooks/useUpdateGestureConfig.js +10 -0
  111. package/lib/module/hooks/useUpdateGestureConfig.js.map +1 -0
  112. package/lib/module/hooks/useVisibleRanges.js +47 -19
  113. package/lib/module/hooks/useVisibleRanges.js.map +1 -1
  114. package/lib/module/hooks/useVisibleRanges.test.js +157 -0
  115. package/lib/module/hooks/useVisibleRanges.test.js.map +1 -0
  116. package/lib/module/index.js +1 -2
  117. package/lib/module/index.js.map +1 -1
  118. package/lib/module/{hooks/computeNewIndexWhenDataChanges.js → utils/compute-offset-if-data-changed.js} +2 -2
  119. package/lib/module/utils/compute-offset-if-data-changed.js.map +1 -0
  120. package/lib/module/utils/compute-offset-if-data-changed.test.js +27 -0
  121. package/lib/module/utils/compute-offset-if-data-changed.test.js.map +1 -0
  122. package/lib/module/utils/compute-offset-if-size-changed.js +11 -0
  123. package/lib/module/utils/compute-offset-if-size-changed.js.map +1 -0
  124. package/lib/module/utils/compute-offset-if-size-changed.test.js +69 -0
  125. package/lib/module/utils/compute-offset-if-size-changed.test.js.map +1 -0
  126. package/lib/module/utils/{computedWithAutoFillData.js → computed-with-auto-fill-data.js} +1 -1
  127. package/lib/module/utils/computed-with-auto-fill-data.js.map +1 -0
  128. package/lib/module/utils/{dealWithAnimation.js → deal-with-animation.js} +1 -1
  129. package/lib/module/utils/deal-with-animation.js.map +1 -0
  130. package/lib/module/utils/handleroffset-direction.js +9 -0
  131. package/lib/module/utils/handleroffset-direction.js.map +1 -0
  132. package/lib/module/utils/handleroffset-direction.test.js +41 -0
  133. package/lib/module/utils/handleroffset-direction.test.js.map +1 -0
  134. package/lib/module/{hooks → utils}/index.test.js +6 -6
  135. package/lib/module/utils/index.test.js.map +1 -0
  136. package/lib/typescript/{Carousel.d.ts → components/Carousel.d.ts} +1 -1
  137. package/lib/typescript/components/ItemRenderer.d.ts +22 -0
  138. package/lib/typescript/{ScrollViewGesture.d.ts → components/ScrollViewGesture.d.ts} +1 -1
  139. package/lib/typescript/hooks/useCarouselController.d.ts +3 -2
  140. package/lib/typescript/hooks/useCommonVariables.test.d.ts +1 -0
  141. package/lib/typescript/hooks/useLayoutConfig.d.ts +1 -1
  142. package/lib/typescript/hooks/useOffsetX.test.d.ts +1 -0
  143. package/lib/typescript/hooks/usePanGestureProxy.d.ts +9 -0
  144. package/lib/typescript/hooks/usePanGestureProxy.test.d.ts +1 -0
  145. package/lib/typescript/hooks/useUpdateGestureConfig.d.ts +5 -0
  146. package/lib/typescript/hooks/useVisibleRanges.d.ts +8 -4
  147. package/lib/typescript/hooks/useVisibleRanges.test.d.ts +1 -0
  148. package/lib/typescript/index.d.ts +3 -2
  149. package/lib/typescript/types.d.ts +113 -104
  150. package/lib/typescript/{hooks/computeNewIndexWhenDataChanges.d.ts → utils/compute-offset-if-data-changed.d.ts} +1 -1
  151. package/lib/typescript/utils/compute-offset-if-data-changed.test.d.ts +1 -0
  152. package/lib/typescript/utils/compute-offset-if-size-changed.d.ts +5 -0
  153. package/lib/typescript/utils/compute-offset-if-size-changed.test.d.ts +1 -0
  154. package/lib/typescript/utils/handleroffset-direction.d.ts +3 -0
  155. package/lib/typescript/utils/handleroffset-direction.test.d.ts +1 -0
  156. package/lib/typescript/utils/index.test.d.ts +1 -0
  157. package/package.json +32 -73
  158. package/src/{layouts → components}/BaseLayout.tsx +7 -35
  159. package/src/{Carousel.tsx → components/Carousel.tsx} +35 -69
  160. package/src/components/ItemRenderer.tsx +105 -0
  161. package/src/{ScrollViewGesture.tsx → components/ScrollViewGesture.tsx} +88 -48
  162. package/src/components/rnr-demo.test.tsx +43 -0
  163. package/src/hooks/useCarouselController.tsx +27 -24
  164. package/src/hooks/useCommonVariables.test.tsx +41 -0
  165. package/src/hooks/useCommonVariables.ts +36 -11
  166. package/src/hooks/useInitProps.ts +1 -3
  167. package/src/hooks/useLayoutConfig.ts +1 -1
  168. package/src/hooks/useOffsetX.test.ts +54 -0
  169. package/src/hooks/useOffsetX.ts +33 -31
  170. package/src/hooks/useOnProgressChange.ts +1 -1
  171. package/src/hooks/usePanGestureProxy.test.tsx +376 -0
  172. package/src/hooks/usePanGestureProxy.ts +110 -0
  173. package/src/hooks/useUpdateGestureConfig.ts +15 -0
  174. package/src/hooks/useVisibleRanges.test.tsx +179 -0
  175. package/src/hooks/useVisibleRanges.tsx +72 -24
  176. package/src/index.tsx +4 -2
  177. package/src/types.ts +132 -125
  178. package/src/utils/compute-offset-if-data-changed.test.ts +30 -0
  179. package/src/{hooks/computeNewIndexWhenDataChanges.ts → utils/compute-offset-if-data-changed.ts} +1 -1
  180. package/src/utils/compute-offset-if-size-changed.test.ts +78 -0
  181. package/src/utils/compute-offset-if-size-changed.ts +11 -0
  182. package/src/utils/handleroffset-direction.test.ts +52 -0
  183. package/src/utils/handleroffset-direction.ts +18 -0
  184. package/src/{hooks → utils}/index.test.ts +6 -6
  185. package/README.zh-CN.md +0 -202
  186. package/lib/commonjs/Carousel.js +0 -2
  187. package/lib/commonjs/Carousel.js.map +0 -1
  188. package/lib/commonjs/LazyView.js +0 -2
  189. package/lib/commonjs/LazyView.js.map +0 -1
  190. package/lib/commonjs/ScrollViewGesture.js +0 -2
  191. package/lib/commonjs/ScrollViewGesture.js.map +0 -1
  192. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js +0 -2
  193. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
  194. package/lib/commonjs/hooks/index.test.js +0 -2
  195. package/lib/commonjs/hooks/index.test.js.map +0 -1
  196. package/lib/commonjs/layouts/BaseLayout.js +0 -2
  197. package/lib/commonjs/layouts/BaseLayout.js.map +0 -1
  198. package/lib/commonjs/layouts/ParallaxLayout.js +0 -2
  199. package/lib/commonjs/layouts/ParallaxLayout.js.map +0 -1
  200. package/lib/commonjs/utils/computedWithAutoFillData.js +0 -2
  201. package/lib/commonjs/utils/computedWithAutoFillData.js.map +0 -1
  202. package/lib/commonjs/utils/dealWithAnimation.js +0 -2
  203. package/lib/commonjs/utils/dealWithAnimation.js.map +0 -1
  204. package/lib/commonjs/utils/handlerOffsetDirection.js +0 -2
  205. package/lib/commonjs/utils/handlerOffsetDirection.js.map +0 -1
  206. package/lib/module/Carousel.js.map +0 -1
  207. package/lib/module/ScrollViewGesture.js.map +0 -1
  208. package/lib/module/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
  209. package/lib/module/hooks/index.test.js.map +0 -1
  210. package/lib/module/layouts/BaseLayout.js.map +0 -1
  211. package/lib/module/layouts/ParallaxLayout.js +0 -61
  212. package/lib/module/layouts/ParallaxLayout.js.map +0 -1
  213. package/lib/module/utils/computedWithAutoFillData.js.map +0 -1
  214. package/lib/module/utils/dealWithAnimation.js.map +0 -1
  215. package/lib/module/utils/handlerOffsetDirection.js +0 -9
  216. package/lib/module/utils/handlerOffsetDirection.js.map +0 -1
  217. package/lib/typescript/layouts/ParallaxLayout.d.ts +0 -13
  218. package/lib/typescript/utils/handlerOffsetDirection.d.ts +0 -2
  219. package/src/layouts/ParallaxLayout.tsx +0 -141
  220. package/src/utils/handlerOffsetDirection.ts +0 -15
  221. /package/lib/module/{LazyView.js → components/LazyView.js} +0 -0
  222. /package/lib/module/{LazyView.js.map → components/LazyView.js.map} +0 -0
  223. /package/lib/typescript/{layouts → components}/BaseLayout.d.ts +0 -0
  224. /package/lib/typescript/{LazyView.d.ts → components/LazyView.d.ts} +0 -0
  225. /package/lib/typescript/{hooks/index.test.d.ts → components/rnr-demo.test.d.ts} +0 -0
  226. /package/lib/typescript/utils/{computedWithAutoFillData.d.ts → computed-with-auto-fill-data.d.ts} +0 -0
  227. /package/lib/typescript/utils/{dealWithAnimation.d.ts → deal-with-animation.d.ts} +0 -0
  228. /package/src/{LazyView.tsx → components/LazyView.tsx} +0 -0
  229. /package/src/utils/{computedWithAutoFillData.ts → computed-with-auto-fill-data.ts} +0 -0
  230. /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
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.CTX=void 0;var _react=_interopRequireDefault(require("react"));var CTX=_react.default.createContext({});exports.CTX=CTX;
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":"+JAAA,oDAYO,GAAMA,CAAAA,GAAG,CAAGC,eAAMC,aAAN,CAA8B,EAA9B,CAAZ,C","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"]}
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"]}
@@ -1,2 +1,6 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
2
6
  //# sourceMappingURL=types.js.map
@@ -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