infinity-forge
Version:
47 lines • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = effectVirtualTransitionEnd;
var utils_1 = require("./utils.js");
function effectVirtualTransitionEnd(_a) {
var swiper = _a.swiper, duration = _a.duration, transformElements = _a.transformElements, allSlides = _a.allSlides;
var activeIndex = swiper.activeIndex;
var getSlide = function (el) {
if (!el.parentElement) {
// assume shadow root
var slide = swiper.slides.filter(function (slideEl) { return slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode; })[0];
return slide;
}
return el.parentElement;
};
if (swiper.params.virtualTranslate && duration !== 0) {
var eventTriggered_1 = false;
var transitionEndTarget = void 0;
if (allSlides) {
transitionEndTarget = transformElements;
}
else {
transitionEndTarget = transformElements.filter(function (transformEl) {
var el = transformEl.classList.contains('swiper-slide-transform')
? getSlide(transformEl)
: transformEl;
return swiper.getSlideIndex(el) === activeIndex;
});
}
transitionEndTarget.forEach(function (el) {
(0, utils_1.elementTransitionEnd)(el, function () {
if (eventTriggered_1)
return;
if (!swiper || swiper.destroyed)
return;
eventTriggered_1 = true;
swiper.animating = false;
var evt = new window.CustomEvent('transitionend', {
bubbles: true,
cancelable: true,
});
swiper.wrapperEl.dispatchEvent(evt);
});
});
}
}
//# sourceMappingURL=effect-virtual-transition-end.js.map