react-native-reanimated-carousel
Version:
Simple carousel component.fully implemented using Reanimated 2.Infinitely scrolling, very smooth.
2 lines • 5 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:true});exports.useOffsetX=void 0;var _reactNativeReanimated=require("react-native-reanimated");var _worklet_63816918029_init_data={code:"function anonymous() {\n const {\n visibleRanges,\n index,\n loop,\n TOTAL_WIDTH,\n MIN,\n HALF_WIDTH,\n startPos,\n MAX,\n interpolate,\n handlerOffset,\n Extrapolate,\n size\n } = this._closure;\n const {\n negativeRange: negativeRange,\n positiveRange: positiveRange\n } = visibleRanges.value;\n if ((index < negativeRange[0] || index > negativeRange[1]) && (index < positiveRange[0] || index > positiveRange[1])) return Number.MAX_SAFE_INTEGER;\n if (loop) {\n const inputRange = [-TOTAL_WIDTH, MIN - HALF_WIDTH - startPos - Number.MIN_VALUE, MIN - HALF_WIDTH - startPos, 0, MAX + HALF_WIDTH - startPos, MAX + HALF_WIDTH - startPos + Number.MIN_VALUE, TOTAL_WIDTH];\n const outputRange = [startPos, MAX + HALF_WIDTH - Number.MIN_VALUE, MIN - HALF_WIDTH, startPos, MAX + HALF_WIDTH, MIN - HALF_WIDTH + Number.MIN_VALUE, startPos];\n return interpolate(handlerOffset.value, inputRange, outputRange, Extrapolate.CLAMP);\n }\n return handlerOffset.value + size * index;\n}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOffsetX.ts",sourceMap:"{\"version\":3,\"names\":[\"anonymous\",\"visibleRanges\",\"index\",\"loop\",\"TOTAL_WIDTH\",\"MIN\",\"HALF_WIDTH\",\"startPos\",\"MAX\",\"interpolate\",\"handlerOffset\",\"Extrapolate\",\"size\",\"_closure\",\"negativeRange\",\"positiveRange\",\"value\",\"Number\",\"MAX_SAFE_INTEGER\",\"inputRange\",\"MIN_VALUE\",\"outputRange\",\"CLAMP\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOffsetX.ts\"],\"mappings\":\"AA8C4B,SAAAA,SAAMA,CAAA;EAAA;IAAAC,aAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,WAAA;IAAAC,GAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,GAAA;IAAAC,WAAA;IAAAC,aAAA;IAAAC,WAAA;IAAAC;EAAA,SAAAC,QAAA;EAC9B,MAAM;IAAEC,aAAa,EAAbA,aAAa;IAAEC,aAAA,EAAAA;EAAc,CAAC,GAAGd,aAAa,CAACe,KAAK;EAC5D,IACE,CAACd,KAAK,GAAGY,aAAa,CAAC,CAAC,CAAC,IAAIZ,KAAK,GAAGY,aAAa,CAAC,CAAC,CAAC,MAC3CZ,KAAK,GAAGa,aAAa,CAAC,CAAC,CAAC,IAAIb,KAAK,GAAGa,aAAa,CAAC,CAAC,CAAC,CAAC,EAE/D,OAAOE,MAAM,CAACC,gBAAgB;EAEhC,IAAIf,IAAI,EAAE;IACR,MAAMgB,UAAU,GAAG,CACjB,CAACf,WAAW,EACZC,GAAG,GAAGC,UAAU,GAAGC,QAAQ,GAAGU,MAAM,CAACG,SAAS,EAC9Cf,GAAG,GAAGC,UAAU,GAAGC,QAAQ,EAC3B,CAAC,EACDC,GAAG,GAAGF,UAAU,GAAGC,QAAQ,EAC3BC,GAAG,GAAGF,UAAU,GAAGC,QAAQ,GAAGU,MAAM,CAACG,SAAS,EAC9ChB,WAAW,CACZ;IAED,MAAMiB,WAAW,GAAG,CAClBd,QAAQ,EACRC,GAAG,GAAGF,UAAU,GAAGW,MAAM,CAACG,SAAS,EACnCf,GAAG,GAAGC,UAAU,EAChBC,QAAQ,EACRC,GAAG,GAAGF,UAAU,EAChBD,GAAG,GAAGC,UAAU,GAAGW,MAAM,CAACG,SAAS,EACnCb,QAAQ,CACT;IAED,OAAOE,WAAW,CAChBC,aAAa,CAACM,KAAK,EACnBG,UAAU,EACVE,WAAW,EACXV,WAAW,CAACW,KACd,CAAC;EACH;EAEA,OAAOZ,aAAa,CAACM,KAAK,GAAGJ,IAAI,GAAGV,KAAK;AAC3C\"}"};var useOffsetX=function useOffsetX(opts,visibleRanges){var handlerOffset=opts.handlerOffset,index=opts.index,size=opts.size,loop=opts.loop,dataLength=opts.dataLength,_opts$type=opts.type,type=_opts$type===void 0?"positive":_opts$type,_viewCount=opts.viewCount;var ITEM_LENGTH=dataLength;var VALID_LENGTH=ITEM_LENGTH-1;var TOTAL_WIDTH=size*ITEM_LENGTH;var HALF_WIDTH=0.5*size;var viewCount=_viewCount!=null?_viewCount:Math.round((ITEM_LENGTH-1)/2);var positiveCount=type==="positive"?viewCount:VALID_LENGTH-viewCount;var startPos=size*index;if(index>positiveCount)startPos=(index-ITEM_LENGTH)*size;var MAX=positiveCount*size;var MIN=-((VALID_LENGTH-positiveCount)*size);var x=(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-13,-27];var _f=function _f(){var _visibleRanges$value=visibleRanges.value,negativeRange=_visibleRanges$value.negativeRange,positiveRange=_visibleRanges$value.positiveRange;if((index<negativeRange[0]||index>negativeRange[1])&&(index<positiveRange[0]||index>positiveRange[1]))return Number.MAX_SAFE_INTEGER;if(loop){var inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];var outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return(0,_reactNativeReanimated.interpolate)(handlerOffset.value,inputRange,outputRange,_reactNativeReanimated.Extrapolate.CLAMP);}return handlerOffset.value+size*index;};_f._closure={visibleRanges:visibleRanges,index:index,loop:loop,TOTAL_WIDTH:TOTAL_WIDTH,MIN:MIN,HALF_WIDTH:HALF_WIDTH,startPos:startPos,MAX:MAX,interpolate:_reactNativeReanimated.interpolate,handlerOffset:handlerOffset,Extrapolate:_reactNativeReanimated.Extrapolate,size:size};_f.__initData=_worklet_63816918029_init_data;_f.__workletHash=63816918029;_f.__stackDetails=_e;_f.__version="3.3.0";return _f;}(),[loop,dataLength,viewCount,type,size,visibleRanges]);return x;};exports.useOffsetX=useOffsetX;
//# sourceMappingURL=useOffsetX.js.map