import * as i0 from '@angular/core';
import { Directive, Input, EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Output, ViewChild, ContentChildren, HostBinding, NgModule } from '@angular/core';
import * as i1 from '@angular/common';
import { isPlatformBrowser, CommonModule } from '@angular/common';
import Swiper from 'swiper';
import { Subject, of } from 'rxjs';
function isObject(o) {
return (typeof o === 'object' &&
o !== null &&
o.constructor &&
Object.prototype.toString.call(o).slice(8, -1) === 'Object');
}
function isEnabled(val) {
return typeof val !== 'undefined' && typeof val !== 'boolean' && val.enabled === true;
}
function isShowEl(val, obj, el) {
return ((coerceBooleanProperty(val) === true && obj && !obj.el) ||
!(typeof obj !== 'boolean' &&
obj.el !== el?.nativeElement &&
(typeof obj.el === 'string' || typeof obj.el === 'object')));
}
function extend(target, src) {
const noExtend = ['__proto__', 'constructor', 'prototype'];
Object.keys(src)
.filter((key) => noExtend.indexOf(key) < 0)
.forEach((key) => {
if (typeof target[key] === 'undefined') {
target[key] = src[key];
return;
}
if (target[key] && !src[key]) {
return;
}
if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
if (src[key].__swiper__)
target[key] = src[key];
else
extend(target[key], src[key]);
}
else {
target[key] = src[key];
}
});
}
function coerceBooleanProperty(value) {
return value != null && `${value}` !== 'false';
}
const ignoreNgOnChanges = ['pagination', 'navigation', 'scrollbar', 'virtual'];
function setProperty(val, obj = {}) {
if (isObject(val)) {
return val;
}
if (coerceBooleanProperty(val) === true) {
return obj;
}
return false;
}
/* underscore in name -> watch for changes */
const paramsList = [
'init',
'enabled',
'_direction',
'touchEventsTarget',
'initialSlide',
'_speed',
'cssMode',
'updateOnWindowResize',
'resizeObserver',
'nested',
'focusableElements',
'_width',
'_height',
'preventInteractionOnTransition',
'userAgent',
'url',
'_edgeSwipeDetection',
'_edgeSwipeThreshold',
'_freeMode',
'_autoHeight',
'setWrapperSize',
'virtualTranslate',
'_effect',
'breakpoints',
'_spaceBetween',
'_slidesPerView',
'maxBackfaceHiddenSlides',
'_grid',
'_slidesPerGroup',
'_slidesPerGroupSkip',
'_centeredSlides',
'_centeredSlidesBounds',
'_slidesOffsetBefore',
'_slidesOffsetAfter',
'normalizeSlideIndex',
'_centerInsufficientSlides',
'_watchOverflow',
'roundLengths',
'touchRatio',
'touchAngle',
'simulateTouch',
'_shortSwipes',
'_longSwipes',
'longSwipesRatio',
'longSwipesMs',
'_followFinger',
'allowTouchMove',
'_threshold',
'touchMoveStopPropagation',
'touchStartPreventDefault',
'touchStartForcePreventDefault',
'touchReleaseOnEdges',
'uniqueNavElements',
'_resistance',
'_resistanceRatio',
'_watchSlidesProgress',
'_grabCursor',
'preventClicks',
'preventClicksPropagation',
'_slideToClickedSlide',
'_preloadImages',
'updateOnImagesReady',
'_loop',
'_loopAdditionalSlides',
'_loopedSlides',
'_loopFillGroupWithBlank',
'loopPreventsSlide',
'_rewind',
'_allowSlidePrev',
'_allowSlideNext',
'_swipeHandler',
'_noSwiping',
'noSwipingClass',
'noSwipingSelector',
'passiveListeners',
'containerModifierClass',
'slideClass',
'slideBlankClass',
'slideActiveClass',
'slideDuplicateActiveClass',
'slideVisibleClass',
'slideDuplicateClass',
'slideNextClass',
'slideDuplicateNextClass',
'slidePrevClass',
'slideDuplicatePrevClass',
'wrapperClass',
'runCallbacksOnInit',
'observer',
'observeParents',
'observeSlideChildren',
// modules
'a11y',
'autoplay',
'_controller',
'coverflowEffect',
'cubeEffect',
'fadeEffect',
'flipEffect',
'creativeEffect',
'cardsEffect',
'hashNavigation',
'history',
'keyboard',
'lazy',
'mousewheel',
'_navigation',
'_pagination',
'parallax',
'_scrollbar',
'_thumbs',
'virtual',
'zoom',
'on',
];
const allowedParams = paramsList.map((key) => key.replace(/_/, ''));
function getParams(obj = {}) {
const params = {
on: {},
};
// const events = {};
const passedParams = {};
extend(params, Swiper.defaults);
extend(params, Swiper.extendedDefaults);
params._emitClasses = true;
params.init = false;
const rest = {};
const allowedParams = paramsList.map((key) => key.replace(/_/, ''));
Object.keys(obj).forEach((key) => {
const _key = key.replace(/^_/, '');
if (allowedParams.indexOf(_key) >= 0) {
if (isObject(obj[key])) {
params[_key] = {};
passedParams[_key] = {};
extend(params[_key], obj[key]);
extend(passedParams[_key], obj[key]);
}
else {
params[_key] = obj[key];
passedParams[_key] = obj[key];
}
}
// else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {
// events[`${_key[2].toLowerCase()}${key.substr(3)}`] = obj[key];
// }
else {
rest[_key] = obj[key];
}
});
['navigation', 'pagination', 'scrollbar'].forEach((key) => {
if (params[key] === true)
params[key] = {};
if (params[key] === false)
delete params[key];
});
return { params, passedParams, rest };
}
class SwiperSlideDirective {
constructor(template) {
this.template = template;
this.class = '';
this.autoplayDelay = null;
this.slideData = {
isActive: false,
isPrev: false,
isNext: false,
isVisible: false,
isDuplicate: false,
};
}
set zoom(val) {
this._zoom = coerceBooleanProperty(val);
}
get zoom() {
return this._zoom;
}
get classNames() {
return this._classNames;
}
set classNames(val) {
if (this._classNames === val) {
return;
}
this._classNames = val;
this.slideData = {
isActive: this._hasClass(['swiper-slide-active', 'swiper-slide-duplicate-active']),
isVisible: this._hasClass(['swiper-slide-visible']),
isDuplicate: this._hasClass(['swiper-slide-duplicate']),
isPrev: this._hasClass(['swiper-slide-prev', 'swiper-slide-duplicate-prev']),
isNext: this._hasClass(['swiper-slide-next', 'swiper-slide-duplicate-next']),
};
}
_hasClass(classNames) {
return classNames.some((className) => this._classNames.indexOf(className) >= 0);
}
}
SwiperSlideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SwiperSlideDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
SwiperSlideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: SwiperSlideDirective, selector: "ng-template[swiperSlide]", inputs: { virtualIndex: "virtualIndex", class: "class", autoplayDelay: ["data-swiper-autoplay", "autoplayDelay"], zoom: "zoom" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SwiperSlideDirective, decorators: [{
type: Directive,
args: [{
selector: 'ng-template[swiperSlide]',
}]
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { virtualIndex: [{
type: Input
}], class: [{
type: Input
}], autoplayDelay: [{
type: Input,
args: ['data-swiper-autoplay']
}], zoom: [{
type: Input
}] } });
class SwiperComponent {
constructor(_ngZone, elementRef, _changeDetectorRef, _platformId) {
this._ngZone = _ngZone;
this.elementRef = elementRef;
this._changeDetectorRef = _changeDetectorRef;
this._platformId = _platformId;
this.slideClass = 'swiper-slide';
this.wrapperClass = 'swiper-wrapper';
this.showNavigation = true;
this.showPagination = true;
this.showScrollbar = true;
this.s__beforeBreakpoint = new EventEmitter();
this.s__containerClasses = new EventEmitter();
this.s__slideClass = new EventEmitter();
this.s__swiper = new EventEmitter();
this.s_activeIndexChange = new EventEmitter();
this.s_afterInit = new EventEmitter();
this.s_autoplay = new EventEmitter();
this.s_autoplayStart = new EventEmitter();
this.s_autoplayStop = new EventEmitter();
this.s_autoplayPause = new EventEmitter();
this.s_autoplayResume = new EventEmitter();
this.s_beforeDestroy = new EventEmitter();
this.s_beforeInit = new EventEmitter();
this.s_beforeLoopFix = new EventEmitter();
this.s_beforeResize = new EventEmitter();
this.s_beforeSlideChangeStart = new EventEmitter();
this.s_beforeTransitionStart = new EventEmitter();
this.s_breakpoint = new EventEmitter();
this.s_changeDirection = new EventEmitter();
this.s_click = new EventEmitter();
this.s_doubleTap = new EventEmitter();
this.s_doubleClick = new EventEmitter();
this.s_destroy = new EventEmitter();
this.s_fromEdge = new EventEmitter();
this.s_hashChange = new EventEmitter();
this.s_hashSet = new EventEmitter();
this.s_imagesReady = new EventEmitter();
this.s_init = new EventEmitter();
this.s_keyPress = new EventEmitter();
this.s_lazyImageLoad = new EventEmitter();
this.s_lazyImageReady = new EventEmitter();
this.s_loopFix = new EventEmitter();
this.s_momentumBounce = new EventEmitter();
this.s_navigationHide = new EventEmitter();
this.s_navigationShow = new EventEmitter();
this.s_observerUpdate = new EventEmitter();
this.s_orientationchange = new EventEmitter();
this.s_paginationHide = new EventEmitter();
this.s_paginationRender = new EventEmitter();
this.s_paginationShow = new EventEmitter();
this.s_paginationUpdate = new EventEmitter();
this.s_progress = new EventEmitter();
this.s_reachBeginning = new EventEmitter();
this.s_reachEnd = new EventEmitter();
this.s_realIndexChange = new EventEmitter();
this.s_resize = new EventEmitter();
this.s_scroll = new EventEmitter();
this.s_scrollbarDragEnd = new EventEmitter();
this.s_scrollbarDragMove = new EventEmitter();
this.s_scrollbarDragStart = new EventEmitter();
this.s_setTransition = new EventEmitter();
this.s_setTranslate = new EventEmitter();
this.s_slideChange = new EventEmitter();
this.s_slideChangeTransitionEnd = new EventEmitter();
this.s_slideChangeTransitionStart = new EventEmitter();
this.s_slideNextTransitionEnd = new EventEmitter();
this.s_slideNextTransitionStart = new EventEmitter();
this.s_slidePrevTransitionEnd = new EventEmitter();
this.s_slidePrevTransitionStart = new EventEmitter();
this.s_slideResetTransitionStart = new EventEmitter();
this.s_slideResetTransitionEnd = new EventEmitter();
this.s_sliderMove = new EventEmitter();
this.s_sliderFirstMove = new EventEmitter();
this.s_slidesLengthChange = new EventEmitter();
this.s_slidesGridLengthChange = new EventEmitter();
this.s_snapGridLengthChange = new EventEmitter();
this.s_snapIndexChange = new EventEmitter();
this.s_tap = new EventEmitter();
this.s_toEdge = new EventEmitter();
this.s_touchEnd = new EventEmitter();
this.s_touchMove = new EventEmitter();
this.s_touchMoveOpposite = new EventEmitter();
this.s_touchStart = new EventEmitter();
this.s_transitionEnd = new EventEmitter();
this.s_transitionStart = new EventEmitter();
this.s_update = new EventEmitter();
this.s_zoomChange = new EventEmitter();
this.s_swiper = new EventEmitter();
this.s_lock = new EventEmitter();
this.s_unlock = new EventEmitter();
this._activeSlides = new Subject();
this.containerClasses = 'swiper';
this.slidesChanges = (val) => {
this.slides = val.map((slide, index) => {
slide.slideIndex = index;
slide.classNames = this.slideClass || '';
return slide;
});
if (this.loop && !this.loopedSlides) {
this.calcLoopedSlides();
}
if (!this.virtual) {
if (this.loopedSlides) {
this.prependSlides = of(this.slides.slice(this.slides.length - this.loopedSlides));
this.appendSlides = of(this.slides.slice(0, this.loopedSlides));
}
}
else if (this.swiperRef && this.swiperRef.virtual) {
this._ngZone.runOutsideAngular(() => {
this.swiperRef.virtual.slides = this.slides;
this.swiperRef.virtual.update(true);
});
}
this._changeDetectorRef.detectChanges();
};
this.style = null;
this.updateVirtualSlides = (virtualData) => {
// TODO: type virtualData
if (!this.swiperRef ||
(this.currentVirtualData &&
this.currentVirtualData.from === virtualData.from &&
this.currentVirtualData.to === virtualData.to &&
this.currentVirtualData.offset === virtualData.offset)) {
return;
}
this.style = this.swiperRef.isHorizontal()
? {
[this.swiperRef.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`,
}
: {
top: `${virtualData.offset}px`,
};
this.currentVirtualData = virtualData;
this._activeSlides.next(virtualData.slides);
this._ngZone.run(() => {
this._changeDetectorRef.detectChanges();
});
this._ngZone.runOutsideAngular(() => {
this.swiperRef.updateSlides();
this.swiperRef.updateProgress();
this.swiperRef.updateSlidesClasses();
if (isEnabled(this.swiperRef.params.lazy)) {
this.swiperRef.lazy.load();
}
this.swiperRef.virtual.update(true);
});
return;
};
}
set navigation(val) {
const currentNext = typeof this._navigation !== 'boolean' && this._navigation !== ''
? this._navigation?.nextEl
: null;
const currentPrev = typeof this._navigation !== 'boolean' && this._navigation !== ''
? this._navigation?.prevEl
: null;
this._navigation = setProperty(val, {
nextEl: currentNext || null,
prevEl: currentPrev || null,
});
this.showNavigation = !(coerceBooleanProperty(val) !== true ||
(this._navigation &&
typeof this._navigation !== 'boolean' &&
this._navigation.prevEl !== this._prevElRef?.nativeElement &&
(this._navigation.prevEl !== null || this._navigation.nextEl !== null) &&
(typeof this._navigation.nextEl === 'string' ||
typeof this._navigation.prevEl === 'string' ||
typeof this._navigation.nextEl === 'object' ||
typeof this._navigation.prevEl === 'object')));
}
get navigation() {
return this._navigation;
}
set pagination(val) {
const current = typeof this._pagination !== 'boolean' && this._pagination !== ''
? this._pagination?.el
: null;
this._pagination = setProperty(val, {
el: current || null,
});
this.showPagination = isShowEl(val, this._pagination, this._paginationElRef);
}
get pagination() {
return this._pagination;
}
set scrollbar(val) {
const current = typeof this._scrollbar !== 'boolean' && this._scrollbar !== '' ? this._scrollbar?.el : null;
this._scrollbar = setProperty(val, {
el: current || null,
});
this.showScrollbar = isShowEl(val, this._scrollbar, this._scrollbarElRef);
}
get scrollbar() {
return this._scrollbar;
}
set virtual(val) {
this._virtual = setProperty(val);
}
get virtual() {
return this._virtual;
}
set config(val) {
this.updateSwiper(val);
const { params } = getParams(val);
Object.assign(this, params);
}
set prevElRef(el) {
this._prevElRef = el;
this._setElement(el, this.navigation, 'navigation', 'prevEl');
}
set nextElRef(el) {
this._nextElRef = el;
this._setElement(el, this.navigation, 'navigation', 'nextEl');
}
set scrollbarElRef(el) {
this._scrollbarElRef = el;
this._setElement(el, this.scrollbar, 'scrollbar');
}
set paginationElRef(el) {
this._paginationElRef = el;
this._setElement(el, this.pagination, 'pagination');
}
get activeSlides() {
if (this.virtual) {
return this._activeSlides;
}
return of(this.slides);
}
get zoomContainerClass() {
return this.zoom && typeof this.zoom !== 'boolean'
? this.zoom.containerClass
: 'swiper-zoom-container';
}
_setElement(el, ref, update, key = 'el') {
if (!ref || !el)
return;
if (el.nativeElement) {
if (ref[key] === el.nativeElement) {
return;
}
ref[key] = el.nativeElement;
}
const updateObj = {};
updateObj[update] = true;
this.updateInitSwiper(updateObj);
}
ngOnInit() {
const { params } = getParams(this);
Object.assign(this, params);
}
ngAfterViewInit() {
this.childrenSlidesInit();
this.initSwiper();
this._changeDetectorRef.detectChanges();
setTimeout(() => {
this.s_swiper.emit(this.swiperRef);
});
}
childrenSlidesInit() {
this.slidesChanges(this.slidesEl);
this.slidesEl.changes.subscribe(this.slidesChanges);
}
get isSwiperActive() {
return this.swiperRef && !this.swiperRef.destroyed;
}
initSwiper() {
const { params: swiperParams, passedParams } = getParams(this);
Object.assign(this, swiperParams);
this._ngZone.runOutsideAngular(() => {
swiperParams.init = false;
if (!swiperParams.virtual) {
swiperParams.observer = true;
}
swiperParams.onAny = (eventName, ...args) => {
const emitter = this[('s_' + eventName)];
if (emitter) {
emitter.emit([...args]);
}
};
const _slideClasses = (_, updated) => {
updated.forEach(({ slideEl, classNames }, index) => {
const dataIndex = slideEl.getAttribute('data-swiper-slide-index');
const slideIndex = dataIndex ? parseInt(dataIndex) : index;
if (this.virtual) {
const virtualSlide = this.slides.find((item) => {
return item.virtualIndex && item.virtualIndex === slideIndex;
});
if (virtualSlide) {
virtualSlide.classNames = classNames;
return;
}
}
if (this.slides[slideIndex]) {
this.slides[slideIndex].classNames = classNames;
}
});
this._changeDetectorRef.detectChanges();
};
const _containerClasses = (_, classes) => {
setTimeout(() => {
this.containerClasses = classes;
});
};
Object.assign(swiperParams.on, {
_containerClasses,
_slideClasses,
});
const swiperRef = new Swiper(swiperParams);
swiperRef.loopCreate = () => { };
swiperRef.loopDestroy = () => { };
if (swiperParams.loop) {
swiperRef.loopedSlides = this.loopedSlides;
}
const isVirtualEnabled = isEnabled(swiperRef.params.virtual);
if (swiperRef.virtual && isVirtualEnabled) {
swiperRef.virtual.slides = this.slides;
const extendWith = {
cache: false,
slides: this.slides,
renderExternal: this.updateVirtualSlides,
renderExternalUpdate: false,
};
extend(swiperRef.params.virtual, extendWith);
extend(swiperRef.originalParams.virtual, extendWith);
}
if (isPlatformBrowser(this._platformId)) {
this.swiperRef = swiperRef.init(this.elementRef.nativeElement);
const isVirtualEnabled = isEnabled(this.swiperRef.params.virtual);
if (this.swiperRef.virtual && isVirtualEnabled) {
this.swiperRef.virtual.update(true);
}
this._changeDetectorRef.detectChanges();
}
});
}
ngOnChanges(changedParams) {
this.updateSwiper(changedParams);
this._changeDetectorRef.detectChanges();
}
updateInitSwiper(changedParams) {
if (!(changedParams && this.swiperRef && !this.swiperRef.destroyed)) {
return;
}
this._ngZone.runOutsideAngular(() => {
const { params: currentParams, pagination, navigation, scrollbar, virtual, thumbs, } = this.swiperRef;
if (changedParams.pagination) {
if (this.pagination &&
typeof this.pagination !== 'boolean' &&
this.pagination.el &&
pagination &&
!pagination.el) {
this.updateParameter('pagination', this.pagination);
pagination.init();
pagination.render();
pagination.update();
}
else {
pagination.destroy();
pagination.el = null;
}
}
if (changedParams.scrollbar) {
if (this.scrollbar &&
typeof this.scrollbar !== 'boolean' &&
this.scrollbar.el &&
scrollbar &&
!scrollbar.el) {
this.updateParameter('scrollbar', this.scrollbar);
scrollbar.init();
scrollbar.updateSize();
scrollbar.setTranslate();
}
else {
scrollbar.destroy();
scrollbar.el = null;
}
}
if (changedParams.navigation) {
if (this.navigation &&
typeof this.navigation !== 'boolean' &&
this.navigation.prevEl &&
this.navigation.nextEl &&
navigation &&
!navigation.prevEl &&
!navigation.nextEl) {
this.updateParameter('navigation', this.navigation);
navigation.init();
navigation.update();
}
else if (navigation.prevEl && navigation.nextEl) {
navigation.destroy();
navigation.nextEl = null;
navigation.prevEl = null;
}
}
if (changedParams.thumbs && this.thumbs && this.thumbs.swiper) {
this.updateParameter('thumbs', this.thumbs);
const initialized = thumbs.init();
if (initialized)
thumbs.update(true);
}
if (changedParams.controller && this.controller && this.controller.control) {
this.swiperRef.controller.control = this.controller.control;
}
this.swiperRef.update();
});
}
updateSwiper(changedParams) {
this._ngZone.runOutsideAngular(() => {
if (changedParams.config) {
return;
}
if (!(changedParams && this.swiperRef && !this.swiperRef.destroyed)) {
return;
}
for (const key in changedParams) {
if (ignoreNgOnChanges.indexOf(key) >= 0) {
continue;
}
const newValue = changedParams[key]?.currentValue ?? changedParams[key];
this.updateParameter(key, newValue);
}
if (changedParams.allowSlideNext) {
this.swiperRef.allowSlideNext = this.allowSlideNext;
}
if (changedParams.allowSlidePrev) {
this.swiperRef.allowSlidePrev = this.allowSlidePrev;
}
if (changedParams.direction) {
this.swiperRef.changeDirection(this.direction, false);
}
if (changedParams.breakpoints) {
if (this.loop && !this.loopedSlides) {
this.calcLoopedSlides();
}
this.swiperRef.currentBreakpoint = null;
this.swiperRef.setBreakpoint();
}
if (changedParams.thumbs || changedParams.controller) {
this.updateInitSwiper(changedParams);
}
this.swiperRef.update();
});
}
calcLoopedSlides() {
if (!this.loop) {
return false;
}
let slidesPerViewParams = this.slidesPerView;
if (this.breakpoints) {
const breakpoint = Swiper.prototype.getBreakpoint(this.breakpoints);
const breakpointOnlyParams = breakpoint in this.breakpoints ? this.breakpoints[breakpoint] : undefined;
if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {
slidesPerViewParams = breakpointOnlyParams.slidesPerView;
}
}
if (slidesPerViewParams === 'auto') {
this.loopedSlides = this.slides.length;
return this.slides.length;
}
let loopedSlides = this.loopedSlides || slidesPerViewParams;
if (!loopedSlides) {
// ?
return false;
}
if (this.loopAdditionalSlides) {
loopedSlides += this.loopAdditionalSlides;
}
if (loopedSlides > this.slides.length) {
loopedSlides = this.slides.length;
}
this.loopedSlides = loopedSlides;
return true;
}
updateParameter(key, value) {
if (!(this.swiperRef && !this.swiperRef.destroyed)) {
return;
}
const _key = key.replace(/^_/, '');
const isCurrentParamObj = isObject(this.swiperRef.params[_key]);
if (_key === 'enabled') {
if (value === true) {
this.swiperRef.enable();
}
else if (value === false) {
this.swiperRef.disable();
}
return;
}
if (isCurrentParamObj && isObject(value)) {
extend(this.swiperRef.params[_key], value);
}
else {
this.swiperRef.params[_key] = value;
}
}
ngOnDestroy() {
this._ngZone.runOutsideAngular(() => {
this.swiperRef?.destroy(true, false);
});
}
}
SwiperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SwiperComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
SwiperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: SwiperComponent, selector: "swiper, [swiper]", inputs: { enabled: "enabled", on: "on", direction: "direction", touchEventsTarget: "touchEventsTarget", initialSlide: "initialSlide", speed: "speed", cssMode: "cssMode", updateOnWindowResize: "updateOnWindowResize", resizeObserver: "resizeObserver", nested: "nested", focusableElements: "focusableElements", width: "width", height: "height", preventInteractionOnTransition: "preventInteractionOnTransition", userAgent: "userAgent", url: "url", edgeSwipeDetection: "edgeSwipeDetection", edgeSwipeThreshold: "edgeSwipeThreshold", freeMode: "freeMode", autoHeight: "autoHeight", setWrapperSize: "setWrapperSize", virtualTranslate: "virtualTranslate", effect: "effect", breakpoints: "breakpoints", spaceBetween: "spaceBetween", slidesPerView: "slidesPerView", maxBackfaceHiddenSlides: "maxBackfaceHiddenSlides", grid: "grid", slidesPerGroup: "slidesPerGroup", slidesPerGroupSkip: "slidesPerGroupSkip", centeredSlides: "centeredSlides", centeredSlidesBounds: "centeredSlidesBounds", slidesOffsetBefore: "slidesOffsetBefore", slidesOffsetAfter: "slidesOffsetAfter", normalizeSlideIndex: "normalizeSlideIndex", centerInsufficientSlides: "centerInsufficientSlides", watchOverflow: "watchOverflow", roundLengths: "roundLengths", touchRatio: "touchRatio", touchAngle: "touchAngle", simulateTouch: "simulateTouch", shortSwipes: "shortSwipes", longSwipes: "longSwipes", longSwipesRatio: "longSwipesRatio", longSwipesMs: "longSwipesMs", followFinger: "followFinger", allowTouchMove: "allowTouchMove", threshold: "threshold", touchMoveStopPropagation: "touchMoveStopPropagation", touchStartPreventDefault: "touchStartPreventDefault", touchStartForcePreventDefault: "touchStartForcePreventDefault", touchReleaseOnEdges: "touchReleaseOnEdges", uniqueNavElements: "uniqueNavElements", resistance: "resistance", resistanceRatio: "resistanceRatio", watchSlidesProgress: "watchSlidesProgress", grabCursor: "grabCursor", preventClicks: "preventClicks", preventClicksPropagation: "preventClicksPropagation", slideToClickedSlide: "slideToClickedSlide", preloadImages: "preloadImages", updateOnImagesReady: "updateOnImagesReady", loop: "loop", loopAdditionalSlides: "loopAdditionalSlides", loopedSlides: "loopedSlides", loopFillGroupWithBlank: "loopFillGroupWithBlank", loopPreventsSlide: "loopPreventsSlide", rewind: "rewind", allowSlidePrev: "allowSlidePrev", allowSlideNext: "allowSlideNext", swipeHandler: "swipeHandler", noSwiping: "noSwiping", noSwipingClass: "noSwipingClass", noSwipingSelector: "noSwipingSelector", passiveListeners: "passiveListeners", containerModifierClass: "containerModifierClass", slideClass: "slideClass", slideBlankClass: "slideBlankClass", slideActiveClass: "slideActiveClass", slideDuplicateActiveClass: "slideDuplicateActiveClass", slideVisibleClass: "slideVisibleClass", slideDuplicateClass: "slideDuplicateClass", slideNextClass: "slideNextClass", slideDuplicateNextClass: "slideDuplicateNextClass", slidePrevClass: "slidePrevClass", slideDuplicatePrevClass: "slideDuplicatePrevClass", wrapperClass: "wrapperClass", runCallbacksOnInit: "runCallbacksOnInit", observeParents: "observeParents", observeSlideChildren: "observeSlideChildren", a11y: "a11y", autoplay: "autoplay", controller: "controller", coverflowEffect: "coverflowEffect", cubeEffect: "cubeEffect", fadeEffect: "fadeEffect", flipEffect: "flipEffect", creativeEffect: "creativeEffect", cardsEffect: "cardsEffect", hashNavigation: "hashNavigation", history: "history", keyboard: "keyboard", lazy: "lazy", mousewheel: "mousewheel", parallax: "parallax", thumbs: "thumbs", zoom: "zoom", class: "class", id: "id", navigation: "navigation", pagination: "pagination", scrollbar: "scrollbar", virtual: "virtual", config: "config" }, outputs: { s__beforeBreakpoint: "_beforeBreakpoint", s__containerClasses: "_containerClasses", s__slideClass: "_slideClass", s__swiper: "_swiper", s_activeIndexChange: "activeIndexChange", s_afterInit: "afterInit", s_autoplay: "autoplay", s_autoplayStart: "autoplayStart", s_autoplayStop: "autoplayStop", s_autoplayPause: "autoplayPause", s_autoplayResume: "autoplayResume", s_beforeDestroy: "beforeDestroy", s_beforeInit: "beforeInit", s_beforeLoopFix: "beforeLoopFix", s_beforeResize: "beforeResize", s_beforeSlideChangeStart: "beforeSlideChangeStart", s_beforeTransitionStart: "beforeTransitionStart", s_breakpoint: "breakpoint", s_changeDirection: "changeDirection", s_click: "click", s_doubleTap: "doubleTap", s_doubleClick: "doubleClick", s_destroy: "destroy", s_fromEdge: "fromEdge", s_hashChange: "hashChange", s_hashSet: "hashSet", s_imagesReady: "imagesReady", s_init: "init", s_keyPress: "keyPress", s_lazyImageLoad: "lazyImageLoad", s_lazyImageReady: "lazyImageReady", s_loopFix: "loopFix", s_momentumBounce: "momentumBounce", s_navigationHide: "navigationHide", s_navigationShow: "navigationShow", s_observerUpdate: "observerUpdate", s_orientationchange: "orientationchange", s_paginationHide: "paginationHide", s_paginationRender: "paginationRender", s_paginationShow: "paginationShow", s_paginationUpdate: "paginationUpdate", s_progress: "progress", s_reachBeginning: "reachBeginning", s_reachEnd: "reachEnd", s_realIndexChange: "realIndexChange", s_resize: "resize", s_scroll: "scroll", s_scrollbarDragEnd: "scrollbarDragEnd", s_scrollbarDragMove: "scrollbarDragMove", s_scrollbarDragStart: "scrollbarDragStart", s_setTransition: "setTransition", s_setTranslate: "setTranslate", s_slideChange: "slideChange", s_slideChangeTransitionEnd: "slideChangeTransitionEnd", s_slideChangeTransitionStart: "slideChangeTransitionStart", s_slideNextTransitionEnd: "slideNextTransitionEnd", s_slideNextTransitionStart: "slideNextTransitionStart", s_slidePrevTransitionEnd: "slidePrevTransitionEnd", s_slidePrevTransitionStart: "slidePrevTransitionStart", s_slideResetTransitionStart: "slideResetTransitionStart", s_slideResetTransitionEnd: "slideResetTransitionEnd", s_sliderMove: "sliderMove", s_sliderFirstMove: "sliderFirstMove", s_slidesLengthChange: "slidesLengthChange", s_slidesGridLengthChange: "slidesGridLengthChange", s_snapGridLengthChange: "snapGridLengthChange", s_snapIndexChange: "snapIndexChange", s_tap: "tap", s_toEdge: "toEdge", s_touchEnd: "touchEnd", s_touchMove: "touchMove", s_touchMoveOpposite: "touchMoveOpposite", s_touchStart: "touchStart", s_transitionEnd: "transitionEnd", s_transitionStart: "transitionStart", s_update: "update", s_zoomChange: "zoomChange", s_swiper: "swiper", s_lock: "lock", s_unlock: "unlock" }, host: { properties: { "class": "this.containerClasses" } }, queries: [{ propertyName: "slidesEl", predicate: SwiperSlideDirective }], viewQueries: [{ propertyName: "prevElRef", first: true, predicate: ["prevElRef"], descendants: true }, { propertyName: "nextElRef", first: true, predicate: ["nextElRef"], descendants: true }, { propertyName: "scrollbarElRef", first: true, predicate: ["scrollbarElRef"], descendants: true }, { propertyName: "paginationElRef", first: true, predicate: ["paginationElRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "