infinity-forge
Version:
69 lines • 2.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = slidePrev;
/* eslint no-unused-vars: "off" */
function slidePrev(speed, runCallbacks, internal) {
if (runCallbacks === void 0) { runCallbacks = true; }
var swiper = this;
var params = swiper.params, snapGrid = swiper.snapGrid, slidesGrid = swiper.slidesGrid, rtlTranslate = swiper.rtlTranslate, enabled = swiper.enabled, animating = swiper.animating;
if (!enabled || swiper.destroyed)
return swiper;
if (typeof speed === 'undefined') {
speed = swiper.params.speed;
}
var isVirtual = swiper.virtual && params.virtual.enabled;
if (params.loop) {
if (animating && !isVirtual && params.loopPreventsSliding)
return false;
swiper.loopFix({ direction: 'prev' });
// eslint-disable-next-line
swiper._clientLeft = swiper.wrapperEl.clientLeft;
}
var translate = rtlTranslate ? swiper.translate : -swiper.translate;
function normalize(val) {
if (val < 0)
return -Math.floor(Math.abs(val));
return Math.floor(val);
}
var normalizedTranslate = normalize(translate);
var normalizedSnapGrid = snapGrid.map(function (val) { return normalize(val); });
var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
if (typeof prevSnap === 'undefined' && params.cssMode) {
var prevSnapIndex_1;
snapGrid.forEach(function (snap, snapIndex) {
if (normalizedTranslate >= snap) {
// prevSnap = snap;
prevSnapIndex_1 = snapIndex;
}
});
if (typeof prevSnapIndex_1 !== 'undefined') {
prevSnap = snapGrid[prevSnapIndex_1 > 0 ? prevSnapIndex_1 - 1 : prevSnapIndex_1];
}
}
var prevIndex = 0;
if (typeof prevSnap !== 'undefined') {
prevIndex = slidesGrid.indexOf(prevSnap);
if (prevIndex < 0)
prevIndex = swiper.activeIndex - 1;
if (params.slidesPerView === 'auto' &&
params.slidesPerGroup === 1 &&
params.slidesPerGroupAuto) {
prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
prevIndex = Math.max(prevIndex, 0);
}
}
if (params.rewind && swiper.isBeginning) {
var lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual
? swiper.virtual.slides.length - 1
: swiper.slides.length - 1;
return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
}
else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
requestAnimationFrame(function () {
swiper.slideTo(prevIndex, speed, runCallbacks, internal);
});
return true;
}
return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
}
//# sourceMappingURL=slidePrev.js.map