react-native-reanimated-carousel 4.0.0-alpha.0 → 4.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.md +21 -160
  2. package/lib/commonjs/components/Carousel.js +231 -0
  3. package/lib/commonjs/components/Carousel.js.map +1 -0
  4. package/lib/commonjs/components/LazyView.js +22 -0
  5. package/lib/commonjs/components/LazyView.js.map +1 -0
  6. package/lib/commonjs/components/ScrollViewGesture.js +297 -0
  7. package/lib/commonjs/components/ScrollViewGesture.js.map +1 -0
  8. package/lib/commonjs/constants/index.js +21 -1
  9. package/lib/commonjs/constants/index.js.map +1 -1
  10. package/lib/commonjs/hooks/useAutoPlay.js +56 -1
  11. package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
  12. package/lib/commonjs/hooks/useCarouselController.js +244 -1
  13. package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
  14. package/lib/commonjs/hooks/useCheckMounted.js +23 -1
  15. package/lib/commonjs/hooks/useCheckMounted.js.map +1 -1
  16. package/lib/commonjs/hooks/useCommonVariables.js +76 -1
  17. package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
  18. package/lib/commonjs/hooks/useInitProps.js +78 -1
  19. package/lib/commonjs/hooks/useInitProps.js.map +1 -1
  20. package/lib/commonjs/hooks/useLayoutConfig.js +39 -1
  21. package/lib/commonjs/hooks/useLayoutConfig.js.map +1 -1
  22. package/lib/commonjs/hooks/useOffsetX.js +48 -1
  23. package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
  24. package/lib/commonjs/hooks/useOnProgressChange.js +38 -1
  25. package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
  26. package/lib/commonjs/hooks/usePropsErrorBoundary.js +36 -1
  27. package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
  28. package/lib/commonjs/hooks/useUpdateGestureConfig.js +20 -0
  29. package/lib/commonjs/hooks/useUpdateGestureConfig.js.map +1 -0
  30. package/lib/commonjs/hooks/useVisibleRanges.js +42 -1
  31. package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
  32. package/lib/commonjs/index.js +13 -1
  33. package/lib/commonjs/index.js.map +1 -1
  34. package/lib/commonjs/layouts/BaseLayout.js +110 -1
  35. package/lib/commonjs/layouts/BaseLayout.js.map +1 -1
  36. package/lib/commonjs/layouts/ParallaxLayout.js +83 -1
  37. package/lib/commonjs/layouts/ParallaxLayout.js.map +1 -1
  38. package/lib/commonjs/layouts/index.js +20 -1
  39. package/lib/commonjs/layouts/index.js.map +1 -1
  40. package/lib/commonjs/layouts/normal.js +27 -1
  41. package/lib/commonjs/layouts/normal.js.map +1 -1
  42. package/lib/commonjs/layouts/parallax.js +38 -1
  43. package/lib/commonjs/layouts/parallax.js.map +1 -1
  44. package/lib/commonjs/layouts/stack.js +215 -1
  45. package/lib/commonjs/layouts/stack.js.map +1 -1
  46. package/lib/commonjs/store/index.js +14 -1
  47. package/lib/commonjs/store/index.js.map +1 -1
  48. package/lib/commonjs/types.js +5 -1
  49. package/lib/commonjs/utils/computeNewIndexWhenDataChanges.js +52 -0
  50. package/lib/commonjs/utils/computeNewIndexWhenDataChanges.js.map +1 -0
  51. package/lib/commonjs/utils/computed-with-auto-fill-data.js +124 -0
  52. package/lib/commonjs/utils/computed-with-auto-fill-data.js.map +1 -0
  53. package/lib/commonjs/utils/deal-with-animation.js +21 -0
  54. package/lib/commonjs/utils/deal-with-animation.js.map +1 -0
  55. package/lib/commonjs/utils/handleroffset-direction.js +16 -0
  56. package/lib/commonjs/utils/handleroffset-direction.js.map +1 -0
  57. package/lib/commonjs/utils/index.test.js +74 -0
  58. package/lib/commonjs/utils/index.test.js.map +1 -0
  59. package/lib/commonjs/utils/log.js +22 -1
  60. package/lib/commonjs/utils/log.js.map +1 -1
  61. package/lib/module/{Carousel.js → components/Carousel.js} +11 -12
  62. package/lib/module/components/Carousel.js.map +1 -0
  63. package/lib/module/{ScrollViewGesture.js → components/ScrollViewGesture.js} +14 -6
  64. package/lib/module/components/ScrollViewGesture.js.map +1 -0
  65. package/lib/module/hooks/useCarouselController.js +3 -3
  66. package/lib/module/hooks/useCarouselController.js.map +1 -1
  67. package/lib/module/hooks/useCommonVariables.js +2 -2
  68. package/lib/module/hooks/useCommonVariables.js.map +1 -1
  69. package/lib/module/hooks/useInitProps.js +1 -3
  70. package/lib/module/hooks/useInitProps.js.map +1 -1
  71. package/lib/module/hooks/useOnProgressChange.js +1 -1
  72. package/lib/module/hooks/useOnProgressChange.js.map +1 -1
  73. package/lib/module/hooks/useUpdateGestureConfig.js +10 -0
  74. package/lib/module/hooks/useUpdateGestureConfig.js.map +1 -0
  75. package/lib/module/index.js +1 -2
  76. package/lib/module/index.js.map +1 -1
  77. package/lib/module/layouts/BaseLayout.js +1 -1
  78. package/lib/module/layouts/BaseLayout.js.map +1 -1
  79. package/lib/module/layouts/ParallaxLayout.js +1 -1
  80. package/lib/module/layouts/ParallaxLayout.js.map +1 -1
  81. package/lib/module/utils/{computedWithAutoFillData.js → computed-with-auto-fill-data.js} +1 -1
  82. package/lib/module/utils/computed-with-auto-fill-data.js.map +1 -0
  83. package/lib/module/utils/{dealWithAnimation.js → deal-with-animation.js} +1 -1
  84. package/lib/module/utils/deal-with-animation.js.map +1 -0
  85. package/lib/module/utils/{handlerOffsetDirection.js → handleroffset-direction.js} +1 -1
  86. package/lib/module/utils/handleroffset-direction.js.map +1 -0
  87. package/lib/typescript/{Carousel.d.ts → components/Carousel.d.ts} +1 -1
  88. package/lib/typescript/hooks/useUpdateGestureConfig.d.ts +4 -0
  89. package/lib/typescript/index.d.ts +2 -2
  90. package/lib/typescript/types.d.ts +103 -103
  91. package/package.json +18 -16
  92. package/src/{Carousel.tsx → components/Carousel.tsx} +13 -13
  93. package/src/{ScrollViewGesture.tsx → components/ScrollViewGesture.tsx} +30 -15
  94. package/src/hooks/useCarouselController.tsx +3 -3
  95. package/src/hooks/useCommonVariables.ts +2 -2
  96. package/src/hooks/useInitProps.ts +1 -3
  97. package/src/hooks/useOnProgressChange.ts +1 -1
  98. package/src/hooks/useUpdateGestureConfig.ts +13 -0
  99. package/src/index.tsx +2 -2
  100. package/src/layouts/BaseLayout.tsx +1 -1
  101. package/src/layouts/ParallaxLayout.tsx +1 -1
  102. package/src/types.ts +122 -124
  103. package/README.zh-CN.md +0 -202
  104. package/lib/commonjs/Carousel.js +0 -2
  105. package/lib/commonjs/Carousel.js.map +0 -1
  106. package/lib/commonjs/LazyView.js +0 -2
  107. package/lib/commonjs/LazyView.js.map +0 -1
  108. package/lib/commonjs/ScrollViewGesture.js +0 -2
  109. package/lib/commonjs/ScrollViewGesture.js.map +0 -1
  110. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js +0 -2
  111. package/lib/commonjs/hooks/computeNewIndexWhenDataChanges.js.map +0 -1
  112. package/lib/commonjs/hooks/index.test.js +0 -2
  113. package/lib/commonjs/hooks/index.test.js.map +0 -1
  114. package/lib/commonjs/utils/computedWithAutoFillData.js +0 -2
  115. package/lib/commonjs/utils/computedWithAutoFillData.js.map +0 -1
  116. package/lib/commonjs/utils/dealWithAnimation.js +0 -2
  117. package/lib/commonjs/utils/dealWithAnimation.js.map +0 -1
  118. package/lib/commonjs/utils/handlerOffsetDirection.js +0 -2
  119. package/lib/commonjs/utils/handlerOffsetDirection.js.map +0 -1
  120. package/lib/module/Carousel.js.map +0 -1
  121. package/lib/module/ScrollViewGesture.js.map +0 -1
  122. package/lib/module/utils/computedWithAutoFillData.js.map +0 -1
  123. package/lib/module/utils/dealWithAnimation.js.map +0 -1
  124. package/lib/module/utils/handlerOffsetDirection.js.map +0 -1
  125. /package/lib/module/{LazyView.js → components/LazyView.js} +0 -0
  126. /package/lib/module/{LazyView.js.map → components/LazyView.js.map} +0 -0
  127. /package/lib/module/{hooks → utils}/computeNewIndexWhenDataChanges.js +0 -0
  128. /package/lib/module/{hooks → utils}/computeNewIndexWhenDataChanges.js.map +0 -0
  129. /package/lib/module/{hooks → utils}/index.test.js +0 -0
  130. /package/lib/module/{hooks → utils}/index.test.js.map +0 -0
  131. /package/lib/typescript/{LazyView.d.ts → components/LazyView.d.ts} +0 -0
  132. /package/lib/typescript/{ScrollViewGesture.d.ts → components/ScrollViewGesture.d.ts} +0 -0
  133. /package/lib/typescript/{hooks → utils}/computeNewIndexWhenDataChanges.d.ts +0 -0
  134. /package/lib/typescript/utils/{computedWithAutoFillData.d.ts → computed-with-auto-fill-data.d.ts} +0 -0
  135. /package/lib/typescript/utils/{dealWithAnimation.d.ts → deal-with-animation.d.ts} +0 -0
  136. /package/lib/typescript/utils/{handlerOffsetDirection.d.ts → handleroffset-direction.d.ts} +0 -0
  137. /package/lib/typescript/{hooks → utils}/index.test.d.ts +0 -0
  138. /package/src/{LazyView.tsx → components/LazyView.tsx} +0 -0
  139. /package/src/{hooks → utils}/computeNewIndexWhenDataChanges.ts +0 -0
  140. /package/src/utils/{computedWithAutoFillData.ts → computed-with-auto-fill-data.ts} +0 -0
  141. /package/src/utils/{dealWithAnimation.ts → deal-with-animation.ts} +0 -0
  142. /package/src/utils/{handlerOffsetDirection.ts → handleroffset-direction.ts} +0 -0
  143. /package/src/{hooks → utils}/index.test.ts +0 -0
