react-slick
Version:
React port of slick carousel
72 lines (65 loc) • 1.9 kB
JavaScript
exports.__esModule = true;
exports.siblingDirection = siblingDirection;
exports.slidesOnRight = slidesOnRight;
exports.slidesOnLeft = slidesOnLeft;
var getPreClones = exports.getPreClones = function getPreClones(spec) {
if (spec.unslick || !spec.infinite) {
return 0;
}
if (spec.variableWidth) {
return spec.slideCount;
}
return spec.slidesToShow + (spec.centerMode ? 1 : 0);
};
var getPostClones = exports.getPostClones = function getPostClones(spec) {
if (spec.unslick || !spec.infinite) {
return 0;
}
return spec.slideCount;
};
var getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {
return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);
};
function siblingDirection(_ref) {
var currentSlide = _ref.currentSlide,
targetSlide = _ref.targetSlide,
slidesToShow = _ref.slidesToShow,
centerMode = _ref.centerMode,
rtl = _ref.rtl;
if (targetSlide > currentSlide) {
if (targetSlide > currentSlide + slidesOnRight(slidesToShow, centerMode, rtl)) {
return 'left';
}
return 'right';
} else {
if (targetSlide < currentSlide - slidesOnLeft(slidesToShow, centerMode, rtl)) {
return 'right';
}
return 'left';
}
}
function slidesOnRight(slidesToShow, centerMode, rtl) {
// returns no of slides on the right of active slide
if (centerMode) {
var right = (slidesToShow - 1) / 2 + 1;
if (rtl && slidesToShow % 2 === 0) right += 1;
return right;
}
if (rtl) {
return 0;
}
return slidesToShow - 1;
}
function slidesOnLeft(slidesToShow, centerMode, rtl) {
// returns no of slides on the left of active slide
if (centerMode) {
var left = (slidesToShow - 1) / 2 + 1;
if (!rtl && slidesToShow % 2 === 0) left += 1;
return left;
}
if (rtl) {
return slidesToShow - 1;
}
return 0;
}
;