infinity-forge
Version:
79 lines • 3.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.preload = exports.processLazyPreloader = void 0;
var processLazyPreloader = function (swiper, imageEl) {
if (!swiper || swiper.destroyed || !swiper.params)
return;
var slideSelector = function () { return (swiper.isElement ? "swiper-slide" : ".".concat(swiper.params.slideClass)); };
var slideEl = imageEl.closest(slideSelector());
if (slideEl) {
var lazyEl_1 = slideEl.querySelector(".".concat(swiper.params.lazyPreloaderClass));
if (!lazyEl_1 && swiper.isElement) {
if (slideEl.shadowRoot) {
lazyEl_1 = slideEl.shadowRoot.querySelector(".".concat(swiper.params.lazyPreloaderClass));
}
else {
// init later
requestAnimationFrame(function () {
if (slideEl.shadowRoot) {
lazyEl_1 = slideEl.shadowRoot.querySelector(".".concat(swiper.params.lazyPreloaderClass));
if (lazyEl_1)
lazyEl_1.remove();
}
});
}
}
if (lazyEl_1)
lazyEl_1.remove();
}
};
exports.processLazyPreloader = processLazyPreloader;
var unlazy = function (swiper, index) {
if (!swiper.slides[index])
return;
var imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
if (imageEl)
imageEl.removeAttribute('loading');
};
var preload = function (swiper) {
if (!swiper || swiper.destroyed || !swiper.params)
return;
var amount = swiper.params.lazyPreloadPrevNext;
var len = swiper.slides.length;
if (!len || !amount || amount < 0)
return;
amount = Math.min(amount, len);
var slidesPerView = swiper.params.slidesPerView === 'auto'
? swiper.slidesPerViewDynamic()
: Math.ceil(swiper.params.slidesPerView);
var activeIndex = swiper.activeIndex;
if (swiper.params.grid && swiper.params.grid.rows > 1) {
var activeColumn_1 = activeIndex;
var preloadColumns_1 = [activeColumn_1 - amount];
preloadColumns_1.push.apply(preloadColumns_1, Array.from({ length: amount }).map(function (_, i) {
return activeColumn_1 + slidesPerView + i;
}));
swiper.slides.forEach(function (slideEl, i) {
if (preloadColumns_1.includes(slideEl.column))
unlazy(swiper, i);
});
return;
}
var slideIndexLastInView = activeIndex + slidesPerView - 1;
if (swiper.params.rewind || swiper.params.loop) {
for (var i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
var realIndex = ((i % len) + len) % len;
if (realIndex < activeIndex || realIndex > slideIndexLastInView)
unlazy(swiper, realIndex);
}
}
else {
for (var i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
unlazy(swiper, i);
}
}
}
};
exports.preload = preload;
//# sourceMappingURL=process-lazy-preloader.js.map