@@ -1,2 +1,245 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.useCarouselController=useCarouselController;var _react=_interopRequireWildcard(require("react"));var _reactNativeReanimated=require("react-native-reanimated");var _constants=require("../constants");var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");var _dealWithAnimation=require("../utils/dealWithAnimation");var _handlerOffsetDirection=require("../utils/handlerOffsetDirection");var _log=require("../utils/log");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _worklet_11883385583138_init_data={code:"function anonymous() {\n const {\n handlerOffset,\n round,\n size,\n dataInfo,\n convertToSharedIndex,\n loop,\n autoFillData\n } = this._closure;\n const handlerOffsetValue = handlerOffset.value;\n const toInt = round(handlerOffsetValue / size) % dataInfo.length;\n const isPositive = handlerOffsetValue <= 0;\n const i = isPositive ? Math.abs(toInt) : Math.abs(toInt > 0 ? dataInfo.length - toInt : 0);\n const newSharedIndexValue = convertToSharedIndex({\n loop: loop,\n rawDataLength: dataInfo.originalLength,\n autoFillData: autoFillData,\n index: i\n });\n return {\n i: i,\n newSharedIndexValue: newSharedIndexValue\n };\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"handlerOffset\",\"round\",\"size\",\"dataInfo\",\"convertToSharedIndex\",\"loop\",\"autoFillData\",\"_closure\",\"handlerOffsetValue\",\"value\",\"toInt\",\"length\",\"isPositive\",\"i\",\"Math\",\"abs\",\"newSharedIndexValue\",\"rawDataLength\",\"originalLength\",\"index\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx\"],\"mappings\":\"AAmFI,SAAAA,SAAMA,CAAA;EAAA;IAAAC,aAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,oBAAA;IAAAC,IAAA;IAAAC;EAAA,SAAAC,QAAA;EACJ,MAAMC,kBAAkB,GAAGR,aAAa,CAACS,KAAK;EAC9C,MAAMC,KAAK,GAAGT,KAAK,CAACO,kBAAkB,GAAGN,IAAI,CAAC,GAAGC,QAAQ,CAACQ,MAAM;EAChE,MAAMC,UAAU,GAAGJ,kBAAkB,IAAI,CAAC;EAC1C,MAAMK,CAAC,GAAGD,UAAU,GAChBE,IAAI,CAACC,GAAG,CAACL,KAAK,CAAC,GACfI,IAAI,CAACC,GAAG,CAACL,KAAK,GAAG,CAAC,GAAGP,QAAQ,CAACQ,MAAM,GAAGD,KAAK,GAAG,CAAC,CAAC;EAErD,MAAMM,mBAAmB,GAAGZ,oBAAoB,CAAC;IAC/CC,IAAI,EAAJA,IAAI;IACJY,aAAa,EAAEd,QAAQ,CAACe,cAAc;IACtCZ,YAAY,EAAEA,YAAa;IAC3Ba,KAAK,EAAEN;EACT,CAAC,CAAC;EAEF,OAAO;IACLA,CAAC,EAADA,CAAC;IACDG,mBAAA,EAAAA;EACF,CAAC;AACH\"}"};var _worklet_6063199752963_init_data={code:"function anonymous({\n i: i,\n newSharedIndexValue: newSharedIndexValue\n}) {\n const {\n index,\n runOnJS,\n setSharedIndex\n } = this._closure;\n index.value = i;\n runOnJS(setSharedIndex)(newSharedIndexValue);\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"i\",\"newSharedIndexValue\",\"index\",\"runOnJS\",\"setSharedIndex\",\"_closure\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx\"],\"mappings\":\"AAuGI,SAACA,UAAA;EAAEC,CAAC,EAADA,CAAC;EAAEC,mBAAA,EAAAA;AAAoB,CAAC,EAAK;EAAA;IAAAC,KAAA;IAAAC,OAAA;IAAAC;EAAA,SAAAC,QAAA;EAC9BH,KAAK,CAACI,KAAK,GAAGN,CAAC;EACfG,OAAO,CAACC,cAAc,CAAC,CAACH,mBAAmB,CAAC;AAC9C\"}"};var _worklet_8876815392037_init_data={code:"function anonymous(toValue, onFinished) {\n const {\n runOnJS,\n onScrollEnd,\n duration,\n Easing,\n dealWithAnimation,\n withAnimation\n } = this._closure;\n var _withAnimation;\n const callback = function (isFinished) {\n \"worklet\";\n\n if (isFinished) {\n runOnJS(onScrollEnd)();\n onFinished && runOnJS(onFinished)();\n }\n };\n const defaultWithAnimation = {\n type: \"timing\",\n config: {\n duration: duration,\n easing: Easing.easeOutQuart\n }\n };\n return dealWithAnimation((_withAnimation = withAnimation) !== null && _withAnimation !== void 0 ? _withAnimation : defaultWithAnimation)(toValue, callback);\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"toValue\",\"onFinished\",\"runOnJS\",\"onScrollEnd\",\"duration\",\"Easing\",\"dealWithAnimation\",\"withAnimation\",\"_closure\",\"_withAnimation\",\"callback\",\"isFinished\",\"defaultWithAnimation\",\"type\",\"config\",\"easing\",\"easeOutQuart\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx\"],\"mappings\":\"AA+II,SAACA,SAAeA,CAAAC,OAAE,EAAAC,UAA4B;EAAA;IAAAC,OAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,MAAA;IAAAC,iBAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,IAAAC,cAAA;EAE5C,MAAMC,QAAQ,GAAG,SAAAA,CAACC,UAAmB,EAAK;IACxC,SAAS;;IACT,IAAIA,UAAU,EAAE;MACdT,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC;MACtBF,UAAU,IAAIC,OAAO,CAACD,UAAU,CAAC,CAAC,CAAC;IACrC;EACF,CAAC;EAED,MAAMW,oBAAyC,GAAG;IAChDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;MAAEV,QAAQ,EAARA,QAAQ;MAAEW,MAAM,EAAEV,MAAM,CAACW;IAAa;EAClD,CAAC;EAED,OAAOV,iBAAiB,EAAAG,cAAA,GAACF,aAAa,cAAAE,cAAA,cAAAA,cAAA,GAAIG,oBAAoB,CAAC,CAC7DZ,OAAO,EACPU,QACF,CAAC;AACH\"}"};var _worklet_1856840040824_init_data={code:"function anonymous(isFinished) {\n const {\n runOnJS,\n onScrollEnd,\n onFinished\n } = this._closure;\n if (isFinished) {\n runOnJS(onScrollEnd)();\n onFinished && runOnJS(onFinished)();\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"isFinished\",\"runOnJS\",\"onScrollEnd\",\"onFinished\",\"_closure\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx\"],\"mappings\":\"AAiJuB,SAACA,UAAAC,UAAwB;EAAA;IAAAC,OAAA;IAAAC,WAAA;IAAAC;EAAA,SAAAC,QAAA;EAExC,IAAIJ,UAAU,EAAE;IACdC,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC;IACtBC,UAAU,IAAIF,OAAO,CAACE,UAAU,CAAC,CAAC,CAAC;EACrC;AACF\"}"};var _worklet_7037612364285_init_data={code:"function anonymous(opts = {}) {\n const {\n canSliding,\n loop,\n index,\n dataInfo,\n onScrollBegin,\n currentFixedPage,\n handlerOffset,\n scrollWithTiming,\n size\n } = this._closure;\n var _onScrollBegin;\n const {\n count = 1,\n animated = true,\n onFinished: onFinished\n } = opts;\n if (!canSliding() || !loop && index.value >= dataInfo.length - 1) return;\n (_onScrollBegin = onScrollBegin) === null || _onScrollBegin === void 0 ? void 0 : _onScrollBegin();\n const nextPage = currentFixedPage() + count;\n index.value = nextPage;\n if (animated) {\n handlerOffset.value = scrollWithTiming(-nextPage * size, onFinished);\n } else {\n handlerOffset.value = -nextPage * size;\n onFinished === null || onFinished === void 0 ? void 0 : onFinished();\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"opts\",\"canSliding\",\"loop\",\"index\",\"dataInfo\",\"onScrollBegin\",\"currentFixedPage\",\"handlerOffset\",\"scrollWithTiming\",\"size\",\"_closure\",\"_onScrollBegin\",\"count\",\"animated\",\"onFinished\",\"value\",\"length\",\"nextPage\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.tsx\"],\"mappings\":\"AAuKI,SAACA,SAAgCA,CAACC,IAAK;EAAA;IAAAC,UAAA;IAAAC,IAAA;IAAAC,KAAA;IAAAC,QAAA;IAAAC,aAAA;IAAAC,gBAAA;IAAAC,aAAA;IAAAC,gBAAA;IAAAC;EAAA,SAAAC,QAAA;EAAA,IAAAC,cAAA;EAErC,MAAM;IAAEC,KAAK,GAAG,CAAC;IAAEC,QAAQ,GAAG,IAAI;IAAEC,UAAA,EAAAA;EAAW,CAAC,GAAGd,IAAI;EACvD,IAAI,CAACC,UAAU,CAAC,CAAC,IAAK,CAACC,IAAI,IAAIC,KAAK,CAACY,KAAK,IAAIX,QAAQ,CAACY,MAAM,GAAG,CAAE,EAChE;EAEF,CAAAL,cAAA,GAAAN,aAAa,cAAAM,cAAA,uBAAbA,cAAA,CAAgB,CAAC;EAEjB,MAAMM,QAAQ,GAAGX,gBAAgB,CAAC,CAAC,GAAGM,KAAK;EAC3CT,KAAK,CAACY,KAAK,GAAGE,QAAQ;EAEtB,IAAIJ,QAAQ,EAAE;IACZN,aAAa,CAACQ,KAAK,GAAGP,gBAAgB,CACpC,CAACS,QAAQ,GAAGR,IAAI,EAChBK,UACF,CAAQ;EACV,CAAC,MACI;IACHP,aAAa,CAACQ,KAAK,GAAG,CAACE,QAAQ,GAAGR,IAAI;IACtCK,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAG,CAAC;EAChB;AACF\"}"};function useCarouselController(options){var size=options.size,loop=options.loop,dataLength=options.dataLength,handlerOffset=options.handlerOffset,withAnimation=options.withAnimation,_options$defaultIndex=options.defaultIndex,defaultIndex=_options$defaultIndex===void 0?0:_options$defaultIndex,duration=options.duration,autoFillData=options.autoFillData;var dataInfo=_react.default.useMemo(function(){return{length:dataLength,disable:!dataLength,originalLength:dataLength};},[dataLength]);var index=(0,_reactNativeReanimated.useSharedValue)(defaultIndex);var sharedIndex=(0,_react.useRef)(defaultIndex);var sharedPreIndex=(0,_react.useRef)(defaultIndex);var currentFixedPage=_react.default.useCallback(function(){if(loop)return-Math.round(handlerOffset.value/size);var fixed=handlerOffset.value/size%dataInfo.length;return Math.round(handlerOffset.value<=0?Math.abs(fixed):Math.abs(fixed>0?dataInfo.length-fixed:0));},[handlerOffset,dataInfo,size,loop]);function setSharedIndex(newSharedIndex){sharedIndex.current=newSharedIndex;}(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _e=[new global.Error(),-8,-27];var _f=function _f(){var handlerOffsetValue=handlerOffset.value;var toInt=(0,_log.round)(handlerOffsetValue/size)%dataInfo.length;var isPositive=handlerOffsetValue<=0;var i=isPositive?Math.abs(toInt):Math.abs(toInt>0?dataInfo.length-toInt:0);var newSharedIndexValue=(0,_computedWithAutoFillData.convertToSharedIndex)({loop:loop,rawDataLength:dataInfo.originalLength,autoFillData:autoFillData,index:i});return{i:i,newSharedIndexValue:newSharedIndexValue};};_f._closure={handlerOffset:handlerOffset,round:_log.round,size:size,dataInfo:dataInfo,convertToSharedIndex:_computedWithAutoFillData.convertToSharedIndex,loop:loop,autoFillData:autoFillData};_f.__initData=_worklet_11883385583138_init_data;_f.__workletHash=11883385583138;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),function(){var _e=[new global.Error(),-4,-27];var _f=function _f(_ref){var i=_ref.i,newSharedIndexValue=_ref.newSharedIndexValue;index.value=i;(0,_reactNativeReanimated.runOnJS)(setSharedIndex)(newSharedIndexValue);};_f._closure={index:index,runOnJS:_reactNativeReanimated.runOnJS,setSharedIndex:setSharedIndex};_f.__initData=_worklet_6063199752963_init_data;_f.__workletHash=6063199752963;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[sharedPreIndex,sharedIndex,size,dataInfo,index,loop,autoFillData,handlerOffset]);var getCurrentIndex=_react.default.useCallback(function(){var realIndex=(0,_computedWithAutoFillData.computedRealIndexWithAutoFillData)({index:index.value,dataLength:dataInfo.originalLength,loop:loop,autoFillData:autoFillData});return realIndex;},[index,autoFillData,dataInfo,loop]);var canSliding=_react.default.useCallback(function(){return!dataInfo.disable;},[dataInfo]);var onScrollEnd=_react.default.useCallback(function(){options.onScrollEnd==null?void 0:options.onScrollEnd();},[options]);var onScrollBegin=_react.default.useCallback(function(){options.onScrollBegin==null?void 0:options.onScrollBegin();},[options]);var scrollWithTiming=_react.default.useCallback(function(){var _e=[new global.Error(),-7,-27];var _f=function _f(toValue,onFinished){var callback=function(){var _e=[new global.Error(),-4,-27];var _f=function _f(isFinished){if(isFinished){(0,_reactNativeReanimated.runOnJS)(onScrollEnd)();onFinished&&(0,_reactNativeReanimated.runOnJS)(onFinished)();}};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,onFinished:onFinished};_f.__initData=_worklet_1856840040824_init_data;_f.__workletHash=1856840040824;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}();var defaultWithAnimation={type:"timing",config:{duration:duration,easing:_constants.Easing.easeOutQuart}};return(0,_dealWithAnimation.dealWithAnimation)(withAnimation!=null?withAnimation:defaultWithAnimation)(toValue,callback);};_f._closure={runOnJS:_reactNativeReanimated.runOnJS,onScrollEnd:onScrollEnd,duration:duration,Easing:_constants.Easing,dealWithAnimation:_dealWithAnimation.dealWithAnimation,withAnimation:withAnimation};_f.__initData=_worklet_8876815392037_init_data;_f.__workletHash=8876815392037;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[duration,withAnimation,onScrollEnd]);var next=_react.default.useCallback(function(){var _e=[new global.Error(),-10,-27];var _f=function _f(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count=opts.count,count=_opts$count===void 0?1:_opts$count,_opts$animated=opts.animated,animated=_opts$animated===void 0?true:_opts$animated,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value>=dataInfo.length-1)return;onScrollBegin==null?void 0:onScrollBegin();var nextPage=currentFixedPage()+count;index.value=nextPage;if(animated){handlerOffset.value=scrollWithTiming(-nextPage*size,onFinished);}else{handlerOffset.value=-nextPage*size;onFinished==null?void 0:onFinished();}};_f._closure={canSliding:canSliding,loop:loop,index:index,dataInfo:dataInfo,onScrollBegin:onScrollBegin,currentFixedPage:currentFixedPage,handlerOffset:handlerOffset,scrollWithTiming:scrollWithTiming,size:size};_f.__initData=_worklet_7037612364285_init_data;_f.__workletHash=7037612364285;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[canSliding,loop,index,dataInfo,onScrollBegin,handlerOffset,size,scrollWithTiming,currentFixedPage]);var prev=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _opts$count2=opts.count,count=_opts$count2===void 0?1:_opts$count2,_opts$animated2=opts.animated,animated=_opts$animated2===void 0?true:_opts$animated2,onFinished=opts.onFinished;if(!canSliding()||!loop&&index.value<=0)return;onScrollBegin==null?void 0:onScrollBegin();var prevPage=currentFixedPage()-count;index.value=prevPage;if(animated){handlerOffset.value=scrollWithTiming(-prevPage*size,onFinished);}else{handlerOffset.value=-prevPage*size;onFinished==null?void 0:onFinished();}},[canSliding,loop,index,onScrollBegin,handlerOffset,size,scrollWithTiming,currentFixedPage]);var to=_react.default.useCallback(function(opts){var i=opts.i,_opts$animated3=opts.animated,animated=_opts$animated3===void 0?false:_opts$animated3,onFinished=opts.onFinished;if(i===index.value)return;if(!canSliding())return;onScrollBegin==null?void 0:onScrollBegin();var direction=(0,_handlerOffsetDirection.handlerOffsetDirection)(handlerOffset);var offset=i*size*direction;var totalSize=dataInfo.length*size;var isCloseToNextLoop=false;if(loop){isCloseToNextLoop=Math.abs(handlerOffset.value%totalSize)/totalSize>=0.5;}var finalOffset=(Math.floor(Math.abs(handlerOffset.value/totalSize))+(isCloseToNextLoop?1:0))*totalSize*direction+offset;if(animated){index.value=i;handlerOffset.value=scrollWithTiming(finalOffset,onFinished);}else{handlerOffset.value=finalOffset;index.value=i;onFinished==null?void 0:onFinished();}},[index,canSliding,onScrollBegin,handlerOffset,size,dataInfo.length,loop,scrollWithTiming]);var scrollTo=_react.default.useCallback(function(){var opts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var i=opts.index,count=opts.count,_opts$animated4=opts.animated,animated=_opts$animated4===void 0?false:_opts$animated4,onFinished=opts.onFinished;if(typeof i==="number"&&i>-1){to({i:i,animated:animated,onFinished:onFinished});return;}if(!count)return;var n=Math.round(count);if(n<0)prev({count:Math.abs(n),animated:animated,onFinished:onFinished});else next({count:n,animated:animated,onFinished:onFinished});},[prev,next,to]);return{next:next,prev:prev,scrollTo:scrollTo,getCurrentIndex:getCurrentIndex,getSharedIndex:function getSharedIndex(){return sharedIndex.current;}};}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCarouselController = useCarouselController;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNativeReanimated = require("react-native-reanimated");
11
+
12
+ var _constants = require("../constants");
13
+
14
+ var _computedWithAutoFillData = require("../utils/computed-with-auto-fill-data");
15
+
16
+ var _dealWithAnimation = require("../utils/deal-with-animation");
17
+
18
+ var _handleroffsetDirection = require("../utils/handleroffset-direction");
19
+
20
+ var _log = require("../utils/log");
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ function useCarouselController(options) {
27
+ const {
28
+ size,
29
+ loop,
30
+ dataLength,
31
+ handlerOffset,
32
+ withAnimation,
33
+ defaultIndex = 0,
34
+ duration,
35
+ autoFillData
36
+ } = options;
37
+
38
+ const dataInfo = _react.default.useMemo(() => ({
39
+ length: dataLength,
40
+ disable: !dataLength,
41
+ originalLength: dataLength
42
+ }), [dataLength]);
43
+
44
+ const index = (0, _reactNativeReanimated.useSharedValue)(defaultIndex); // The Index displayed to the user
45
+
46
+ const sharedIndex = (0, _react.useRef)(defaultIndex);
47
+ const sharedPreIndex = (0, _react.useRef)(defaultIndex);
48
+
49
+ const currentFixedPage = _react.default.useCallback(() => {
50
+ if (loop) return -Math.round(handlerOffset.value / size);
51
+ const fixed = handlerOffset.value / size % dataInfo.length;
52
+ return Math.round(handlerOffset.value <= 0 ? Math.abs(fixed) : Math.abs(fixed > 0 ? dataInfo.length - fixed : 0));
53
+ }, [handlerOffset, dataInfo, size, loop]);
54
+
55
+ function setSharedIndex(newSharedIndex) {
56
+ sharedIndex.current = newSharedIndex;
57
+ }
58
+
59
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => {
60
+ const handlerOffsetValue = handlerOffset.value;
61
+ const toInt = (0, _log.round)(handlerOffsetValue / size) % dataInfo.length;
62
+ const isPositive = handlerOffsetValue <= 0;
63
+ const i = isPositive ? Math.abs(toInt) : Math.abs(toInt > 0 ? dataInfo.length - toInt : 0);
64
+ const newSharedIndexValue = (0, _computedWithAutoFillData.convertToSharedIndex)({
65
+ loop,
66
+ rawDataLength: dataInfo.originalLength,
67
+ autoFillData: autoFillData,
68
+ index: i
69
+ });
70
+ return {
71
+ i,
72
+ newSharedIndexValue
73
+ };
74
+ }, _ref => {
75
+ let {
76
+ i,
77
+ newSharedIndexValue
78
+ } = _ref;
79
+ index.value = i;
80
+ (0, _reactNativeReanimated.runOnJS)(setSharedIndex)(newSharedIndexValue);
81
+ }, [sharedPreIndex, sharedIndex, size, dataInfo, index, loop, autoFillData, handlerOffset]);
82
+
83
+ const getCurrentIndex = _react.default.useCallback(() => {
84
+ const realIndex = (0, _computedWithAutoFillData.computedRealIndexWithAutoFillData)({
85
+ index: index.value,
86
+ dataLength: dataInfo.originalLength,
87
+ loop,
88
+ autoFillData: autoFillData
89
+ });
90
+ return realIndex;
91
+ }, [index, autoFillData, dataInfo, loop]);
92
+
93
+ const canSliding = _react.default.useCallback(() => {
94
+ return !dataInfo.disable;
95
+ }, [dataInfo]);
96
+
97
+ const onScrollEnd = _react.default.useCallback(() => {
98
+ var _options$onScrollEnd;
99
+
100
+ (_options$onScrollEnd = options.onScrollEnd) === null || _options$onScrollEnd === void 0 ? void 0 : _options$onScrollEnd.call(options);
101
+ }, [options]);
102
+
103
+ const onScrollBegin = _react.default.useCallback(() => {
104
+ var _options$onScrollBegi;
105
+
106
+ (_options$onScrollBegi = options.onScrollBegin) === null || _options$onScrollBegi === void 0 ? void 0 : _options$onScrollBegi.call(options);
107
+ }, [options]);
108
+
109
+ const scrollWithTiming = _react.default.useCallback((toValue, onFinished) => {
110
+ "worklet";
111
+
112
+ const callback = isFinished => {
113
+ "worklet";
114
+
115
+ if (isFinished) {
116
+ (0, _reactNativeReanimated.runOnJS)(onScrollEnd)();
117
+ onFinished && (0, _reactNativeReanimated.runOnJS)(onFinished)();
118
+ }
119
+ };
120
+
121
+ const defaultWithAnimation = {
122
+ type: "timing",
123
+ config: {
124
+ duration,
125
+ easing: _constants.Easing.easeOutQuart
126
+ }
127
+ };
128
+ return (0, _dealWithAnimation.dealWithAnimation)(withAnimation !== null && withAnimation !== void 0 ? withAnimation : defaultWithAnimation)(toValue, callback);
129
+ }, [duration, withAnimation, onScrollEnd]);
130
+
131
+ const next = _react.default.useCallback(function () {
132
+ "worklet";
133
+
134
+ let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
135
+ const {
136
+ count = 1,
137
+ animated = true,
138
+ onFinished
139
+ } = opts;
140
+ if (!canSliding() || !loop && index.value >= dataInfo.length - 1) return;
141
+ onScrollBegin === null || onScrollBegin === void 0 ? void 0 : onScrollBegin();
142
+ const nextPage = currentFixedPage() + count;
143
+ index.value = nextPage;
144
+
145
+ if (animated) {
146
+ handlerOffset.value = scrollWithTiming(-nextPage * size, onFinished);
147
+ } else {
148
+ handlerOffset.value = -nextPage * size;
149
+ onFinished === null || onFinished === void 0 ? void 0 : onFinished();
150
+ }
151
+ }, [canSliding, loop, index, dataInfo, onScrollBegin, handlerOffset, size, scrollWithTiming, currentFixedPage]);
152
+
153
+ const prev = _react.default.useCallback(function () {
154
+ let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
155
+ const {
156
+ count = 1,
157
+ animated = true,
158
+ onFinished
159
+ } = opts;
160
+ if (!canSliding() || !loop && index.value <= 0) return;
161
+ onScrollBegin === null || onScrollBegin === void 0 ? void 0 : onScrollBegin();
162
+ const prevPage = currentFixedPage() - count;
163
+ index.value = prevPage;
164
+
165
+ if (animated) {
166
+ handlerOffset.value = scrollWithTiming(-prevPage * size, onFinished);
167
+ } else {
168
+ handlerOffset.value = -prevPage * size;
169
+ onFinished === null || onFinished === void 0 ? void 0 : onFinished();
170
+ }
171
+ }, [canSliding, loop, index, onScrollBegin, handlerOffset, size, scrollWithTiming, currentFixedPage]);
172
+
173
+ const to = _react.default.useCallback(opts => {
174
+ const {
175
+ i,
176
+ animated = false,
177
+ onFinished
178
+ } = opts;
179
+ if (i === index.value) return;
180
+ if (!canSliding()) return;
181
+ onScrollBegin === null || onScrollBegin === void 0 ? void 0 : onScrollBegin(); // direction -> 1 | -1
182
+
183
+ const direction = (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffset); // target offset
184
+
185
+ const offset = i * size * direction; // page width size * page count
186
+
187
+ const totalSize = dataInfo.length * size;
188
+ let isCloseToNextLoop = false;
189
+
190
+ if (loop) {
191
+ isCloseToNextLoop = Math.abs(handlerOffset.value % totalSize) / totalSize >= 0.5;
192
+ }
193
+
194
+ const finalOffset = (Math.floor(Math.abs(handlerOffset.value / totalSize)) + (isCloseToNextLoop ? 1 : 0)) * totalSize * direction + offset;
195
+
196
+ if (animated) {
197
+ index.value = i;
198
+ handlerOffset.value = scrollWithTiming(finalOffset, onFinished);
199
+ } else {
200
+ handlerOffset.value = finalOffset;
201
+ index.value = i;
202
+ onFinished === null || onFinished === void 0 ? void 0 : onFinished();
203
+ }
204
+ }, [index, canSliding, onScrollBegin, handlerOffset, size, dataInfo.length, loop, scrollWithTiming]);
205
+
206
+ const scrollTo = _react.default.useCallback(function () {
207
+ let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
208
+ const {
209
+ index: i,
210
+ count,
211
+ animated = false,
212
+ onFinished
213
+ } = opts;
214
+
215
+ if (typeof i === "number" && i > -1) {
216
+ to({
217
+ i,
218
+ animated,
219
+ onFinished
220
+ });
221
+ return;
222
+ }
223
+
224
+ if (!count) return;
225
+ const n = Math.round(count);
226
+ if (n < 0) prev({
227
+ count: Math.abs(n),
228
+ animated,
229
+ onFinished
230
+ });else next({
231
+ count: n,
232
+ animated,
233
+ onFinished
234
+ });
235
+ }, [prev, next, to]);
236
+
237
+ return {
238
+ next,
239
+ prev,
240
+ scrollTo,
241
+ getCurrentIndex,
242
+ getSharedIndex: () => sharedIndex.current
243
+ };
244
+ }
2
245
  //# sourceMappingURL=useCarouselController.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useCarouselController.tsx"],"names":["useCarouselController","options","size","loop","dataLength","handlerOffset","withAnimation","defaultIndex","duration","autoFillData","dataInfo","React","useMemo","length","disable","originalLength","index","sharedIndex","sharedPreIndex","currentFixedPage","useCallback","Math","round","value","fixed","abs","setSharedIndex","newSharedIndex","current","handlerOffsetValue","toInt","isPositive","i","newSharedIndexValue","rawDataLength","convertToSharedIndex","runOnJS","getCurrentIndex","realIndex","canSliding","onScrollEnd","onScrollBegin","scrollWithTiming","toValue","onFinished","callback","isFinished","defaultWithAnimation","type","config","easing","Easing","easeOutQuart","dealWithAnimation","next","opts","count","animated","nextPage","prev","prevPage","to","direction","offset","totalSize","isCloseToNextLoop","finalOffset","floor","scrollTo","n","getSharedIndex"],"mappings":"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","sourcesContent":["import React, { useRef } from \"react\";\nimport type Animated from \"react-native-reanimated\";\nimport {\n runOnJS,\n useAnimatedReaction,\n useSharedValue,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"../constants\";\nimport type {\n TCarouselActionOptions,\n TCarouselProps,\n WithTimingAnimation,\n} from \"../types\";\nimport { computedRealIndexWithAutoFillData, convertToSharedIndex } from \"../utils/computedWithAutoFillData\";\nimport { dealWithAnimation } from \"../utils/dealWithAnimation\";\nimport { handlerOffsetDirection } from \"../utils/handlerOffsetDirection\";\nimport { round } from \"../utils/log\";\n\ninterface IOpts {\n loop: boolean\n size: number\n dataLength: number\n autoFillData: TCarouselProps[\"autoFillData\"]\n handlerOffset: Animated.SharedValue<number>\n withAnimation?: TCarouselProps[\"withAnimation\"]\n duration?: number\n defaultIndex?: number\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n}\n\nexport interface ICarouselController {\n getSharedIndex: () => number\n prev: (opts?: TCarouselActionOptions) => void\n next: (opts?: TCarouselActionOptions) => void\n getCurrentIndex: () => number\n scrollTo: (opts?: TCarouselActionOptions) => void\n}\n\nexport function useCarouselController(options: IOpts): ICarouselController {\n const {\n size,\n loop,\n dataLength,\n handlerOffset,\n withAnimation,\n defaultIndex = 0,\n duration,\n autoFillData,\n } = options;\n\n const dataInfo = React.useMemo(\n () => ({\n length: dataLength,\n disable: !dataLength,\n originalLength: dataLength,\n }),\n [dataLength],\n );\n\n const index = useSharedValue<number>(defaultIndex);\n // The Index displayed to the user\n const sharedIndex = useRef<number>(defaultIndex);\n const sharedPreIndex = useRef<number>(defaultIndex);\n\n const currentFixedPage = React.useCallback(() => {\n if (loop)\n return -Math.round(handlerOffset.value / size);\n\n const fixed = (handlerOffset.value / size) % dataInfo.length;\n return Math.round(\n handlerOffset.value <= 0\n ? Math.abs(fixed)\n : Math.abs(fixed > 0 ? dataInfo.length - fixed : 0),\n );\n }, [handlerOffset, dataInfo, size, loop]);\n\n function setSharedIndex(newSharedIndex: number) {\n sharedIndex.current = newSharedIndex;\n }\n\n useAnimatedReaction(\n () => {\n const handlerOffsetValue = handlerOffset.value;\n const toInt = round(handlerOffsetValue / size) % dataInfo.length;\n const isPositive = handlerOffsetValue <= 0;\n const i = isPositive\n ? Math.abs(toInt)\n : Math.abs(toInt > 0 ? dataInfo.length - toInt : 0);\n\n const newSharedIndexValue = convertToSharedIndex({\n loop,\n rawDataLength: dataInfo.originalLength,\n autoFillData: autoFillData!,\n index: i,\n });\n\n return {\n i,\n newSharedIndexValue,\n };\n },\n ({ i, newSharedIndexValue }) => {\n index.value = i;\n runOnJS(setSharedIndex)(newSharedIndexValue);\n },\n [\n sharedPreIndex,\n sharedIndex,\n size,\n dataInfo,\n index,\n loop,\n autoFillData,\n handlerOffset,\n ],\n );\n\n const getCurrentIndex = React.useCallback(() => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: index.value,\n dataLength: dataInfo.originalLength,\n loop,\n autoFillData: autoFillData!,\n });\n\n return realIndex;\n }, [index, autoFillData, dataInfo, loop]);\n\n const canSliding = React.useCallback(() => {\n return !dataInfo.disable;\n }, [dataInfo]);\n\n const onScrollEnd = React.useCallback(() => {\n options.onScrollEnd?.();\n }, [options]);\n\n const onScrollBegin = React.useCallback(() => {\n options.onScrollBegin?.();\n }, [options]);\n\n const scrollWithTiming = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const callback = (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n runOnJS(onScrollEnd)();\n onFinished && runOnJS(onFinished)();\n }\n };\n\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: { duration, easing: Easing.easeOutQuart },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n callback,\n );\n },\n [duration, withAnimation, onScrollEnd],\n );\n\n const next = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n \"worklet\";\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value >= dataInfo.length - 1))\n return;\n\n onScrollBegin?.();\n\n const nextPage = currentFixedPage() + count;\n index.value = nextPage;\n\n if (animated) {\n handlerOffset.value = scrollWithTiming(\n -nextPage * size,\n onFinished,\n ) as any;\n }\n else {\n handlerOffset.value = -nextPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n dataInfo,\n onScrollBegin,\n handlerOffset,\n size,\n scrollWithTiming,\n currentFixedPage,\n ],\n );\n\n const prev = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value <= 0)) return;\n\n onScrollBegin?.();\n\n const prevPage = currentFixedPage() - count;\n index.value = prevPage;\n\n if (animated) {\n handlerOffset.value = scrollWithTiming(\n -prevPage * size,\n onFinished,\n );\n }\n else {\n handlerOffset.value = -prevPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n onScrollBegin,\n handlerOffset,\n size,\n scrollWithTiming,\n currentFixedPage,\n ],\n );\n\n const to = React.useCallback(\n (opts: { i: number; animated: boolean; onFinished?: () => void }) => {\n const { i, animated = false, onFinished } = opts;\n if (i === index.value) return;\n if (!canSliding()) return;\n\n onScrollBegin?.();\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n // target offset\n const offset = i * size * direction;\n // page width size * page count\n const totalSize = dataInfo.length * size;\n\n let isCloseToNextLoop = false;\n\n if (loop) {\n isCloseToNextLoop\n = Math.abs(handlerOffset.value % totalSize) / totalSize\n >= 0.5;\n }\n\n const finalOffset\n = (Math.floor(Math.abs(handlerOffset.value / totalSize))\n + (isCloseToNextLoop ? 1 : 0))\n * totalSize\n * direction\n + offset;\n\n if (animated) {\n index.value = i;\n handlerOffset.value = scrollWithTiming(finalOffset, onFinished);\n }\n else {\n handlerOffset.value = finalOffset;\n index.value = i;\n onFinished?.();\n }\n },\n [\n index,\n canSliding,\n onScrollBegin,\n handlerOffset,\n size,\n dataInfo.length,\n loop,\n scrollWithTiming,\n ],\n );\n\n const scrollTo = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { index: i, count, animated = false, onFinished } = opts;\n if (typeof i === \"number\" && i > -1) {\n to({ i, animated, onFinished });\n return;\n }\n\n if (!count)\n return;\n\n const n = Math.round(count);\n\n if (n < 0)\n prev({ count: Math.abs(n), animated, onFinished });\n\n else\n next({ count: n, animated, onFinished });\n },\n [prev, next, to],\n );\n\n return {\n next,\n prev,\n scrollTo,\n getCurrentIndex,\n getSharedIndex: () => sharedIndex.current,\n };\n}\n"]}
1
+ {"version":3,"sources":["useCarouselController.tsx"],"names":["useCarouselController","options","size","loop","dataLength","handlerOffset","withAnimation","defaultIndex","duration","autoFillData","dataInfo","React","useMemo","length","disable","originalLength","index","sharedIndex","sharedPreIndex","currentFixedPage","useCallback","Math","round","value","fixed","abs","setSharedIndex","newSharedIndex","current","handlerOffsetValue","toInt","isPositive","i","newSharedIndexValue","rawDataLength","getCurrentIndex","realIndex","canSliding","onScrollEnd","onScrollBegin","scrollWithTiming","toValue","onFinished","callback","isFinished","defaultWithAnimation","type","config","easing","Easing","easeOutQuart","next","opts","count","animated","nextPage","prev","prevPage","to","direction","offset","totalSize","isCloseToNextLoop","finalOffset","floor","scrollTo","n","getSharedIndex"],"mappings":"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","sourcesContent":["import React, { useRef } from \"react\";\nimport type Animated from \"react-native-reanimated\";\nimport {\n runOnJS,\n useAnimatedReaction,\n useSharedValue,\n} from \"react-native-reanimated\";\n\nimport { Easing } from \"../constants\";\nimport type {\n TCarouselActionOptions,\n TCarouselProps,\n WithTimingAnimation,\n} from \"../types\";\nimport { computedRealIndexWithAutoFillData, convertToSharedIndex } from \"../utils/computed-with-auto-fill-data\";\nimport { dealWithAnimation } from \"../utils/deal-with-animation\";\nimport { handlerOffsetDirection } from \"../utils/handleroffset-direction\";\nimport { round } from \"../utils/log\";\n\ninterface IOpts {\n loop: boolean\n size: number\n dataLength: number\n autoFillData: TCarouselProps[\"autoFillData\"]\n handlerOffset: Animated.SharedValue<number>\n withAnimation?: TCarouselProps[\"withAnimation\"]\n duration?: number\n defaultIndex?: number\n onScrollBegin?: () => void\n onScrollEnd?: () => void\n}\n\nexport interface ICarouselController {\n getSharedIndex: () => number\n prev: (opts?: TCarouselActionOptions) => void\n next: (opts?: TCarouselActionOptions) => void\n getCurrentIndex: () => number\n scrollTo: (opts?: TCarouselActionOptions) => void\n}\n\nexport function useCarouselController(options: IOpts): ICarouselController {\n const {\n size,\n loop,\n dataLength,\n handlerOffset,\n withAnimation,\n defaultIndex = 0,\n duration,\n autoFillData,\n } = options;\n\n const dataInfo = React.useMemo(\n () => ({\n length: dataLength,\n disable: !dataLength,\n originalLength: dataLength,\n }),\n [dataLength],\n );\n\n const index = useSharedValue<number>(defaultIndex);\n // The Index displayed to the user\n const sharedIndex = useRef<number>(defaultIndex);\n const sharedPreIndex = useRef<number>(defaultIndex);\n\n const currentFixedPage = React.useCallback(() => {\n if (loop)\n return -Math.round(handlerOffset.value / size);\n\n const fixed = (handlerOffset.value / size) % dataInfo.length;\n return Math.round(\n handlerOffset.value <= 0\n ? Math.abs(fixed)\n : Math.abs(fixed > 0 ? dataInfo.length - fixed : 0),\n );\n }, [handlerOffset, dataInfo, size, loop]);\n\n function setSharedIndex(newSharedIndex: number) {\n sharedIndex.current = newSharedIndex;\n }\n\n useAnimatedReaction(\n () => {\n const handlerOffsetValue = handlerOffset.value;\n const toInt = round(handlerOffsetValue / size) % dataInfo.length;\n const isPositive = handlerOffsetValue <= 0;\n const i = isPositive\n ? Math.abs(toInt)\n : Math.abs(toInt > 0 ? dataInfo.length - toInt : 0);\n\n const newSharedIndexValue = convertToSharedIndex({\n loop,\n rawDataLength: dataInfo.originalLength,\n autoFillData: autoFillData!,\n index: i,\n });\n\n return {\n i,\n newSharedIndexValue,\n };\n },\n ({ i, newSharedIndexValue }) => {\n index.value = i;\n runOnJS(setSharedIndex)(newSharedIndexValue);\n },\n [\n sharedPreIndex,\n sharedIndex,\n size,\n dataInfo,\n index,\n loop,\n autoFillData,\n handlerOffset,\n ],\n );\n\n const getCurrentIndex = React.useCallback(() => {\n const realIndex = computedRealIndexWithAutoFillData({\n index: index.value,\n dataLength: dataInfo.originalLength,\n loop,\n autoFillData: autoFillData!,\n });\n\n return realIndex;\n }, [index, autoFillData, dataInfo, loop]);\n\n const canSliding = React.useCallback(() => {\n return !dataInfo.disable;\n }, [dataInfo]);\n\n const onScrollEnd = React.useCallback(() => {\n options.onScrollEnd?.();\n }, [options]);\n\n const onScrollBegin = React.useCallback(() => {\n options.onScrollBegin?.();\n }, [options]);\n\n const scrollWithTiming = React.useCallback(\n (toValue: number, onFinished?: () => void) => {\n \"worklet\";\n const callback = (isFinished: boolean) => {\n \"worklet\";\n if (isFinished) {\n runOnJS(onScrollEnd)();\n onFinished && runOnJS(onFinished)();\n }\n };\n\n const defaultWithAnimation: WithTimingAnimation = {\n type: \"timing\",\n config: { duration, easing: Easing.easeOutQuart },\n };\n\n return dealWithAnimation(withAnimation ?? defaultWithAnimation)(\n toValue,\n callback,\n );\n },\n [duration, withAnimation, onScrollEnd],\n );\n\n const next = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n \"worklet\";\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value >= dataInfo.length - 1))\n return;\n\n onScrollBegin?.();\n\n const nextPage = currentFixedPage() + count;\n index.value = nextPage;\n\n if (animated) {\n handlerOffset.value = scrollWithTiming(\n -nextPage * size,\n onFinished,\n ) as any;\n }\n else {\n handlerOffset.value = -nextPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n dataInfo,\n onScrollBegin,\n handlerOffset,\n size,\n scrollWithTiming,\n currentFixedPage,\n ],\n );\n\n const prev = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { count = 1, animated = true, onFinished } = opts;\n if (!canSliding() || (!loop && index.value <= 0)) return;\n\n onScrollBegin?.();\n\n const prevPage = currentFixedPage() - count;\n index.value = prevPage;\n\n if (animated) {\n handlerOffset.value = scrollWithTiming(\n -prevPage * size,\n onFinished,\n );\n }\n else {\n handlerOffset.value = -prevPage * size;\n onFinished?.();\n }\n },\n [\n canSliding,\n loop,\n index,\n onScrollBegin,\n handlerOffset,\n size,\n scrollWithTiming,\n currentFixedPage,\n ],\n );\n\n const to = React.useCallback(\n (opts: { i: number; animated: boolean; onFinished?: () => void }) => {\n const { i, animated = false, onFinished } = opts;\n if (i === index.value) return;\n if (!canSliding()) return;\n\n onScrollBegin?.();\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n // target offset\n const offset = i * size * direction;\n // page width size * page count\n const totalSize = dataInfo.length * size;\n\n let isCloseToNextLoop = false;\n\n if (loop) {\n isCloseToNextLoop\n = Math.abs(handlerOffset.value % totalSize) / totalSize\n >= 0.5;\n }\n\n const finalOffset\n = (Math.floor(Math.abs(handlerOffset.value / totalSize))\n + (isCloseToNextLoop ? 1 : 0))\n * totalSize\n * direction\n + offset;\n\n if (animated) {\n index.value = i;\n handlerOffset.value = scrollWithTiming(finalOffset, onFinished);\n }\n else {\n handlerOffset.value = finalOffset;\n index.value = i;\n onFinished?.();\n }\n },\n [\n index,\n canSliding,\n onScrollBegin,\n handlerOffset,\n size,\n dataInfo.length,\n loop,\n scrollWithTiming,\n ],\n );\n\n const scrollTo = React.useCallback(\n (opts: TCarouselActionOptions = {}) => {\n const { index: i, count, animated = false, onFinished } = opts;\n if (typeof i === \"number\" && i > -1) {\n to({ i, animated, onFinished });\n return;\n }\n\n if (!count)\n return;\n\n const n = Math.round(count);\n\n if (n < 0)\n prev({ count: Math.abs(n), animated, onFinished });\n\n else\n next({ count: n, animated, onFinished });\n },\n [prev, next, to],\n );\n\n return {\n next,\n prev,\n scrollTo,\n getCurrentIndex,\n getSharedIndex: () => sharedIndex.current,\n };\n}\n"]}
@@ -1,2 +1,24 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useCheckMounted=useCheckMounted;var _react=_interopRequireDefault(require("react"));function useCheckMounted(){var mounted=_react.default.useRef(false);_react.default.useEffect(function(){mounted.current=true;return function(){mounted.current=false;};},[]);return mounted;}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCheckMounted = useCheckMounted;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function useCheckMounted() {
13
+ const mounted = _react.default.useRef(false);
14
+
15
+ _react.default.useEffect(() => {
16
+ mounted.current = true;
17
+ return () => {
18
+ mounted.current = false;
19
+ };
20
+ }, []);
21
+
22
+ return mounted;
23
+ }
2
24
  //# sourceMappingURL=useCheckMounted.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useCheckMounted.ts"],"names":["useCheckMounted","mounted","React","useRef","useEffect","current"],"mappings":"oLAAA,oDAEO,QAASA,CAAAA,eAAT,EAA2B,CAChC,GAAMC,CAAAA,OAAO,CAAGC,eAAMC,MAAN,CAAa,KAAb,CAAhB,CAEAD,eAAME,SAAN,CAAgB,UAAM,CACpBH,OAAO,CAACI,OAAR,CAAkB,IAAlB,CACA,MAAO,WAAM,CACXJ,OAAO,CAACI,OAAR,CAAkB,KAAlB,CACD,CAFD,CAGD,CALD,CAKG,EALH,EAOA,MAAOJ,CAAAA,OAAP,CACD","sourcesContent":["import React from \"react\";\n\nexport function useCheckMounted() {\n const mounted = React.useRef(false);\n\n React.useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n\n return mounted;\n}\n"]}
1
+ {"version":3,"sources":["useCheckMounted.ts"],"names":["useCheckMounted","mounted","React","useRef","useEffect","current"],"mappings":";;;;;;;AAAA;;;;AAEO,SAASA,eAAT,GAA2B;AAChC,QAAMC,OAAO,GAAGC,eAAMC,MAAN,CAAa,KAAb,CAAhB;;AAEAD,iBAAME,SAAN,CAAgB,MAAM;AACpBH,IAAAA,OAAO,CAACI,OAAR,GAAkB,IAAlB;AACA,WAAO,MAAM;AACXJ,MAAAA,OAAO,CAACI,OAAR,GAAkB,KAAlB;AACD,KAFD;AAGD,GALD,EAKG,EALH;;AAOA,SAAOJ,OAAP;AACD","sourcesContent":["import React from \"react\";\n\nexport function useCheckMounted() {\n const mounted = React.useRef(false);\n\n React.useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n\n return mounted;\n}\n"]}
@@ -1,2 +1,77 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useCommonVariables=useCommonVariables;var _react=_interopRequireDefault(require("react"));var _reactNativeReanimated=require("react-native-reanimated");var _computeNewIndexWhenDataChanges=require("./computeNewIndexWhenDataChanges");var _handlerOffsetDirection=require("../utils/handlerOffsetDirection");var _worklet_10652703225927_init_data={code:"function anonymous() {\n const {\n prevDataLength,\n dataLength,\n loop\n } = this._closure;\n const previousLength = prevDataLength.value;\n const currentLength = dataLength;\n const isLengthChanged = previousLength !== currentLength;\n const shouldComputed = isLengthChanged && loop;\n if (shouldComputed) prevDataLength.value = dataLength;\n return {\n shouldComputed: shouldComputed,\n previousLength: previousLength,\n currentLength: currentLength\n };\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCommonVariables.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"prevDataLength\",\"dataLength\",\"loop\",\"_closure\",\"previousLength\",\"value\",\"currentLength\",\"isLengthChanged\",\"shouldComputed\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCommonVariables.ts\"],\"mappings\":\"AAsCsB,SAAAA,SAAMA,CAAA;EAAA;IAAAC,cAAA;IAAAC,UAAA;IAAAC;EAAA,SAAAC,QAAA;EACxB,MAAMC,cAAc,GAAGJ,cAAc,CAACK,KAAK;EAC3C,MAAMC,aAAa,GAAGL,UAAU;EAChC,MAAMM,eAAe,GAAGH,cAAc,KAAKE,aAAa;EACxD,MAAME,cAAc,GAAGD,eAAe,IAAIL,IAAI;EAE9C,IAAIM,cAAc,EAChBR,cAAc,CAACK,KAAK,GAAGJ,UAAU;EAEnC,OAAO;IACLO,cAAc,EAAdA,cAAc;IACdJ,cAAc,EAAdA,cAAc;IACdE,aAAA,EAAAA;EACF,CAAC;AACH\"}"};var _worklet_17314307749108_init_data={code:"function anonymous({\n shouldComputed: shouldComputed,\n previousLength: previousLength,\n currentLength: currentLength\n}) {\n const {\n handlerOffsetDirection,\n handlerOffset,\n computeNewIndexWhenDataChanges,\n size\n } = this._closure;\n if (shouldComputed) {\n const direction = handlerOffsetDirection(handlerOffset);\n handlerOffset.value = computeNewIndexWhenDataChanges({\n direction: direction,\n previousLength: previousLength,\n currentLength: currentLength,\n size: size,\n handlerOffset: handlerOffset.value\n });\n }\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCommonVariables.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"shouldComputed\",\"previousLength\",\"currentLength\",\"handlerOffsetDirection\",\"handlerOffset\",\"computeNewIndexWhenDataChanges\",\"size\",\"_closure\",\"direction\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCommonVariables.ts\"],\"mappings\":\"AAoDK,SAACA,UAAA;EAAEC,cAAc,EAAdA,cAAc;EAAEC,cAAc,EAAdA,cAAc;EAAEC,aAAA,EAAAA;AAAc,CAAC,EAAK;EAAA;IAAAC,sBAAA;IAAAC,aAAA;IAAAC,8BAAA;IAAAC;EAAA,SAAAC,QAAA;EACxD,IAAIP,cAAc,EAAE;IAElB,MAAMQ,SAAS,GAAGL,sBAAsB,CAACC,aAAa,CAAC;IAEvDA,aAAa,CAACK,KAAK,GAAGJ,8BAA8B,CAAC;MACnDG,SAAS,EAATA,SAAS;MACTP,cAAc,EAAdA,cAAc;MACdC,aAAa,EAAbA,aAAa;MACbI,IAAI,EAAJA,IAAI;MACJF,aAAa,EAAEA,aAAa,CAACK;IAC/B,CAAC,CAAC;EACJ;AACF\"}"};function useCommonVariables(props){var vertical=props.vertical,height=props.height,width=props.width,dataLength=props.dataLength,defaultIndex=props.defaultIndex,defaultScrollOffsetValue=props.defaultScrollOffsetValue,loop=props.loop;var size=vertical?height:width;var validLength=dataLength-1;var defaultHandlerOffsetValue=-Math.abs(defaultIndex*size);var _handlerOffset=(0,_reactNativeReanimated.useSharedValue)(defaultHandlerOffsetValue);var handlerOffset=defaultScrollOffsetValue!=null?defaultScrollOffsetValue:_handlerOffset;var prevDataLength=(0,_reactNativeReanimated.useSharedValue)(dataLength);_react.default.useEffect(function(){handlerOffset.value=defaultHandlerOffsetValue;},[vertical,handlerOffset,defaultHandlerOffsetValue]);(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _e=[new global.Error(),-4,-27];var _f=function _f(){var previousLength=prevDataLength.value;var currentLength=dataLength;var isLengthChanged=previousLength!==currentLength;var shouldComputed=isLengthChanged&&loop;if(shouldComputed)prevDataLength.value=dataLength;return{shouldComputed:shouldComputed,previousLength:previousLength,currentLength:currentLength};};_f._closure={prevDataLength:prevDataLength,dataLength:dataLength,loop:loop};_f.__initData=_worklet_10652703225927_init_data;_f.__workletHash=10652703225927;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),function(){var _e=[new global.Error(),-5,-27];var _f=function _f(_ref){var shouldComputed=_ref.shouldComputed,previousLength=_ref.previousLength,currentLength=_ref.currentLength;if(shouldComputed){var direction=(0,_handlerOffsetDirection.handlerOffsetDirection)(handlerOffset);handlerOffset.value=(0,_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)({direction:direction,previousLength:previousLength,currentLength:currentLength,size:size,handlerOffset:handlerOffset.value});}};_f._closure={handlerOffsetDirection:_handlerOffsetDirection.handlerOffsetDirection,handlerOffset:handlerOffset,computeNewIndexWhenDataChanges:_computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges,size:size};_f.__initData=_worklet_17314307749108_init_data;_f.__workletHash=17314307749108;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[dataLength,loop]);return{size:size,validLength:validLength,handlerOffset:handlerOffset};}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCommonVariables = useCommonVariables;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNativeReanimated = require("react-native-reanimated");
11
+
12
+ var _computeNewIndexWhenDataChanges = require("../utils/computeNewIndexWhenDataChanges");
13
+
14
+ var _handleroffsetDirection = require("../utils/handleroffset-direction");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function useCommonVariables(props) {
19
+ const {
20
+ vertical,
21
+ height,
22
+ width,
23
+ dataLength,
24
+ defaultIndex,
25
+ defaultScrollOffsetValue,
26
+ loop
27
+ } = props;
28
+ const size = vertical ? height : width;
29
+ const validLength = dataLength - 1;
30
+ const defaultHandlerOffsetValue = -Math.abs(defaultIndex * size);
31
+
32
+ const _handlerOffset = (0, _reactNativeReanimated.useSharedValue)(defaultHandlerOffsetValue);
33
+
34
+ const handlerOffset = defaultScrollOffsetValue !== null && defaultScrollOffsetValue !== void 0 ? defaultScrollOffsetValue : _handlerOffset;
35
+ const prevDataLength = (0, _reactNativeReanimated.useSharedValue)(dataLength);
36
+
37
+ _react.default.useEffect(() => {
38
+ handlerOffset.value = defaultHandlerOffsetValue;
39
+ }, [vertical, handlerOffset, defaultHandlerOffsetValue]);
40
+
41
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => {
42
+ const previousLength = prevDataLength.value;
43
+ const currentLength = dataLength;
44
+ const isLengthChanged = previousLength !== currentLength;
45
+ const shouldComputed = isLengthChanged && loop;
46
+ if (shouldComputed) prevDataLength.value = dataLength;
47
+ return {
48
+ shouldComputed,
49
+ previousLength,
50
+ currentLength
51
+ };
52
+ }, _ref => {
53
+ let {
54
+ shouldComputed,
55
+ previousLength,
56
+ currentLength
57
+ } = _ref;
58
+
59
+ if (shouldComputed) {
60
+ // direction -> 1 | -1
61
+ const direction = (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffset);
62
+ handlerOffset.value = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)({
63
+ direction,
64
+ previousLength,
65
+ currentLength,
66
+ size,
67
+ handlerOffset: handlerOffset.value
68
+ });
69
+ }
70
+ }, [dataLength, loop]);
71
+ return {
72
+ size,
73
+ validLength,
74
+ handlerOffset
75
+ };
76
+ }
2
77
  //# sourceMappingURL=useCommonVariables.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useCommonVariables.ts"],"names":["useCommonVariables","props","vertical","height","width","dataLength","defaultIndex","defaultScrollOffsetValue","loop","size","validLength","defaultHandlerOffsetValue","Math","abs","_handlerOffset","handlerOffset","prevDataLength","React","useEffect","value","previousLength","currentLength","isLengthChanged","shouldComputed","direction","handlerOffsetDirection","computeNewIndexWhenDataChanges"],"mappings":"0LAAA,oDAEA,8DAEA,gFAGA,uE,y2FAQO,QAASA,CAAAA,kBAAT,CACLC,KADK,CAEa,CAClB,GACEC,CAAAA,QADF,CAQID,KARJ,CACEC,QADF,CAEEC,MAFF,CAQIF,KARJ,CAEEE,MAFF,CAGEC,KAHF,CAQIH,KARJ,CAGEG,KAHF,CAIEC,UAJF,CAQIJ,KARJ,CAIEI,UAJF,CAKEC,YALF,CAQIL,KARJ,CAKEK,YALF,CAMEC,wBANF,CAQIN,KARJ,CAMEM,wBANF,CAOEC,IAPF,CAQIP,KARJ,CAOEO,IAPF,CASA,GAAMC,CAAAA,IAAI,CAAGP,QAAQ,CAAGC,MAAH,CAAYC,KAAjC,CACA,GAAMM,CAAAA,WAAW,CAAGL,UAAU,CAAG,CAAjC,CACA,GAAMM,CAAAA,yBAAyB,CAAG,CAACC,IAAI,CAACC,GAAL,CAASP,YAAY,CAAGG,IAAxB,CAAnC,CACA,GAAMK,CAAAA,cAAc,CAAG,0CAAuBH,yBAAvB,CAAvB,CACA,GAAMI,CAAAA,aAAa,CAAGR,wBAAH,OAAGA,wBAAH,CAA+BO,cAAlD,CACA,GAAME,CAAAA,cAAc,CAAG,0CAAeX,UAAf,CAAvB,CAEAY,eAAMC,SAAN,CAAgB,UAAM,CACpBH,aAAa,CAACI,KAAd,CAAsBR,yBAAtB,CACD,CAFD,CAEG,CAACT,QAAD,CAAWa,aAAX,CAA0BJ,yBAA1B,CAFH,EAIA,iHAA0B,CACxB,GAAMS,CAAAA,cAAc,CAAGJ,cAAc,CAACG,KAAtC,CACA,GAAME,CAAAA,aAAa,CAAGhB,UAAtB,CACA,GAAMiB,CAAAA,eAAe,CAAGF,cAAc,GAAKC,aAA3C,CACA,GAAME,CAAAA,cAAc,CAAGD,eAAe,EAAId,IAA1C,CAEA,GAAIe,cAAJ,CACEP,cAAc,CAACG,KAAf,CAAuBd,UAAvB,CAEF,MAAO,CACLkB,cAAc,CAAdA,cADK,CAELH,cAAc,CAAdA,cAFK,CAGLC,aAAa,CAAbA,aAHK,CAAP,CAKD,CAdD,6BAjCoBL,cAiCpB,YAjC2CX,UAiC3C,MAlC0CG,IAkC1C,gNAc0D,IAApDe,CAAAA,cAAoD,MAApDA,cAAoD,CAApCH,cAAoC,MAApCA,cAAoC,CAApBC,aAAoB,MAApBA,aAAoB,CACxD,GAAIE,cAAJ,CAAoB,CAElB,GAAMC,CAAAA,SAAS,CAAG,mDAAuBT,aAAvB,CAAlB,CAEAA,aAAa,CAACI,KAAd,CAAsB,mEAA+B,CACnDK,SAAS,CAATA,SADmD,CAEnDJ,cAAc,CAAdA,cAFmD,CAGnDC,aAAa,CAAbA,aAHmD,CAInDZ,IAAI,CAAJA,IAJmD,CAKnDM,aAAa,CAAEA,aAAa,CAACI,KALsB,CAA/B,CAAtB,CAOD,CACF,CA3BD,qCA/BoBM,8CA+BpB,eAzBmBV,aAyBnB,gCA9BwBW,8DA8BxB,MA1BIjB,IA0BJ,0IA2BG,CAACJ,UAAD,CAAaG,IAAb,CA3BH,EA6BA,MAAO,CACLC,IAAI,CAAJA,IADK,CAELC,WAAW,CAAXA,WAFK,CAGLK,aAAa,CAAbA,aAHK,CAAP,CAKD","sourcesContent":["import React from \"react\";\nimport type Animated from \"react-native-reanimated\";\nimport { useSharedValue, useAnimatedReaction } from \"react-native-reanimated\";\n\nimport { computeNewIndexWhenDataChanges } from \"./computeNewIndexWhenDataChanges\";\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport { handlerOffsetDirection } from \"../utils/handlerOffsetDirection\";\n\ninterface ICommonVariables {\n size: number\n validLength: number\n handlerOffset: Animated.SharedValue<number>\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>,\n): ICommonVariables {\n const {\n vertical,\n height,\n width,\n dataLength,\n defaultIndex,\n defaultScrollOffsetValue,\n loop,\n } = props;\n const size = vertical ? height : width;\n const validLength = dataLength - 1;\n const defaultHandlerOffsetValue = -Math.abs(defaultIndex * size);\n const _handlerOffset = useSharedValue<number>(defaultHandlerOffsetValue);\n const handlerOffset = defaultScrollOffsetValue ?? _handlerOffset;\n const prevDataLength = useSharedValue(dataLength);\n\n React.useEffect(() => {\n handlerOffset.value = defaultHandlerOffsetValue;\n }, [vertical, handlerOffset, defaultHandlerOffsetValue]);\n\n useAnimatedReaction(() => {\n const previousLength = prevDataLength.value;\n const currentLength = dataLength;\n const isLengthChanged = previousLength !== currentLength;\n const shouldComputed = isLengthChanged && loop;\n\n if (shouldComputed)\n prevDataLength.value = dataLength;\n\n return {\n shouldComputed,\n previousLength,\n currentLength,\n };\n }, ({ shouldComputed, previousLength, currentLength }) => {\n if (shouldComputed) {\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n handlerOffset.value = computeNewIndexWhenDataChanges({\n direction,\n previousLength,\n currentLength,\n size,\n handlerOffset: handlerOffset.value,\n });\n }\n }, [dataLength, loop]);\n\n return {\n size,\n validLength,\n handlerOffset,\n };\n}\n"]}
