UNPKG

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 3.98 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getTransform=exports.getSlidesToSlide=exports.notEnoughChildren=exports.getTransformForPartialVsibile=exports.getTransformForCenterMode=exports.getIfSlideIsVisbile=exports.getInitialState=exports.isInRightEnd=exports.isInLeftEnd=exports.parsePosition=void 0;const elementWidth_1=require("./elementWidth");function notEnoughChildren(state){var{slidesToShow:state,totalItems}=state;return totalItems<state}function getInitialState(state,props){var{domLoaded,slidesToShow,containerWidth,itemWidth}=state,{deviceType:props,responsive,ssr,partialVisbile,partialVisible}=props;let flexBisis;domLoaded=Boolean(domLoaded&&slidesToShow&&containerWidth&&itemWidth),ssr&&props&&!domLoaded&&(flexBisis=(0,elementWidth_1.getWidthFromDeviceType)(props,responsive)),slidesToShow=Boolean(ssr&&props&&!domLoaded&&flexBisis),containerWidth=(0,elementWidth_1.getPartialVisibilityGutter)(responsive,partialVisbile||partialVisible,props,state.deviceType);return{shouldRenderOnSSR:slidesToShow,flexBisis:flexBisis,domFullyLoaded:domLoaded,partialVisibilityGutter:containerWidth,shouldRenderAtAll:slidesToShow||domLoaded}}function getIfSlideIsVisbile(index,state){var{currentSlide:state,slidesToShow}=state;return state<=index&&index<state+slidesToShow}function getTransformForCenterMode(state,props,transformPlaceHolder){transformPlaceHolder=transformPlaceHolder||state.transform;return!props.infinite&&0===state.currentSlide||notEnoughChildren(state)?transformPlaceHolder:transformPlaceHolder+state.itemWidth/2}function isInLeftEnd({currentSlide}){return!(0<currentSlide)}function isInRightEnd({currentSlide,totalItems,slidesToShow}){return!(currentSlide+slidesToShow<totalItems)}function getTransformForPartialVsibile(state,partialVisibilityGutter=0,props,transformPlaceHolder){var{currentSlide,slidesToShow}=state,isRightEndReach=isInRightEnd(state),props=!props.infinite&&isRightEndReach,isRightEndReach=transformPlaceHolder||state.transform;if(notEnoughChildren(state))return isRightEndReach;transformPlaceHolder=isRightEndReach+currentSlide*partialVisibilityGutter;return props?transformPlaceHolder+(state.containerWidth-(state.itemWidth-partialVisibilityGutter)*slidesToShow):transformPlaceHolder}function parsePosition(props,position){return props.rtl?-1*position:position}function getTransform(state,props,transformPlaceHolder){var{partialVisbile,partialVisible,responsive,deviceType,centerMode}=props,transform=transformPlaceHolder||state.transform,responsive=(0,elementWidth_1.getPartialVisibilityGutter)(responsive,partialVisbile||partialVisible,deviceType,state.deviceType);return parsePosition(props,partialVisible||partialVisbile?getTransformForPartialVsibile(state,responsive,props,transformPlaceHolder):centerMode?getTransformForCenterMode(state,props,transformPlaceHolder):transform)}function getSlidesToSlide(state,props){var{domLoaded:state,slidesToShow,containerWidth,itemWidth}=state;const{deviceType,responsive}=props;let slidesToScroll=props.slidesToSlide||1;state=Boolean(state&&slidesToShow&&containerWidth&&itemWidth);return props.ssr&&props.deviceType&&!state&&Object.keys(responsive).forEach(device=>{var slidesToSlide=responsive[device]["slidesToSlide"];deviceType===device&&slidesToSlide&&(slidesToScroll=slidesToSlide)}),state&&Object.keys(responsive).forEach(item=>{var{breakpoint:item,slidesToSlide}=responsive[item],{max:item,min}=item;slidesToSlide&&window.innerWidth>=min&&window.innerWidth<=item&&(slidesToScroll=slidesToSlide)}),slidesToScroll}exports.notEnoughChildren=notEnoughChildren,exports.getInitialState=getInitialState,exports.getIfSlideIsVisbile=getIfSlideIsVisbile,exports.getTransformForCenterMode=getTransformForCenterMode,exports.isInLeftEnd=isInLeftEnd,exports.isInRightEnd=isInRightEnd,exports.getTransformForPartialVsibile=getTransformForPartialVsibile,exports.parsePosition=parsePosition,exports.getTransform=getTransform,exports.getSlidesToSlide=getSlidesToSlide;