infinity-forge
Version:
69 lines • 3.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = updateSlidesClasses;
//@ts-nocheck
var utils_1 = require("../../shared/utils.js");
var toggleSlideClasses = function (slideEl, condition, className) {
if (condition && !slideEl.classList.contains(className)) {
slideEl.classList.add(className);
}
else if (!condition && slideEl.classList.contains(className)) {
slideEl.classList.remove(className);
}
};
function updateSlidesClasses() {
var swiper = this;
var slides = swiper.slides, params = swiper.params, slidesEl = swiper.slidesEl, activeIndex = swiper.activeIndex;
var isVirtual = swiper.virtual && params.virtual.enabled;
var gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
var getFilteredSlide = function (selector) {
return (0, utils_1.elementChildren)(slidesEl, ".".concat(params.slideClass).concat(selector, ", swiper-slide").concat(selector))[0];
};
var activeSlide;
var prevSlide;
var nextSlide;
if (isVirtual) {
if (params.loop) {
var slideIndex = activeIndex - swiper.virtual.slidesBefore;
if (slideIndex < 0)
slideIndex = swiper.virtual.slides.length + slideIndex;
if (slideIndex >= swiper.virtual.slides.length)
slideIndex -= swiper.virtual.slides.length;
activeSlide = getFilteredSlide("[data-swiper-slide-index=\"".concat(slideIndex, "\"]"));
}
else {
activeSlide = getFilteredSlide("[data-swiper-slide-index=\"".concat(activeIndex, "\"]"));
}
}
else {
if (gridEnabled) {
activeSlide = slides.filter(function (slideEl) { return slideEl.column === activeIndex; })[0];
nextSlide = slides.filter(function (slideEl) { return slideEl.column === activeIndex + 1; })[0];
prevSlide = slides.filter(function (slideEl) { return slideEl.column === activeIndex - 1; })[0];
}
else {
activeSlide = slides[activeIndex];
}
}
if (activeSlide) {
if (!gridEnabled) {
// Next Slide
nextSlide = (0, utils_1.elementNextAll)(activeSlide, ".".concat(params.slideClass, ", swiper-slide"))[0];
if (params.loop && !nextSlide) {
nextSlide = slides[0];
}
// Prev Slide
prevSlide = (0, utils_1.elementPrevAll)(activeSlide, ".".concat(params.slideClass, ", swiper-slide"))[0];
if (params.loop && !prevSlide === 0) {
prevSlide = slides[slides.length - 1];
}
}
}
slides.forEach(function (slideEl) {
toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
});
swiper.emitSlidesClasses();
}
//# sourceMappingURL=updateSlidesClasses.js.map