1
+ {"version":3,"sources":["useCommonVariables.ts"],"names":["useCommonVariables","props","vertical","height","width","dataLength","defaultIndex","defaultScrollOffsetValue","loop","size","validLength","defaultHandlerOffsetValue","Math","abs","_handlerOffset","handlerOffset","prevDataLength","React","useEffect","value","previousLength","currentLength","isLengthChanged","shouldComputed","direction"],"mappings":";;;;;;;AAAA;;AAEA;;AAIA;;AACA;;;;AAQO,SAASA,kBAAT,CACLC,KADK,EAEa;AAClB,QAAM;AACJC,IAAAA,QADI;AAEJC,IAAAA,MAFI;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,UAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA,wBANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,QAAMQ,IAAI,GAAGP,QAAQ,GAAGC,MAAH,GAAYC,KAAjC;AACA,QAAMM,WAAW,GAAGL,UAAU,GAAG,CAAjC;AACA,QAAMM,yBAAyB,GAAG,CAACC,IAAI,CAACC,GAAL,CAASP,YAAY,GAAGG,IAAxB,CAAnC;;AACA,QAAMK,cAAc,GAAG,2CAAuBH,yBAAvB,CAAvB;;AACA,QAAMI,aAAa,GAAGR,wBAAH,aAAGA,wBAAH,cAAGA,wBAAH,GAA+BO,cAAlD;AACA,QAAME,cAAc,GAAG,2CAAeX,UAAf,CAAvB;;AAEAY,iBAAMC,SAAN,CAAgB,MAAM;AACpBH,IAAAA,aAAa,CAACI,KAAd,GAAsBR,yBAAtB;AACD,GAFD,EAEG,CAACT,QAAD,EAAWa,aAAX,EAA0BJ,yBAA1B,CAFH;;AAIA,kDAAoB,MAAM;AACxB,UAAMS,cAAc,GAAGJ,cAAc,CAACG,KAAtC;AACA,UAAME,aAAa,GAAGhB,UAAtB;AACA,UAAMiB,eAAe,GAAGF,cAAc,KAAKC,aAA3C;AACA,UAAME,cAAc,GAAGD,eAAe,IAAId,IAA1C;AAEA,QAAIe,cAAJ,EACEP,cAAc,CAACG,KAAf,GAAuBd,UAAvB;AAEF,WAAO;AACLkB,MAAAA,cADK;AAELH,MAAAA,cAFK;AAGLC,MAAAA;AAHK,KAAP;AAKD,GAdD,EAcG,QAAuD;AAAA,QAAtD;AAAEE,MAAAA,cAAF;AAAkBH,MAAAA,cAAlB;AAAkCC,MAAAA;AAAlC,KAAsD;;AACxD,QAAIE,cAAJ,EAAoB;AAClB;AACA,YAAMC,SAAS,GAAG,oDAAuBT,aAAvB,CAAlB;AAEAA,MAAAA,aAAa,CAACI,KAAd,GAAsB,oEAA+B;AACnDK,QAAAA,SADmD;AAEnDJ,QAAAA,cAFmD;AAGnDC,QAAAA,aAHmD;AAInDZ,QAAAA,IAJmD;AAKnDM,QAAAA,aAAa,EAAEA,aAAa,CAACI;AALsB,OAA/B,CAAtB;AAOD;AACF,GA3BD,EA2BG,CAACd,UAAD,EAAaG,IAAb,CA3BH;AA6BA,SAAO;AACLC,IAAAA,IADK;AAELC,IAAAA,WAFK;AAGLK,IAAAA;AAHK,GAAP;AAKD","sourcesContent":["import React from \"react\";\nimport type Animated from \"react-native-reanimated\";\nimport { useSharedValue, useAnimatedReaction } from \"react-native-reanimated\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport { computeNewIndexWhenDataChanges } from \"../utils/computeNewIndexWhenDataChanges\";\nimport { handlerOffsetDirection } from \"../utils/handleroffset-direction\";\n\ninterface ICommonVariables {\n size: number\n validLength: number\n handlerOffset: Animated.SharedValue<number>\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>,\n): ICommonVariables {\n const {\n vertical,\n height,\n width,\n dataLength,\n defaultIndex,\n defaultScrollOffsetValue,\n loop,\n } = props;\n const size = vertical ? height : width;\n const validLength = dataLength - 1;\n const defaultHandlerOffsetValue = -Math.abs(defaultIndex * size);\n const _handlerOffset = useSharedValue<number>(defaultHandlerOffsetValue);\n const handlerOffset = defaultScrollOffsetValue ?? _handlerOffset;\n const prevDataLength = useSharedValue(dataLength);\n\n React.useEffect(() => {\n handlerOffset.value = defaultHandlerOffsetValue;\n }, [vertical, handlerOffset, defaultHandlerOffsetValue]);\n\n useAnimatedReaction(() => {\n const previousLength = prevDataLength.value;\n const currentLength = dataLength;\n const isLengthChanged = previousLength !== currentLength;\n const shouldComputed = isLengthChanged && loop;\n\n if (shouldComputed)\n prevDataLength.value = dataLength;\n\n return {\n shouldComputed,\n previousLength,\n currentLength,\n };\n }, ({ shouldComputed, previousLength, currentLength }) => {\n if (shouldComputed) {\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n handlerOffset.value = computeNewIndexWhenDataChanges({\n direction,\n previousLength,\n currentLength,\n size,\n handlerOffset: handlerOffset.value,\n });\n }\n }, [dataLength, loop]);\n\n return {\n size,\n validLength,\n handlerOffset,\n };\n}\n"]}
@@ -1,2 +1,79 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useInitProps=useInitProps;var _react=_interopRequireDefault(require("react"));var _computedWithAutoFillData=require("../utils/computedWithAutoFillData");function useInitProps(props){var _props$enableSnap;var _props$defaultIndex=props.defaultIndex,defaultIndex=_props$defaultIndex===void 0?0:_props$defaultIndex,_props$data=props.data,rawData=_props$data===void 0?[]:_props$data,_props$loop=props.loop,loop=_props$loop===void 0?true:_props$loop,_props$autoPlayInterv=props.autoPlayInterval,_autoPlayInterval=_props$autoPlayInterv===void 0?1000:_props$autoPlayInterv,_props$scrollAnimatio=props.scrollAnimationDuration,scrollAnimationDuration=_props$scrollAnimatio===void 0?500:_props$scrollAnimatio,_props$style=props.style,style=_props$style===void 0?{}:_props$style,_props$panGestureHand=props.panGestureHandlerProps,panGestureHandlerProps=_props$panGestureHand===void 0?{}:_props$panGestureHand,_props$autoFillData=props.autoFillData,autoFillData=_props$autoFillData===void 0?true:_props$autoFillData,_props$enabled=props.enabled,enabled=_props$enabled===void 0?true:_props$enabled,_props$pagingEnabled=props.pagingEnabled,pagingEnabled=_props$pagingEnabled===void 0?true:_props$pagingEnabled,_props$overscrollEnab=props.overscrollEnabled,overscrollEnabled=_props$overscrollEnab===void 0?true:_props$overscrollEnab,_props$snapEnabled=props.snapEnabled,snapEnabled=_props$snapEnabled===void 0?(_props$enableSnap=props.enableSnap)!=null?_props$enableSnap:true:_props$snapEnabled,_width=props.width,_height=props.height;var width=Math.round(_width||0);var height=Math.round(_height||0);var autoPlayInterval=Math.max(_autoPlayInterval,0);var data=_react.default.useMemo(function(){return(0,_computedWithAutoFillData.computedFillDataWithAutoFillData)({loop:loop,autoFillData:autoFillData,data:rawData,dataLength:rawData.length});},[rawData,loop,autoFillData]);var dataLength=data.length;var rawDataLength=rawData.length;if(props.mode==="vertical-stack"||props.mode==="horizontal-stack"){var _props$modeConfig$sho,_props$modeConfig;if(!props.modeConfig)props.modeConfig={};props.modeConfig.showLength=(_props$modeConfig$sho=(_props$modeConfig=props.modeConfig)==null?void 0:_props$modeConfig.showLength)!=null?_props$modeConfig$sho:dataLength-1;}return Object.assign({},props,{defaultIndex:defaultIndex,autoFillData:autoFillData,data:data,dataLength:dataLength,rawData:rawData,rawDataLength:rawDataLength,loop:loop,enabled:enabled,autoPlayInterval:autoPlayInterval,scrollAnimationDuration:scrollAnimationDuration,style:style,panGestureHandlerProps:panGestureHandlerProps,pagingEnabled:pagingEnabled,snapEnabled:snapEnabled,overscrollEnabled:overscrollEnabled,width:width,height:height});}
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useInitProps = useInitProps;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _computedWithAutoFillData = require("../utils/computed-with-auto-fill-data");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function useInitProps(props) {
15
+ var _props$enableSnap;
16
+
17
+ const {
18
+ defaultIndex = 0,
19
+ data: rawData = [],
20
+ loop = true,
21
+ autoPlayInterval: _autoPlayInterval = 1000,
22
+ scrollAnimationDuration = 500,
23
+ style = {},
24
+ autoFillData = true,
25
+ // switchers
26
+ enabled = true,
27
+ pagingEnabled = true,
28
+ overscrollEnabled = true,
29
+ snapEnabled = (_props$enableSnap = props.enableSnap) !== null && _props$enableSnap !== void 0 ? _props$enableSnap : true,
30
+ width: _width,
31
+ height: _height
32
+ } = props;
33
+ const width = Math.round(_width || 0);
34
+ const height = Math.round(_height || 0);
35
+ const autoPlayInterval = Math.max(_autoPlayInterval, 0);
36
+
37
+ const data = _react.default.useMemo(() => {
38
+ return (0, _computedWithAutoFillData.computedFillDataWithAutoFillData)({
39
+ loop,
40
+ autoFillData,
41
+ data: rawData,
42
+ dataLength: rawData.length
43
+ });
44
+ }, [rawData, loop, autoFillData]);
45
+
46
+ const dataLength = data.length;
47
+ const rawDataLength = rawData.length;
48
+
49
+ if (props.mode === "vertical-stack" || props.mode === "horizontal-stack") {
50
+ var _props$modeConfig$sho, _props$modeConfig;
51
+
52
+ if (!props.modeConfig) props.modeConfig = {};
53
+ props.modeConfig.showLength = (_props$modeConfig$sho = (_props$modeConfig = props.modeConfig) === null || _props$modeConfig === void 0 ? void 0 : _props$modeConfig.showLength) !== null && _props$modeConfig$sho !== void 0 ? _props$modeConfig$sho : dataLength - 1;
54
+ }
55
+
56
+ return { ...props,
57
+ defaultIndex,
58
+ autoFillData,
59
+ // Fill data with autoFillData
60
+ data,
61
+ // Length of fill data
62
+ dataLength,
63
+ // Raw data that has not been processed
64
+ rawData,
65
+ // Length of raw data
66
+ rawDataLength,
67
+ loop,
68
+ enabled,
69
+ autoPlayInterval,
70
+ scrollAnimationDuration,
71
+ style,
72
+ pagingEnabled,
73
+ snapEnabled,
74
+ overscrollEnabled,
75
+ width,
76
+ height
77
+ };
78
+ }
2
79
  //# sourceMappingURL=useInitProps.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useInitProps.ts"],"names":["useInitProps","props","defaultIndex","data","rawData","loop","autoPlayInterval","_autoPlayInterval","scrollAnimationDuration","style","panGestureHandlerProps","autoFillData","enabled","pagingEnabled","overscrollEnabled","snapEnabled","enableSnap","_width","width","_height","height","Math","round","max","React","useMemo","dataLength","length","rawDataLength","mode","modeConfig","showLength"],"mappings":"8KAAA,oDAGA,2EAuBO,QAASA,CAAAA,YAAT,CACLC,KADK,CAEwB,uBAC7B,wBAgBIA,KAhBJ,CACEC,YADF,CACEA,YADF,8BACiB,CADjB,iCAgBID,KAhBJ,CAEEE,IAFF,CAEQC,OAFR,sBAEkB,EAFlB,yBAgBIH,KAhBJ,CAGEI,IAHF,CAGEA,IAHF,sBAGS,IAHT,mCAgBIJ,KAhBJ,CAIEK,gBAJF,CAIoBC,iBAJpB,gCAIwC,IAJxC,6CAgBIN,KAhBJ,CAKEO,uBALF,CAKEA,uBALF,gCAK4B,GAL5B,oCAgBIP,KAhBJ,CAMEQ,KANF,CAMEA,KANF,uBAMU,EANV,oCAgBIR,KAhBJ,CAOES,sBAPF,CAOEA,sBAPF,gCAO2B,EAP3B,2CAgBIT,KAhBJ,CAQEU,YARF,CAQEA,YARF,8BAQiB,IARjB,oCAgBIV,KAhBJ,CAUEW,OAVF,CAUEA,OAVF,yBAUY,IAVZ,qCAgBIX,KAhBJ,CAWEY,aAXF,CAWEA,aAXF,+BAWkB,IAXlB,4CAgBIZ,KAhBJ,CAYEa,iBAZF,CAYEA,iBAZF,gCAYsB,IAZtB,0CAgBIb,KAhBJ,CAaEc,WAbF,CAaEA,WAbF,gDAagBd,KAAK,CAACe,UAbtB,0BAaoC,IAbpC,oBAcSC,MAdT,CAgBIhB,KAhBJ,CAcEiB,KAdF,CAeUC,OAfV,CAgBIlB,KAhBJ,CAeEmB,MAfF,CAkBA,GAAMF,CAAAA,KAAK,CAAGG,IAAI,CAACC,KAAL,CAAWL,MAAM,EAAI,CAArB,CAAd,CACA,GAAMG,CAAAA,MAAM,CAAGC,IAAI,CAACC,KAAL,CAAWH,OAAO,EAAI,CAAtB,CAAf,CACA,GAAMb,CAAAA,gBAAgB,CAAGe,IAAI,CAACE,GAAL,CAAShB,iBAAT,CAA4B,CAA5B,CAAzB,CAEA,GAAMJ,CAAAA,IAAI,CAAGqB,eAAMC,OAAN,CACX,UAAM,CACJ,MAAO,+DAAoC,CACzCpB,IAAI,CAAJA,IADyC,CAEzCM,YAAY,CAAZA,YAFyC,CAGzCR,IAAI,CAAEC,OAHmC,CAIzCsB,UAAU,CAAEtB,OAAO,CAACuB,MAJqB,CAApC,CAAP,CAMD,CARU,CASX,CAACvB,OAAD,CAAUC,IAAV,CAAgBM,YAAhB,CATW,CAAb,CAYA,GAAMe,CAAAA,UAAU,CAAGvB,IAAI,CAACwB,MAAxB,CACA,GAAMC,CAAAA,aAAa,CAAGxB,OAAO,CAACuB,MAA9B,CAEA,GAAI1B,KAAK,CAAC4B,IAAN,GAAe,gBAAf,EAAmC5B,KAAK,CAAC4B,IAAN,GAAe,kBAAtD,CAA0E,6CACxE,GAAI,CAAC5B,KAAK,CAAC6B,UAAX,CACE7B,KAAK,CAAC6B,UAAN,CAAmB,EAAnB,CAEF7B,KAAK,CAAC6B,UAAN,CAAiBC,UAAjB,2CAA8B9B,KAAK,CAAC6B,UAApC,eAA8B,kBAAkBC,UAAhD,8BAA8DL,UAAU,CAAG,CAA3E,CACD,CAED,wBACKzB,KADL,EAEEC,YAAY,CAAZA,YAFF,CAGES,YAAY,CAAZA,YAHF,CAKER,IAAI,CAAJA,IALF,CAOEuB,UAAU,CAAVA,UAPF,CASEtB,OAAO,CAAPA,OATF,CAWEwB,aAAa,CAAbA,aAXF,CAYEvB,IAAI,CAAJA,IAZF,CAaEO,OAAO,CAAPA,OAbF,CAcEN,gBAAgB,CAAhBA,gBAdF,CAeEE,uBAAuB,CAAvBA,uBAfF,CAgBEC,KAAK,CAALA,KAhBF,CAiBEC,sBAAsB,CAAtBA,sBAjBF,CAkBEG,aAAa,CAAbA,aAlBF,CAmBEE,WAAW,CAAXA,WAnBF,CAoBED,iBAAiB,CAAjBA,iBApBF,CAqBEI,KAAK,CAALA,KArBF,CAsBEE,MAAM,CAANA,MAtBF,GAwBD","sourcesContent":["import React from \"react\";\n\nimport type { TCarouselProps } from \"../types\";\nimport { computedFillDataWithAutoFillData } from \"../utils/computedWithAutoFillData\";\n\ntype TGetRequiredProps<P extends keyof TCarouselProps> = Record<\nP,\nRequired<TCarouselProps>[P]\n>;\n\nexport type TInitializeCarouselProps<T> = TCarouselProps<T> &\nTGetRequiredProps<\n| \"defaultIndex\"\n| \"loop\"\n| \"width\"\n| \"height\"\n| \"scrollAnimationDuration\"\n| \"autoPlayInterval\"\n| \"autoFillData\"\n> & {\n // Raw data that has not been processed\n rawData: T[]\n dataLength: number\n rawDataLength: number\n};\n\nexport function useInitProps<T>(\n props: TCarouselProps<T>,\n): TInitializeCarouselProps<T> {\n const {\n defaultIndex = 0,\n data: rawData = [],\n loop = true,\n autoPlayInterval: _autoPlayInterval = 1000,\n scrollAnimationDuration = 500,\n style = {},\n panGestureHandlerProps = {},\n autoFillData = true,\n // switchers\n enabled = true,\n pagingEnabled = true,\n overscrollEnabled = true,\n snapEnabled = props.enableSnap ?? true,\n width: _width,\n height: _height,\n } = props;\n\n const width = Math.round(_width || 0);\n const height = Math.round(_height || 0);\n const autoPlayInterval = Math.max(_autoPlayInterval, 0);\n\n const data = React.useMemo<T[]>(\n () => {\n return computedFillDataWithAutoFillData<T>({\n loop,\n autoFillData,\n data: rawData,\n dataLength: rawData.length,\n });\n },\n [rawData, loop, autoFillData],\n );\n\n const dataLength = data.length;\n const rawDataLength = rawData.length;\n\n if (props.mode === \"vertical-stack\" || props.mode === \"horizontal-stack\") {\n if (!props.modeConfig)\n props.modeConfig = {};\n\n props.modeConfig.showLength = props.modeConfig?.showLength ?? dataLength - 1;\n }\n\n return {\n ...props,\n defaultIndex,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n loop,\n enabled,\n autoPlayInterval,\n scrollAnimationDuration,\n style,\n panGestureHandlerProps,\n pagingEnabled,\n snapEnabled,\n overscrollEnabled,\n width,\n height,\n };\n}\n"]}
1
+ {"version":3,"sources":["useInitProps.ts"],"names":["useInitProps","props","defaultIndex","data","rawData","loop","autoPlayInterval","_autoPlayInterval","scrollAnimationDuration","style","autoFillData","enabled","pagingEnabled","overscrollEnabled","snapEnabled","enableSnap","width","_width","height","_height","Math","round","max","React","useMemo","dataLength","length","rawDataLength","mode","modeConfig","showLength"],"mappings":";;;;;;;AAAA;;AAGA;;;;AAuBO,SAASA,YAAT,CACLC,KADK,EAEwB;AAAA;;AAC7B,QAAM;AACJC,IAAAA,YAAY,GAAG,CADX;AAEJC,IAAAA,IAAI,EAAEC,OAAO,GAAG,EAFZ;AAGJC,IAAAA,IAAI,GAAG,IAHH;AAIJC,IAAAA,gBAAgB,EAAEC,iBAAiB,GAAG,IAJlC;AAKJC,IAAAA,uBAAuB,GAAG,GALtB;AAMJC,IAAAA,KAAK,GAAG,EANJ;AAOJC,IAAAA,YAAY,GAAG,IAPX;AAQJ;AACAC,IAAAA,OAAO,GAAG,IATN;AAUJC,IAAAA,aAAa,GAAG,IAVZ;AAWJC,IAAAA,iBAAiB,GAAG,IAXhB;AAYJC,IAAAA,WAAW,wBAAGb,KAAK,CAACc,UAAT,iEAAuB,IAZ9B;AAaJC,IAAAA,KAAK,EAAEC,MAbH;AAcJC,IAAAA,MAAM,EAAEC;AAdJ,MAeFlB,KAfJ;AAiBA,QAAMe,KAAK,GAAGI,IAAI,CAACC,KAAL,CAAWJ,MAAM,IAAI,CAArB,CAAd;AACA,QAAMC,MAAM,GAAGE,IAAI,CAACC,KAAL,CAAWF,OAAO,IAAI,CAAtB,CAAf;AACA,QAAMb,gBAAgB,GAAGc,IAAI,CAACE,GAAL,CAASf,iBAAT,EAA4B,CAA5B,CAAzB;;AAEA,QAAMJ,IAAI,GAAGoB,eAAMC,OAAN,CACX,MAAM;AACJ,WAAO,gEAAoC;AACzCnB,MAAAA,IADyC;AAEzCK,MAAAA,YAFyC;AAGzCP,MAAAA,IAAI,EAAEC,OAHmC;AAIzCqB,MAAAA,UAAU,EAAErB,OAAO,CAACsB;AAJqB,KAApC,CAAP;AAMD,GARU,EASX,CAACtB,OAAD,EAAUC,IAAV,EAAgBK,YAAhB,CATW,CAAb;;AAYA,QAAMe,UAAU,GAAGtB,IAAI,CAACuB,MAAxB;AACA,QAAMC,aAAa,GAAGvB,OAAO,CAACsB,MAA9B;;AAEA,MAAIzB,KAAK,CAAC2B,IAAN,KAAe,gBAAf,IAAmC3B,KAAK,CAAC2B,IAAN,KAAe,kBAAtD,EAA0E;AAAA;;AACxE,QAAI,CAAC3B,KAAK,CAAC4B,UAAX,EACE5B,KAAK,CAAC4B,UAAN,GAAmB,EAAnB;AAEF5B,IAAAA,KAAK,CAAC4B,UAAN,CAAiBC,UAAjB,iDAA8B7B,KAAK,CAAC4B,UAApC,sDAA8B,kBAAkBC,UAAhD,yEAA8DL,UAAU,GAAG,CAA3E;AACD;;AAED,SAAO,EACL,GAAGxB,KADE;AAELC,IAAAA,YAFK;AAGLQ,IAAAA,YAHK;AAIL;AACAP,IAAAA,IALK;AAML;AACAsB,IAAAA,UAPK;AAQL;AACArB,IAAAA,OATK;AAUL;AACAuB,IAAAA,aAXK;AAYLtB,IAAAA,IAZK;AAaLM,IAAAA,OAbK;AAcLL,IAAAA,gBAdK;AAeLE,IAAAA,uBAfK;AAgBLC,IAAAA,KAhBK;AAiBLG,IAAAA,aAjBK;AAkBLE,IAAAA,WAlBK;AAmBLD,IAAAA,iBAnBK;AAoBLG,IAAAA,KApBK;AAqBLE,IAAAA;AArBK,GAAP;AAuBD","sourcesContent":["import React from \"react\";\n\nimport type { TCarouselProps } from \"../types\";\nimport { computedFillDataWithAutoFillData } from \"../utils/computed-with-auto-fill-data\";\n\ntype TGetRequiredProps<P extends keyof TCarouselProps> = Record<\nP,\nRequired<TCarouselProps>[P]\n>;\n\nexport type TInitializeCarouselProps<T> = TCarouselProps<T> &\nTGetRequiredProps<\n| \"defaultIndex\"\n| \"loop\"\n| \"width\"\n| \"height\"\n| \"scrollAnimationDuration\"\n| \"autoPlayInterval\"\n| \"autoFillData\"\n> & {\n // Raw data that has not been processed\n rawData: T[]\n dataLength: number\n rawDataLength: number\n};\n\nexport function useInitProps<T>(\n props: TCarouselProps<T>,\n): TInitializeCarouselProps<T> {\n const {\n defaultIndex = 0,\n data: rawData = [],\n loop = true,\n autoPlayInterval: _autoPlayInterval = 1000,\n scrollAnimationDuration = 500,\n style = {},\n autoFillData = true,\n // switchers\n enabled = true,\n pagingEnabled = true,\n overscrollEnabled = true,\n snapEnabled = props.enableSnap ?? true,\n width: _width,\n height: _height,\n } = props;\n\n const width = Math.round(_width || 0);\n const height = Math.round(_height || 0);\n const autoPlayInterval = Math.max(_autoPlayInterval, 0);\n\n const data = React.useMemo<T[]>(\n () => {\n return computedFillDataWithAutoFillData<T>({\n loop,\n autoFillData,\n data: rawData,\n dataLength: rawData.length,\n });\n },\n [rawData, loop, autoFillData],\n );\n\n const dataLength = data.length;\n const rawDataLength = rawData.length;\n\n if (props.mode === \"vertical-stack\" || props.mode === \"horizontal-stack\") {\n if (!props.modeConfig)\n props.modeConfig = {};\n\n props.modeConfig.showLength = props.modeConfig?.showLength ?? dataLength - 1;\n }\n\n return {\n ...props,\n defaultIndex,\n autoFillData,\n // Fill data with autoFillData\n data,\n // Length of fill data\n dataLength,\n // Raw data that has not been processed\n rawData,\n // Length of raw data\n rawDataLength,\n loop,\n enabled,\n autoPlayInterval,\n scrollAnimationDuration,\n style,\n pagingEnabled,\n snapEnabled,\n overscrollEnabled,\n width,\n height,\n };\n}\n"]}