react-native-reanimated-carousel 5.0.0-beta.6 → 5.0.0-beta.8

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 (68) hide show
  1. package/README.md +32 -2
  2. package/lib/commonjs/components/CarouselLayout.js +1 -1
  3. package/lib/commonjs/components/CarouselLayout.js.map +1 -1
  4. package/lib/commonjs/components/ItemRenderer.js +1 -1
  5. package/lib/commonjs/components/ItemRenderer.js.map +1 -1
  6. package/lib/commonjs/components/ScrollViewGesture.js +1 -1
  7. package/lib/commonjs/components/ScrollViewGesture.js.map +1 -1
  8. package/lib/commonjs/hooks/useOnProgressChange.js +1 -1
  9. package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
  10. package/lib/commonjs/hooks/usePropsErrorBoundary.js +1 -1
  11. package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
  12. package/lib/commonjs/hooks/useVisibleRanges.js +1 -1
  13. package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
  14. package/lib/module/components/CarouselLayout.js +1 -1
  15. package/lib/module/components/CarouselLayout.js.map +1 -1
  16. package/lib/module/components/ItemRenderer.js +1 -1
  17. package/lib/module/components/ItemRenderer.js.map +1 -1
  18. package/lib/module/components/ScrollViewGesture.js +1 -1
  19. package/lib/module/components/ScrollViewGesture.js.map +1 -1
  20. package/lib/module/hooks/useOnProgressChange.js +1 -1
  21. package/lib/module/hooks/useOnProgressChange.js.map +1 -1
  22. package/lib/module/hooks/usePropsErrorBoundary.js +1 -1
  23. package/lib/module/hooks/usePropsErrorBoundary.js.map +1 -1
  24. package/lib/module/hooks/useVisibleRanges.js +1 -1
  25. package/lib/module/hooks/useVisibleRanges.js.map +1 -1
  26. package/lib/typescript/components/CarouselLayout.d.ts.map +1 -1
  27. package/lib/typescript/components/ItemRenderer.d.ts +1 -0
  28. package/lib/typescript/components/ItemRenderer.d.ts.map +1 -1
  29. package/lib/typescript/components/ScrollViewGesture.d.ts.map +1 -1
  30. package/lib/typescript/hooks/usePropsErrorBoundary.d.ts.map +1 -1
  31. package/lib/typescript/hooks/useVisibleRanges.d.ts +6 -0
  32. package/lib/typescript/hooks/useVisibleRanges.d.ts.map +1 -1
  33. package/lib/typescript/types.d.ts +1 -1
  34. package/package.json +4 -2
  35. package/src/components/CarouselLayout.tsx +4 -4
  36. package/src/components/ItemRenderer.tsx +11 -6
  37. package/src/components/ScrollViewGesture.tsx +8 -11
  38. package/src/hooks/useOnProgressChange.ts +1 -1
  39. package/src/hooks/usePropsErrorBoundary.ts +4 -3
  40. package/src/hooks/useVisibleRanges.tsx +80 -54
  41. package/src/types.ts +1 -1
  42. package/src/components/Carousel.test.tsx +0 -1215
  43. package/src/components/LazyView.test.tsx +0 -61
  44. package/src/components/Pagination/Pagination.test.tsx +0 -178
  45. package/src/components/rnr-demo.test.tsx +0 -53
  46. package/src/hooks/useAutoPlay.test.ts +0 -194
  47. package/src/hooks/useCarouselController.test.tsx +0 -1158
  48. package/src/hooks/useCheckMounted.test.ts +0 -47
  49. package/src/hooks/useCommonVariables.test.tsx +0 -384
  50. package/src/hooks/useInitProps.test.tsx +0 -134
  51. package/src/hooks/useLayoutConfig.test.tsx +0 -247
  52. package/src/hooks/useOffsetX.test.ts +0 -54
  53. package/src/hooks/useOnProgressChange.test.tsx +0 -207
  54. package/src/hooks/usePanGestureProxy.test.tsx +0 -368
  55. package/src/hooks/useUpdateGestureConfig.test.ts +0 -89
  56. package/src/hooks/useVisibleRanges.test.tsx +0 -347
  57. package/src/layouts/parallax.test.ts +0 -239
  58. package/src/layouts/stack.test.ts +0 -252
  59. package/src/store/index.test.tsx +0 -314
  60. package/src/utils/compute-gesture-translation.test.ts +0 -70
  61. package/src/utils/compute-offset-if-data-changed.test.ts +0 -133
  62. package/src/utils/compute-offset-if-size-changed.test.ts +0 -78
  63. package/src/utils/computed-with-auto-fill-data.test.ts +0 -298
  64. package/src/utils/deal-with-animation.test.ts +0 -181
  65. package/src/utils/handleroffset-direction.test.ts +0 -124
  66. package/src/utils/index.test.ts +0 -90
  67. package/src/utils/log.test.ts +0 -134
  68. package/src/utils/sanitize-animation-style.test.ts +0 -40
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.useVisibleRanges=useVisibleRanges;var _react=require("react");var _reactNativeReanimated=require("react-native-reanimated");var _worklet_11788449878648_init_data={code:"function useVisibleRangesTsx1(){const{total,viewSize,windowSize,translation,loop,cachedRanges,isArraysEqual}=this.__closure;if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}const positiveCount=Math.round(windowSize/2);const negativeCount=windowSize-positiveCount;let currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;let newRanges;if(loop&&windowSize>=total){newRanges={negativeRange:[0,0],positiveRange:[0,total-1]};}else if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));newRanges={negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}else{currentIndex=currentIndex<0?currentIndex%total+total:currentIndex;const negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];const positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}newRanges={negativeRange:negativeRange,positiveRange:positiveRange};}if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"useVisibleRangesTsx1\",\"total\",\"viewSize\",\"windowSize\",\"translation\",\"loop\",\"cachedRanges\",\"isArraysEqual\",\"__closure\",\"negativeRange\",\"positiveRange\",\"Number\",\"isFinite\",\"Math\",\"min\",\"positiveCount\",\"round\",\"negativeCount\",\"currentIndex\",\"value\",\"newRanges\",\"max\",\"current\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"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\",\"ignoreList\":[]}"};function useVisibleRanges(options){var _options$total=options.total,total=_options$total===void 0?0:_options$total,viewSize=options.viewSize,translation=options.translation,_windowSize=options.windowSize,loop=options.loop;var windowSize=typeof _windowSize==="number"&&Number.isFinite(_windowSize)&&_windowSize>0?_windowSize:total;var cachedRanges=(0,_react.useRef)(null);var ranges=(0,_reactNativeReanimated.useDerivedValue)(function useVisibleRangesTsx1Factory(_ref){var _worklet_11788449878648_init_data=_ref._worklet_11788449878648_init_data,total=_ref.total,viewSize=_ref.viewSize,windowSize=_ref.windowSize,translation=_ref.translation,loop=_ref.loop,cachedRanges=_ref.cachedRanges,isArraysEqual=_ref.isArraysEqual;var _e=[new global.Error(),-8,-27];var useVisibleRangesTsx1=function useVisibleRangesTsx1(){if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}var positiveCount=Math.round(windowSize/2);var negativeCount=windowSize-positiveCount;var currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;var newRanges;if(loop&&windowSize>=total){newRanges={negativeRange:[0,0],positiveRange:[0,total-1]};}else if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));newRanges={negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}else{currentIndex=currentIndex<0?currentIndex%total+total:currentIndex;var negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];var positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}newRanges={negativeRange:negativeRange,positiveRange:positiveRange};}if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;};useVisibleRangesTsx1.__closure={total:total,viewSize:viewSize,windowSize:windowSize,translation:translation,loop:loop,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual};useVisibleRangesTsx1.__workletHash=11788449878648;useVisibleRangesTsx1.__pluginVersion="0.5.2";useVisibleRangesTsx1.__initData=_worklet_11788449878648_init_data;useVisibleRangesTsx1.__stackDetails=_e;return useVisibleRangesTsx1;}({_worklet_11788449878648_init_data:_worklet_11788449878648_init_data,total:total,viewSize:viewSize,windowSize:windowSize,translation:translation,loop:loop,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual}),[loop,total,windowSize,translation,viewSize]);return ranges;}var _worklet_14683962274529_init_data={code:"function isArraysEqual_useVisibleRangesTsx2(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"isArraysEqual_useVisibleRangesTsx2\",\"a\",\"b\",\"length\",\"every\",\"value\",\"index\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AA6GA,SAAAA,kCAA0DA,CAAAC,CAAA,CAAAC,CAAA,EAExD,GAAID,CAAC,CAACE,MAAM,GAAKD,CAAC,CAACC,MAAM,CAAE,MAAO,MAAK,CAEvC,MAAO,CAAAF,CAAC,CAACG,KAAK,CAAC,SAACC,KAAK,CAAEC,KAAK,QAAK,CAAAD,KAAK,GAAKH,CAAC,CAACI,KAAK,CAAC,GAAC,CACtD\",\"ignoreList\":[]}"};var isArraysEqual=function isArraysEqual_useVisibleRangesTsx2Factory(_ref2){var _worklet_14683962274529_init_data=_ref2._worklet_14683962274529_init_data;var _e=[new global.Error(),1,-27];var isArraysEqual=function isArraysEqual(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});};isArraysEqual.__closure={};isArraysEqual.__workletHash=14683962274529;isArraysEqual.__pluginVersion="0.5.2";isArraysEqual.__initData=_worklet_14683962274529_init_data;isArraysEqual.__stackDetails=_e;return isArraysEqual;}({_worklet_14683962274529_init_data:_worklet_14683962274529_init_data});
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.computeVisibleRanges=void 0;exports.useVisibleRanges=useVisibleRanges;var _react=require("react");var _reactNativeReanimated=require("react-native-reanimated");var _worklet_857738204961_init_data={code:"function normalizeWindowSize_useVisibleRangesTsx1(total,windowSize){return typeof windowSize===\"number\"&&Number.isFinite(windowSize)&&windowSize>0?windowSize:total;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"normalizeWindowSize_useVisibleRangesTsx1\",\"total\",\"windowSize\",\"Number\",\"isFinite\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAaA,SAAAA,wCAAiEA,CAAAC,KAAA,CAAAC,UAAA,EAG/D,MAAO,OAAO,CAAAA,UAAU,GAAK,QAAQ,EAAIC,MAAM,CAACC,QAAQ,CAACF,UAAU,CAAC,EAAIA,UAAU,CAAG,CAAC,CAClFA,UAAU,CACVD,KAAK,CACX\",\"ignoreList\":[]}"};var normalizeWindowSize=function normalizeWindowSize_useVisibleRangesTsx1Factory(_ref){var _worklet_857738204961_init_data=_ref._worklet_857738204961_init_data;var _e=[new global.Error(),1,-27];var normalizeWindowSize=function normalizeWindowSize(total,windowSize){return typeof windowSize==="number"&&Number.isFinite(windowSize)&&windowSize>0?windowSize:total;};normalizeWindowSize.__closure={};normalizeWindowSize.__workletHash=857738204961;normalizeWindowSize.__pluginVersion="0.5.2";normalizeWindowSize.__initData=_worklet_857738204961_init_data;normalizeWindowSize.__stackDetails=_e;return normalizeWindowSize;}({_worklet_857738204961_init_data:_worklet_857738204961_init_data});var _worklet_10467342159726_init_data={code:"function normalizeLoopIndex_useVisibleRangesTsx2(currentIndex,total){return currentIndex<0?currentIndex%total+total:currentIndex;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"normalizeLoopIndex_useVisibleRangesTsx2\",\"currentIndex\",\"total\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAqBA,SAAAA,uCAA+DA,CAAAC,YAAE,CAAAC,KAAA,EAG/D,MAAO,CAAAD,YAAY,CAAG,CAAC,CAAIA,YAAY,CAAGC,KAAK,CAAIA,KAAK,CAAGD,YAAY,CACzE\",\"ignoreList\":[]}"};var normalizeLoopIndex=function normalizeLoopIndex_useVisibleRangesTsx2Factory(_ref2){var _worklet_10467342159726_init_data=_ref2._worklet_10467342159726_init_data;var _e=[new global.Error(),1,-27];var normalizeLoopIndex=function normalizeLoopIndex(currentIndex,total){return currentIndex<0?currentIndex%total+total:currentIndex;};normalizeLoopIndex.__closure={};normalizeLoopIndex.__workletHash=10467342159726;normalizeLoopIndex.__pluginVersion="0.5.2";normalizeLoopIndex.__initData=_worklet_10467342159726_init_data;normalizeLoopIndex.__stackDetails=_e;return normalizeLoopIndex;}({_worklet_10467342159726_init_data:_worklet_10467342159726_init_data});var _worklet_12590357434072_init_data={code:"function computeVisibleRanges_useVisibleRangesTsx3(params){const{normalizeWindowSize,normalizeLoopIndex}=this.__closure;const{total=0,loop:loop}=params;const windowSize=normalizeWindowSize(total,params.windowSize);if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(loop&&windowSize>=total){return{negativeRange:[0,0],positiveRange:[0,total-1]};}const positiveCount=Math.round(windowSize/2);const negativeCount=windowSize-positiveCount;let currentIndex=params.currentIndex;if(!Number.isFinite(currentIndex))currentIndex=0;if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));return{negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}currentIndex=normalizeLoopIndex(currentIndex,total);const negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];const positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"computeVisibleRanges_useVisibleRangesTsx3\",\"params\",\"normalizeWindowSize\",\"normalizeLoopIndex\",\"__closure\",\"total\",\"loop\",\"windowSize\",\"negativeRange\",\"positiveRange\",\"positiveCount\",\"Math\",\"round\",\"negativeCount\",\"currentIndex\",\"Number\",\"isFinite\",\"max\",\"min\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AA2BO,SAAAA,yCAKWA,CAAAC,MAAA,QAAAC,mBAAA,CAAAC,kBAAA,OAAAC,SAAA,CAGhB,KAAM,CAAEC,KAAK,CAAG,CAAC,CAAEC,IAAA,CAAAA,IAAK,CAAC,CAAGL,MAAM,CAClC,KAAM,CAAAM,UAAU,CAAGL,mBAAmB,CAACG,KAAK,CAAEJ,MAAM,CAACM,UAAU,CAAC,CAEhE,GAAIF,KAAK,EAAI,CAAC,CAAE,CACd,MAAO,CACLG,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CACrBC,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CACvB,CAAC,CACH,CAEA,GAAIH,IAAI,EAAIC,UAAU,EAAIF,KAAK,CAAE,CAC/B,MAAO,CACLG,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CACrBC,aAAa,CAAE,CAAC,CAAC,CAAEJ,KAAK,CAAG,CAAC,CAC9B,CAAC,CACH,CAEA,KAAM,CAAAK,aAAa,CAAGC,IAAI,CAACC,KAAK,CAACL,UAAU,CAAG,CAAC,CAAC,CAChD,KAAM,CAAAM,aAAa,CAAGN,UAAU,CAAGG,aAAa,CAEhD,GAAI,CAAAI,YAAY,CAAGb,MAAM,CAACa,YAAY,CACtC,GAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,YAAY,CAAC,CAAEA,YAAY,CAAG,CAAC,CAEpD,GAAI,CAACR,IAAI,CAAE,CACTQ,YAAY,CAAGH,IAAI,CAACM,GAAG,CAAC,CAAC,CAAEN,IAAI,CAACO,GAAG,CAACb,KAAK,CAAG,CAAC,CAAES,YAAY,CAAC,CAAC,CAC7D,MAAO,CACLN,aAAa,CAAE,CAACG,IAAI,CAACM,GAAG,CAAC,CAAC,CAAEH,YAAY,EAAIP,UAAU,CAAG,CAAC,CAAC,CAAC,CAAEO,YAAY,CAAC,CAC3EL,aAAa,CAAE,CAACK,YAAY,CAAEH,IAAI,CAACO,GAAG,CAACb,KAAK,CAAG,CAAC,CAAES,YAAY,EAAIP,UAAU,CAAG,CAAC,CAAC,CAAC,CACpF,CAAC,CACH,CAEAO,YAAY,CAAGX,kBAAkB,CAACW,YAAY,CAAET,KAAK,CAAC,CAEtD,KAAM,CAAAG,aAAoB,CAAG,CAC3B,CAACM,YAAY,CAAGD,aAAa,CAAGR,KAAK,EAAIA,KAAK,CAC9C,CAACS,YAAY,CAAG,CAAC,CAAGT,KAAK,EAAIA,KAAK,CACnC,CAED,KAAM,CAAAI,aAAoB,CAAG,CAC3B,CAACK,YAAY,CAAGT,KAAK,EAAIA,KAAK,CAC9B,CAACS,YAAY,CAAGJ,aAAa,CAAGL,KAAK,EAAIA,KAAK,CAC/C,CAED,GAAIG,aAAa,CAAC,CAAC,CAAC,CAAGH,KAAK,EAAIG,aAAa,CAAC,CAAC,CAAC,CAAGA,aAAa,CAAC,CAAC,CAAC,CAAE,CACnEA,aAAa,CAAC,CAAC,CAAC,CAAGH,KAAK,CAAG,CAAC,CAC5BI,aAAa,CAAC,CAAC,CAAC,CAAG,CAAC,CACtB,CACA,GAAIA,aAAa,CAAC,CAAC,CAAC,CAAGA,aAAa,CAAC,CAAC,CAAC,CAAE,CACvCD,aAAa,CAAC,CAAC,CAAC,CAAGH,KAAK,CAAG,CAAC,CAC5BI,aAAa,CAAC,CAAC,CAAC,CAAG,CAAC,CACtB,CAEA,MAAO,CAAED,aAAa,CAAbA,aAAa,CAAEC,aAAA,CAAAA,aAAc,CAAC,CACzC\",\"ignoreList\":[]}"};var computeVisibleRanges=exports.computeVisibleRanges=function computeVisibleRanges_useVisibleRangesTsx3Factory(_ref3){var _worklet_12590357434072_init_data=_ref3._worklet_12590357434072_init_data,normalizeWindowSize=_ref3.normalizeWindowSize,normalizeLoopIndex=_ref3.normalizeLoopIndex;var _e=[new global.Error(),-3,-27];var computeVisibleRanges=function computeVisibleRanges(params){var _params$total=params.total,total=_params$total===void 0?0:_params$total,loop=params.loop;var windowSize=normalizeWindowSize(total,params.windowSize);if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(loop&&windowSize>=total){return{negativeRange:[0,0],positiveRange:[0,total-1]};}var positiveCount=Math.round(windowSize/2);var negativeCount=windowSize-positiveCount;var currentIndex=params.currentIndex;if(!Number.isFinite(currentIndex))currentIndex=0;if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));return{negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}currentIndex=normalizeLoopIndex(currentIndex,total);var negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];var positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};};computeVisibleRanges.__closure={normalizeWindowSize:normalizeWindowSize,normalizeLoopIndex:normalizeLoopIndex};computeVisibleRanges.__workletHash=12590357434072;computeVisibleRanges.__pluginVersion="0.5.2";computeVisibleRanges.__initData=_worklet_12590357434072_init_data;computeVisibleRanges.__stackDetails=_e;return computeVisibleRanges;}({_worklet_12590357434072_init_data:_worklet_12590357434072_init_data,normalizeWindowSize:normalizeWindowSize,normalizeLoopIndex:normalizeLoopIndex});var _worklet_6485309998197_init_data={code:"function useVisibleRangesTsx4(){const{total,computeVisibleRanges,windowSize,loop,viewSize,translation,cachedRanges,isArraysEqual}=this.__closure;if(total<=0){return computeVisibleRanges({total:total,currentIndex:0,windowSize:windowSize,loop:loop});}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}let currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;const newRanges=computeVisibleRanges({total:total,windowSize:windowSize,currentIndex:currentIndex,loop:loop});if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"useVisibleRangesTsx4\",\"total\",\"computeVisibleRanges\",\"windowSize\",\"loop\",\"viewSize\",\"translation\",\"cachedRanges\",\"isArraysEqual\",\"__closure\",\"currentIndex\",\"Number\",\"isFinite\",\"negativeRange\",\"positiveRange\",\"Math\",\"min\",\"round\",\"value\",\"newRanges\",\"current\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAsGiC,SAAAA,oBAAMA,CAAA,QAAAC,KAAA,CAAAC,oBAAA,CAAAC,UAAA,CAAAC,IAAA,CAAAC,QAAA,CAAAC,WAAA,CAAAC,YAAA,CAAAC,aAAA,OAAAC,SAAA,CACnC,GAAIR,KAAK,EAAI,CAAC,CAAE,CACd,MAAO,CAAAC,oBAAoB,CAAC,CAAED,KAAK,CAALA,KAAK,CAAES,YAAY,CAAE,CAAC,CAAEP,UAAU,CAAVA,UAAU,CAAEC,IAAA,CAAAA,IAAK,CAAC,CAAC,CAC3E,CAGA,GAAI,CAACO,MAAM,CAACC,QAAQ,CAACP,QAAQ,CAAC,EAAIA,QAAQ,EAAI,CAAC,CAAE,CAC/C,MAAO,CACLQ,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAU,CAC9BC,aAAa,CAAE,CAAC,CAAC,CAAEC,IAAI,CAACC,GAAG,CAACf,KAAK,CAAG,CAAC,CAAEE,UAAU,CAAG,CAAC,CAAC,CACxD,CAAC,CACH,CAEA,GAAI,CAAAO,YAAY,CAAGK,IAAI,CAACE,KAAK,CAAC,CAACX,WAAW,CAACY,KAAK,CAAGb,QAAQ,CAAC,CAC5D,GAAI,CAACM,MAAM,CAACC,QAAQ,CAACF,YAAY,CAAC,CAAEA,YAAY,CAAG,CAAC,CAEpD,KAAM,CAAAS,SAAS,CAAGjB,oBAAoB,CAAC,CAAED,KAAK,CAALA,KAAK,CAAEE,UAAU,CAAVA,UAAU,CAAEO,YAAY,CAAZA,YAAY,CAAEN,IAAA,CAAAA,IAAK,CAAC,CAAC,CAEjF,GACEG,YAAY,CAACa,OAAO,EACpBZ,aAAa,CAACD,YAAY,CAACa,OAAO,CAACP,aAAa,CAAEM,SAAS,CAACN,aAAa,CAAC,EAC1EL,aAAa,CAACD,YAAY,CAACa,OAAO,CAACN,aAAa,CAAEK,SAAS,CAACL,aAAa,CAAC,CAC1E,CACA,MAAO,CAAAP,YAAY,CAACa,OAAO,CAC7B,CAEAb,YAAY,CAACa,OAAO,CAAGD,SAAS,CAChC,MAAO,CAAAA,SAAS,CAClB\",\"ignoreList\":[]}"};function useVisibleRanges(options){var _options$total=options.total,total=_options$total===void 0?0:_options$total,viewSize=options.viewSize,translation=options.translation,_windowSize=options.windowSize,loop=options.loop;var windowSize=normalizeWindowSize(total,_windowSize);var cachedRanges=(0,_react.useRef)(null);var ranges=(0,_reactNativeReanimated.useDerivedValue)(function useVisibleRangesTsx4Factory(_ref4){var _worklet_6485309998197_init_data=_ref4._worklet_6485309998197_init_data,total=_ref4.total,computeVisibleRanges=_ref4.computeVisibleRanges,windowSize=_ref4.windowSize,loop=_ref4.loop,viewSize=_ref4.viewSize,translation=_ref4.translation,cachedRanges=_ref4.cachedRanges,isArraysEqual=_ref4.isArraysEqual;var _e=[new global.Error(),-9,-27];var useVisibleRangesTsx4=function useVisibleRangesTsx4(){if(total<=0){return computeVisibleRanges({total:total,currentIndex:0,windowSize:windowSize,loop:loop});}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}var currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;var newRanges=computeVisibleRanges({total:total,windowSize:windowSize,currentIndex:currentIndex,loop:loop});if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;};useVisibleRangesTsx4.__closure={total:total,computeVisibleRanges:computeVisibleRanges,windowSize:windowSize,loop:loop,viewSize:viewSize,translation:translation,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual};useVisibleRangesTsx4.__workletHash=6485309998197;useVisibleRangesTsx4.__pluginVersion="0.5.2";useVisibleRangesTsx4.__initData=_worklet_6485309998197_init_data;useVisibleRangesTsx4.__stackDetails=_e;return useVisibleRangesTsx4;}({_worklet_6485309998197_init_data:_worklet_6485309998197_init_data,total:total,computeVisibleRanges:computeVisibleRanges,windowSize:windowSize,loop:loop,viewSize:viewSize,translation:translation,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual}),[loop,total,windowSize,translation,viewSize]);return ranges;}var _worklet_1694653230246_init_data={code:"function isArraysEqual_useVisibleRangesTsx5(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"isArraysEqual_useVisibleRangesTsx5\",\"a\",\"b\",\"length\",\"every\",\"value\",\"index\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAuIA,SAAAA,kCAA0DA,CAAAC,CAAA,CAAAC,CAAA,EAExD,GAAID,CAAC,CAACE,MAAM,GAAKD,CAAC,CAACC,MAAM,CAAE,MAAO,MAAK,CAEvC,MAAO,CAAAF,CAAC,CAACG,KAAK,CAAC,SAACC,KAAK,CAAEC,KAAK,QAAK,CAAAD,KAAK,GAAKH,CAAC,CAACI,KAAK,CAAC,GAAC,CACtD\",\"ignoreList\":[]}"};var isArraysEqual=function isArraysEqual_useVisibleRangesTsx5Factory(_ref5){var _worklet_1694653230246_init_data=_ref5._worklet_1694653230246_init_data;var _e=[new global.Error(),1,-27];var isArraysEqual=function isArraysEqual(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});};isArraysEqual.__closure={};isArraysEqual.__workletHash=1694653230246;isArraysEqual.__pluginVersion="0.5.2";isArraysEqual.__initData=_worklet_1694653230246_init_data;isArraysEqual.__stackDetails=_e;return isArraysEqual;}({_worklet_1694653230246_init_data:_worklet_1694653230246_init_data});
2
2
  //# sourceMappingURL=useVisibleRanges.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNativeReanimated","_worklet_11788449878648_init_data","code","location","sourceMap","useVisibleRanges","options","_options$total","total","viewSize","translation","_windowSize","windowSize","loop","Number","isFinite","cachedRanges","useRef","ranges","useDerivedValue","useVisibleRangesTsx1Factory","_ref","isArraysEqual","_e","global","Error","useVisibleRangesTsx1","negativeRange","positiveRange","Math","min","positiveCount","round","negativeCount","currentIndex","value","newRanges","max","current","__closure","__workletHash","__pluginVersion","__initData","__stackDetails","_worklet_14683962274529_init_data","isArraysEqual_useVisibleRangesTsx2Factory","_ref2","a","b","length","every","index"],"sourceRoot":"../../../src","sources":["hooks/useVisibleRanges.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNativeReanimated","_worklet_857738204961_init_data","code","location","sourceMap","normalizeWindowSize","normalizeWindowSize_useVisibleRangesTsx1Factory","_ref","_e","global","Error","total","windowSize","Number","isFinite","__closure","__workletHash","__pluginVersion","__initData","__stackDetails","_worklet_10467342159726_init_data","normalizeLoopIndex","normalizeLoopIndex_useVisibleRangesTsx2Factory","_ref2","currentIndex","_worklet_12590357434072_init_data","computeVisibleRanges","exports","computeVisibleRanges_useVisibleRangesTsx3Factory","_ref3","params","_params$total","loop","negativeRange","positiveRange","positiveCount","Math","round","negativeCount","max","min","_worklet_6485309998197_init_data","useVisibleRanges","options","_options$total","viewSize","translation","_windowSize","cachedRanges","useRef","ranges","useDerivedValue","useVisibleRangesTsx4Factory","_ref4","isArraysEqual","useVisibleRangesTsx4","value","newRanges","current","_worklet_1694653230246_init_data","isArraysEqual_useVisibleRangesTsx5Factory","_ref5","a","b","length","every","index"],"sourceRoot":"../../../src","sources":["hooks/useVisibleRanges.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselLayout.d.ts","sourceRoot":"","sources":["../../../src/components/CarouselLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAS1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAE3D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;EAmBA;AAED,eAAO,MAAM,cAAc,yEA8MzB,CAAC"}
