UNPKG

infinity-forge

Version:
79 lines 3.26 kB
"use strict"; 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