infinity-forge
Version:
57 lines • 2.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = loopCreate;
var utils_1 = require("../../shared/utils.js");
function loopCreate(slideRealIndex) {
var swiper = this;
var params = swiper.params, slidesEl = swiper.slidesEl;
if (!params.loop || (swiper.virtual && swiper.params.virtual.enabled))
return;
var initSlides = function () {
var slides = (0, utils_1.elementChildren)(slidesEl, ".".concat(params.slideClass, ", swiper-slide"));
slides.forEach(function (el, index) {
el.setAttribute('data-swiper-slide-index', index);
});
};
var gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
var slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
var shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
var shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
var addBlankSlides = function (amountOfSlides) {
for (var i = 0; i < amountOfSlides; i += 1) {
var slideEl = swiper.isElement
? (0, utils_1.createElement)('swiper-slide', [params.slideBlankClass])
: (0, utils_1.createElement)('div', [params.slideClass, params.slideBlankClass]);
swiper.slidesEl.append(slideEl);
}
};
if (shouldFillGroup) {
if (params.loopAddBlankSlides) {
var slidesToAdd = slidesPerGroup - (swiper.slides.length % slidesPerGroup);
addBlankSlides(slidesToAdd);
swiper.recalcSlides();
swiper.updateSlides();
}
else {
(0, utils_1.showWarning)('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
}
initSlides();
}
else if (shouldFillGrid) {
if (params.loopAddBlankSlides) {
var slidesToAdd = params.grid.rows - (swiper.slides.length % params.grid.rows);
addBlankSlides(slidesToAdd);
swiper.recalcSlides();
swiper.updateSlides();
}
else {
(0, utils_1.showWarning)('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');
}
initSlides();
}
else {
initSlides();
}
swiper.loopFix({ slideRealIndex: slideRealIndex, direction: params.centeredSlides ? undefined : 'next' });
}
//# sourceMappingURL=loopCreate.js.map