1
+ {"version":3,"file":"CarouselLayout.d.ts","sourceRoot":"","sources":["../../../src/components/CarouselLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAQhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAE3D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;EAmBA;AAED,eAAO,MAAM,cAAc,yEA+MzB,CAAC"}
@@ -10,6 +10,7 @@ interface Props {
10
10
  loop: boolean;
11
11
  size: number;
12
12
  windowSize?: number;
13
+ defaultIndex: number;
13
14
  autoFillData: boolean;
14
15
  offsetX: SharedValue<number>;
15
16
  handlerOffset: SharedValue<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"ItemRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/ItemRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,UAAU,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CAC/D;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,CA+ElC,CAAC"}
1
+ {"version":3,"file":"ItemRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/ItemRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,UAAU,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CAC/D;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,CAmFlC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollViewGesture.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollViewGesture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAe5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AA4eD,eAAO,MAAM,iBAAiB,oCAAqB,CAAC"}
1
+ {"version":3,"file":"ScrollViewGesture.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollViewGesture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAa5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AA2eD,eAAO,MAAM,iBAAiB,oCAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePropsErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePropsErrorBoundary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,QAkFnF"}
1
+ {"version":3,"file":"usePropsErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePropsErrorBoundary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,QAmFnF"}
@@ -5,6 +5,12 @@ export interface VisibleRanges {
5
5
  positiveRange: Range;
6
6
  }
7
7
  export type IVisibleRanges = SharedValue<VisibleRanges>;
8
+ export declare function computeVisibleRanges(params: {
9
+ total: number;
10
+ windowSize?: number;
11
+ currentIndex: number;
12
+ loop?: boolean;
13
+ }): VisibleRanges;
8
14
  export declare function useVisibleRanges(options: {
9
15
  total: number;
10
16
  viewSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibleRanges.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVisibleRanges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,KAAK,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,cAAc,CAwFjB"}
1
+ {"version":3,"file":"useVisibleRanges.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVisibleRanges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,KAAK,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAgBxD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,aAAa,CAwDhB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,cAAc,CAqCjB"}
@@ -225,7 +225,7 @@ export type TCarouselProps<T = any> = {
225
225
  customConfig?: CustomConfig | (() => CustomConfig);
226
226
  /**
227
227
  * Custom animations.
228
- * Must use `worklet`, Details: https://docs.swmansion.com/react-native-reanimated/docs/2.2.0/worklets/
228
+ * Must be worklet-compatible. See https://docs.swmansion.com/react-native-reanimated/docs/guides/worklets/
229
229
  * @test_coverage ✅ tested in Carousel.test.tsx > should apply the custom animation
230
230
  */
231
231
  customAnimation?: (value: number, index: number) => ViewStyle;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-reanimated-carousel",
3
- "version": "5.0.0-beta.6",
3
+ "version": "5.0.0-beta.8",
4
4
  "packageManager": "yarn@4.0.2",
5
5
  "description": "A performant, customizable carousel for React Native powered by Reanimated.",
6
6
  "author": "Doho <zhaodonghao586@outlook.com> (https://github.com/dohooo)",
@@ -25,7 +25,9 @@
25
25
  "source": "src/index",
26
26
  "files": [
27
27
  "lib",
28
- "src"
28
+ "src",
29
+ "!src/**/*.test.ts",
30
+ "!src/**/*.test.tsx"
29
31
  ],
30
32
  "scripts": {
31
33
  "gif": "node scripts/makegif.js ./scripts/gif-works-directory",
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
- import { StyleSheet, type ViewStyle } from "react-native";
3
- import { GestureHandlerRootView } from "react-native-gesture-handler";
2
+ import { StyleSheet, View, type ViewStyle } from "react-native";
4
3
  import { useAnimatedReaction, useAnimatedStyle, useDerivedValue } from "react-native-reanimated";
5
4
  import { scheduleOnRN } from "react-native-worklets";
6
5
  import { useAutoPlay } from "../hooks/useAutoPlay";
@@ -214,7 +213,7 @@ export const CarouselLayout = React.forwardRef<ICarouselInstance>((_props, ref)
214
213
  ]);
215
214
 
216
215
  return (
217
- <GestureHandlerRootView testID={testID} style={[styles.layoutContainer, style]}>
216
+ <View testID={testID} style={[styles.layoutContainer, style]}>
218
217
  <ScrollViewGesture
219
218
  size={size}
220
219
  key={mode}
@@ -239,6 +238,7 @@ export const CarouselLayout = React.forwardRef<ICarouselInstance>((_props, ref)
239
238
  loop={loop}
240
239
  size={size}
241
240
  windowSize={windowSize}
241
+ defaultIndex={defaultIndex}
242
242
  autoFillData={autoFillData}
243
243
  offsetX={offsetX}
244
244
  handlerOffset={handlerOffset}
@@ -247,7 +247,7 @@ export const CarouselLayout = React.forwardRef<ICarouselInstance>((_props, ref)
247
247
  customAnimation={customAnimation}
248
248
  />
249
249
  </ScrollViewGesture>
250
- </GestureHandlerRootView>
250
+ </View>
251
251
  );
252
252
  });
253
253
 
@@ -9,7 +9,7 @@ import type { TAnimationStyle } from "./ItemLayout";
9
9
  import { ItemLayout } from "./ItemLayout";
10
10
 
11
11
  import type { VisibleRanges } from "../hooks/useVisibleRanges";
12
- import { useVisibleRanges } from "../hooks/useVisibleRanges";
12
+ import { computeVisibleRanges, useVisibleRanges } from "../hooks/useVisibleRanges";
13
13
  import type { CarouselRenderItem } from "../types";
14
14
  import { computedRealIndexWithAutoFillData } from "../utils/computed-with-auto-fill-data";
15
15
 
@@ -20,6 +20,7 @@ interface Props {
20
20
  loop: boolean;
21
21
  size: number;
22
22
  windowSize?: number;
23
+ defaultIndex: number;
23
24
  autoFillData: boolean;
24
25
  offsetX: SharedValue<number>;
25
26
  handlerOffset: SharedValue<number>;
@@ -33,6 +34,7 @@ export const ItemRenderer: FC<Props> = (props) => {
33
34
  data,
34
35
  size,
35
36
  windowSize,
37
+ defaultIndex,
36
38
  handlerOffset,
37
39
  offsetX,
38
40
  dataLength,
@@ -54,11 +56,14 @@ export const ItemRenderer: FC<Props> = (props) => {
54
56
 
55
57
  // Initialize with a sensible default to avoid blank render on first frame
56
58
  const initialRanges: VisibleRanges = React.useMemo(
57
- () => ({
58
- negativeRange: [0, 0],
59
- positiveRange: [0, Math.min(dataLength - 1, (windowSize ?? dataLength) - 1)],
60
- }),
61
- [dataLength, windowSize]
59
+ () =>
60
+ computeVisibleRanges({
61
+ total: dataLength,
62
+ windowSize,
63
+ currentIndex: defaultIndex,
64
+ loop,
65
+ }),
66
+ [dataLength, defaultIndex, loop, windowSize]
62
67
  );
63
68
 
64
69
  const [displayedItems, setDisplayedItems] = React.useState<VisibleRanges>(initialRanges);
@@ -8,9 +8,7 @@ import type {
8
8
  import { GestureDetector } from "react-native-gesture-handler";
9
9
  import Animated, {
10
10
  cancelAnimation,
11
- measure,
12
11
  useAnimatedReaction,
13
- useAnimatedRef,
14
12
  useDerivedValue,
15
13
  useSharedValue,
16
14
  withDecay,
@@ -56,7 +54,7 @@ const IScrollViewGesture: React.FC<PropsWithChildren<Props>> = (props) => {
56
54
  fixedDirection,
57
55
  },
58
56
  common: { size, resolvedSize, sizePhase, sizeExplicit },
59
- layout: { updateContainerSize },
57
+ layout: { containerSize, updateContainerSize },
60
58
  } = useGlobalState();
61
59
 
62
60
  const {
@@ -77,7 +75,6 @@ const IScrollViewGesture: React.FC<PropsWithChildren<Props>> = (props) => {
77
75
  const validStart = useSharedValue(false);
78
76
  const scrollEndTranslation = useSharedValue(0);
79
77
  const scrollEndVelocity = useSharedValue(0);
80
- const containerRef = useAnimatedRef<Animated.View>();
81
78
  const maxScrollDistancePerSwipeIsSet = typeof maxScrollDistancePerSwipe === "number";
82
79
  const minScrollDistancePerSwipeIsSet = typeof minScrollDistancePerSwipe === "number";
83
80
  const sizeReady = useDerivedValue(() => {
@@ -92,18 +89,19 @@ const IScrollViewGesture: React.FC<PropsWithChildren<Props>> = (props) => {
92
89
  if (size <= 0) return 0;
93
90
 
94
91
  if (!loop && !overscrollEnabled) {
95
- const measurement = measure(containerRef);
96
- const containerWidth = measurement?.width || 0;
92
+ const containerMainAxisSize = vertical
93
+ ? containerSize.value.height
94
+ : containerSize.value.width;
97
95
 
98
- // If the item's total width is less than the container's width, then there is no need to scroll.
99
- if (dataLength * size < containerWidth) return 0;
96
+ // If the item's total size is less than the container's size, then there is no need to scroll.
97
+ if (containerMainAxisSize <= 0 || dataLength * size < containerMainAxisSize) return 0;
100
98
 
101
99
  // Disable the "overscroll" effect
102
- return dataLength * size - containerWidth;
100
+ return dataLength * size - containerMainAxisSize;
103
101
  }
104
102
 
105
103
  return dataLength * size;
106
- }, [loop, size, dataLength, overscrollEnabled]);
104
+ }, [loop, size, dataLength, overscrollEnabled, vertical, containerSize]);
107
105
 
108
106
  const withSpring = React.useCallback(
109
107
  (toValue: number, onFinished?: () => void) => {
@@ -515,7 +513,6 @@ const IScrollViewGesture: React.FC<PropsWithChildren<Props>> = (props) => {
515
513
  return (
516
514
  <GestureDetector gesture={gesture}>
517
515
  <Animated.View
518
- ref={containerRef}
519
516
  testID={testID}
520
517
  style={style}
521
518
  onTouchStart={onTouchBegin}
@@ -53,6 +53,6 @@ export function useOnProgressChange(
53
53
  }
54
54
  }
55
55
  },
56
- [loop, autoFillData, rawDataLength, onProgressChange, size]
56
+ [loop, autoFillData, rawDataLength, onProgressChange, size, offsetX, sizeReady]
57
57
  );
58
58
  }
@@ -16,7 +16,7 @@ export function usePropsErrorBoundary(props: TCarouselProps & { dataLength: numb
16
16
  if (__DEV__) {
17
17
  const { style, vertical, width, height, itemWidth, itemHeight, contentContainerStyle } =
18
18
  props;
19
- const { width: styleWidth, height: styleHeight } = StyleSheet.flatten(style) || {};
19
+ const { width: styleWidth, height: styleHeight, flex } = StyleSheet.flatten(style) || {};
20
20
 
21
21
  // Deprecation warnings for width/height props
22
22
  if (typeof width === "number" && !warnedRefs.width) {
@@ -42,10 +42,11 @@ export function usePropsErrorBoundary(props: TCarouselProps & { dataLength: numb
42
42
  }
43
43
 
44
44
  // Updated missing size warnings
45
+ const hasFlexibleContainerSize = typeof flex === "number" && flex > 0;
45
46
  const hasHorizontalContainerSize =
46
- typeof styleWidth === "number" || typeof width === "number";
47
+ styleWidth != null || typeof width === "number" || hasFlexibleContainerSize;
47
48
  const hasVerticalContainerSize =
48
- typeof styleHeight === "number" || typeof height === "number";
49
+ styleHeight != null || typeof height === "number" || hasFlexibleContainerSize;
49
50
 
50
51
  if (!vertical && !hasHorizontalContainerSize && !warnedRefs.horizontal) {
51
52
  console.warn(
@@ -11,6 +11,83 @@ export interface VisibleRanges {
11
11
 
12
12
  export type IVisibleRanges = SharedValue<VisibleRanges>;
13
13
 
14
+ function normalizeWindowSize(total: number, windowSize?: number) {
15
+ "worklet";
16
+
17
+ return typeof windowSize === "number" && Number.isFinite(windowSize) && windowSize > 0
18
+ ? windowSize
19
+ : total;
20
+ }
21
+
22
+ function normalizeLoopIndex(currentIndex: number, total: number) {
23
+ "worklet";
24
+
25
+ return currentIndex < 0 ? (currentIndex % total) + total : currentIndex;
26
+ }
27
+
28
+ export function computeVisibleRanges(params: {
29
+ total: number;
30
+ windowSize?: number;
31
+ currentIndex: number;
32
+ loop?: boolean;
33
+ }): VisibleRanges {
34
+ "worklet";
35
+
36
+ const { total = 0, loop } = params;
37
+ const windowSize = normalizeWindowSize(total, params.windowSize);
38
+
39
+ if (total <= 0) {
40
+ return {
41
+ negativeRange: [0, 0],
42
+ positiveRange: [0, -1],
43
+ };
44
+ }
45
+
46
+ if (loop && windowSize >= total) {
47
+ return {
48
+ negativeRange: [0, 0],
49
+ positiveRange: [0, total - 1],
50
+ };
51
+ }
52
+
53
+ const positiveCount = Math.round(windowSize / 2);
54
+ const negativeCount = windowSize - positiveCount;
55
+
56
+ let currentIndex = params.currentIndex;
57
+ if (!Number.isFinite(currentIndex)) currentIndex = 0;
58
+
59
+ if (!loop) {
60
+ currentIndex = Math.max(0, Math.min(total - 1, currentIndex));
61
+ return {
62
+ negativeRange: [Math.max(0, currentIndex - (windowSize - 1)), currentIndex],
63
+ positiveRange: [currentIndex, Math.min(total - 1, currentIndex + (windowSize - 1))],
64
+ };
65
+ }
66
+
67
+ currentIndex = normalizeLoopIndex(currentIndex, total);
68
+
69
+ const negativeRange: Range = [
70
+ (currentIndex - negativeCount + total) % total,
71
+ (currentIndex - 1 + total) % total,
72
+ ];
73
+
74
+ const positiveRange: Range = [
75
+ (currentIndex + total) % total,
76
+ (currentIndex + positiveCount + total) % total,
77
+ ];
78
+
79
+ if (negativeRange[0] < total && negativeRange[0] > negativeRange[1]) {
80
+ negativeRange[1] = total - 1;
81
+ positiveRange[0] = 0;
82
+ }
83
+ if (positiveRange[0] > positiveRange[1]) {
84
+ negativeRange[1] = total - 1;
85
+ positiveRange[0] = 0;
86
+ }
87
+
88
+ return { negativeRange, positiveRange };
89
+ }
90
+
14
91
  export function useVisibleRanges(options: {
15
92
  total: number;
16
93
  viewSize: number;
@@ -20,18 +97,12 @@ export function useVisibleRanges(options: {
20
97
  }): IVisibleRanges {
21
98
  const { total = 0, viewSize, translation, windowSize: _windowSize, loop } = options;
22
99
 
23
- const windowSize =
24
- typeof _windowSize === "number" && Number.isFinite(_windowSize) && _windowSize > 0
25
- ? _windowSize
26
- : total;
100
+ const windowSize = normalizeWindowSize(total, _windowSize);
27
101
  const cachedRanges = useRef<VisibleRanges | null>(null);
28
102
 
29
103
  const ranges = useDerivedValue(() => {
30
104
  if (total <= 0) {
31
- return {
32
- negativeRange: [0, 0] as Range,
33
- positiveRange: [0, -1] as Range,
34
- };
105
+ return computeVisibleRanges({ total, currentIndex: 0, windowSize, loop });
35
106
  }
36
107
 
37
108
  // Prevent division by zero when viewSize is not yet measured
@@ -42,55 +113,10 @@ export function useVisibleRanges(options: {
42
113
  };
43
114
  }
44
115
 
45
- const positiveCount = Math.round(windowSize / 2);
46
- const negativeCount = windowSize - positiveCount;
47
-
48
116
  let currentIndex = Math.round(-translation.value / viewSize);
49
117
  if (!Number.isFinite(currentIndex)) currentIndex = 0;
50
118
 
51
- let newRanges: VisibleRanges;
52
-
53
- if (loop && windowSize >= total) {
54
- newRanges = {
55
- negativeRange: [0, 0],
56
- positiveRange: [0, total - 1],
57
- };
58
- } else if (!loop) {
59
- // Clamp currentIndex to valid range [0, total-1] for non-loop mode
60
- // When overdragging right, translation.value becomes positive, making currentIndex negative
61
- currentIndex = Math.max(0, Math.min(total - 1, currentIndex));
62
-
63
- // Adjusting negative range if the carousel is not loopable.
64
- // So, It will be only displayed the positive items.
65
- newRanges = {
66
- negativeRange: [Math.max(0, currentIndex - (windowSize - 1)), currentIndex],
67
- positiveRange: [currentIndex, Math.min(total - 1, currentIndex + (windowSize - 1))],
68
- };
69
- } else {
70
- currentIndex = currentIndex < 0 ? (currentIndex % total) + total : currentIndex;
71
-
72
- const negativeRange: Range = [
73
- (currentIndex - negativeCount + total) % total,
74
- (currentIndex - 1 + total) % total,
75
- ];
76
-
77
- const positiveRange: Range = [
78
- (currentIndex + total) % total,
79
- (currentIndex + positiveCount + total) % total,
80
- ];
81
-
82
- if (negativeRange[0] < total && negativeRange[0] > negativeRange[1]) {
83
- negativeRange[1] = total - 1;
84
- positiveRange[0] = 0;
85
- }
86
- if (positiveRange[0] > positiveRange[1]) {
87
- negativeRange[1] = total - 1;
88
- positiveRange[0] = 0;
89
- }
90
-
91
- // console.log({ negativeRange, positiveRange ,total,windowSize,a:total <= _windowSize})
92
- newRanges = { negativeRange, positiveRange };
93
- }
119
+ const newRanges = computeVisibleRanges({ total, windowSize, currentIndex, loop });
94
120
 
95
121
  if (
96
122
  cachedRanges.current &&
package/src/types.ts CHANGED
@@ -242,7 +242,7 @@ export type TCarouselProps<T = any> = {
242
242
  customConfig?: CustomConfig | (() => CustomConfig);
243
243
  /**
244
244
  * Custom animations.
245
- * Must use `worklet`, Details: https://docs.swmansion.com/react-native-reanimated/docs/2.2.0/worklets/
245
+ * Must be worklet-compatible. See https://docs.swmansion.com/react-native-reanimated/docs/guides/worklets/
246
246
  * @test_coverage ✅ tested in Carousel.test.tsx > should apply the custom animation
247
247
  */
248
248
  customAnimation?: (value: number, index: number) => ViewStyle;