react-multi-carousel-18
Version:
Production-ready, lightweight fully customizable React carousel component that rocks supports multiple items and SSR(Server-side rendering) with typescript.
1 lines • 1.25 kB
JavaScript
function populateSlidesOnMouseTouchMove(state,props,initialX,lastX,clientX,transformPlaceHolder){var{itemWidth:state,slidesToShow,totalItems,currentSlide}=state,props=props["infinite"];let canContinue=!1,direction,nextPosition;var slidesHavePassedRight=Math.round((initialX-lastX)/state),slidesHavePassedLeft=Math.round((lastX-initialX)/state),isMovingLeft=initialX<clientX;if(clientX<initialX&&slidesHavePassedRight<=slidesToShow&&(direction="right",initialX=Math.abs(-state*(totalItems-slidesToShow)),slidesHavePassedRight=transformPlaceHolder-(lastX-clientX),state=currentSlide===totalItems-slidesToShow,(Math.abs(slidesHavePassedRight)<=initialX||state&&props)&&(nextPosition=slidesHavePassedRight,canContinue=!0)),isMovingLeft){const isAboutToOverSlide=!(slidesHavePassedLeft<=slidesToShow);if(!isAboutToOverSlide){direction="left";const nextTranslate=transformPlaceHolder+(clientX-lastX);(nextTranslate<=0||0===currentSlide&&props)&&(canContinue=!0,nextPosition=nextTranslate)}}return{direction:direction,nextPosition:nextPosition,canContinue:canContinue}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.populateSlidesOnMouseTouchMove=void 0,exports.populateSlidesOnMouseTouchMove=populateSlidesOnMouseTouchMove;
;