infinity-forge
Version:
84 lines • 3.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = slideToLoop;
//@ts-nocheck
function slideToLoop(index, speed, runCallbacks, internal) {
if (index === void 0) { index = 0; }
if (runCallbacks === void 0) { runCallbacks = true; }
if (typeof index === 'string') {
var indexAsNumber = parseInt(index, 10);
index = indexAsNumber;
}
var swiper = this;
if (swiper.destroyed)
return;
if (typeof speed === 'undefined') {
speed = swiper.params.speed;
}
var gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
var newIndex = index;
if (swiper.params.loop) {
if (swiper.virtual && swiper.params.virtual.enabled) {
// eslint-disable-next-line
newIndex = newIndex + swiper.virtual.slidesBefore;
}
else {
var targetSlideIndex = void 0;
if (gridEnabled) {
var slideIndex_1 = newIndex * swiper.params.grid.rows;
targetSlideIndex = swiper.slides.filter(function (slideEl) { return slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex_1; })[0].column;
}
else {
targetSlideIndex = swiper.getSlideIndexByData(newIndex);
}
var cols = gridEnabled
? Math.ceil(swiper.slides.length / swiper.params.grid.rows)
: swiper.slides.length;
var centeredSlides = swiper.params.centeredSlides;
var slidesPerView = swiper.params.slidesPerView;
if (slidesPerView === 'auto') {
slidesPerView = swiper.slidesPerViewDynamic();
}
else {
slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
if (centeredSlides && slidesPerView % 2 === 0) {
slidesPerView = slidesPerView + 1;
}
}
var needLoopFix = cols - targetSlideIndex < slidesPerView;
if (centeredSlides) {
needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
}
if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {
needLoopFix = false;
}
if (needLoopFix) {
var direction = centeredSlides
? targetSlideIndex < swiper.activeIndex
? 'prev'
: 'next'
: targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView
? 'next'
: 'prev';
swiper.loopFix({
direction: direction,
slideTo: true,
activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
slideRealIndex: direction === 'next' ? swiper.realIndex : undefined,
});
}
if (gridEnabled) {
var slideIndex_2 = newIndex * swiper.params.grid.rows;
newIndex = swiper.slides.filter(function (slideEl) { return slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex_2; })[0].column;
}
else {
newIndex = swiper.getSlideIndexByData(newIndex);
}
}
}
requestAnimationFrame(function () {
swiper.slideTo(newIndex, speed, runCallbacks, internal);
});
return swiper;
}
//# sourceMappingURL=slideToLoop.js.map