{"version":3,"file":"static/js/695.b06f20c1.chunk.js","mappings":"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","sources":["../node_modules/swiper/shared/create-element-if-not-defined.mjs","../node_modules/swiper/modules/navigation.mjs","../node_modules/swiper/shared/classes-to-selector.mjs","../node_modules/swiper/modules/pagination.mjs","../node_modules/swiper/modules/autoplay.mjs","../node_modules/swiper/shared/ssr-window.esm.mjs","../node_modules/swiper/shared/utils.mjs","../node_modules/swiper/shared/swiper-core.mjs","../node_modules/swiper/shared/update-swiper.mjs","../node_modules/swiper/swiper-react.mjs","../node_modules/swiper/shared/update-on-virtual-data.mjs"],"sourcesContent":["import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...element.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n 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)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n 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)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_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', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","/**\n * Swiper React 11.1.7\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 24, 2024\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n"],"names":["createElementIfNotDefined","swiper","originalParams","params","checkProps","createElements","Object","keys","forEach","key","auto","element","elementChildren","el","concat","createElement","className","append","Navigation","_ref","extendParams","on","emit","getEl","res","isElement","querySelector","document","querySelectorAll","uniqueNavElements","length","toggleEl","disabled","navigation","makeElementsArray","subEl","classList","disabledClass","split","tagName","watchOverflow","enabled","isLocked","lockClass","update","nextEl","prevEl","loop","isBeginning","rewind","isEnd","onPrevClick","e","preventDefault","slidePrev","onNextClick","slideNext","init","assign","initButton","dir","addEventListener","add","destroy","destroyButton","removeEventListener","remove","hideOnClick","hiddenClass","navigationDisabledClass","disable","filter","_s","targetEl","target","targetIsButton","includes","path","composedPath","find","pathEl","pagination","clickable","contains","isHidden","toggle","enable","classesToSelector","classes","trim","replace","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","type","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","Array","isArray","setSideBullets","bulletEl","position","onBulletClick","closest","index","elementIndex","slidesPerGroup","realIndex","slideToLoop","slideTo","rtl","current","previousIndex","slidesLength","virtual","slides","total","Math","ceil","snapGrid","previousRealIndex","floor","snapIndex","previousSnapIndex","activeIndex","firstIndex","lastIndex","midIndex","elementOuterSize","isHorizontal","style","undefined","max","min","classesToRemove","map","suffix","s","flat","bullet","bulletIndex","setAttribute","firstDisplayedBullet","lastDisplayedBullet","i","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","transform","transitionDuration","speed","innerHTML","render","grid","rows","paginationHTML","numberOfBullets","freeMode","call","push","elementParents","Autoplay","timeout","raf","autoplay","running","paused","timeLeft","delay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","Date","getTime","onTransitionEnd","destroyed","wrapperEl","detail","bySwiperTouchMove","resume","calcTimeLeft","requestAnimationFrame","run","delayForce","cancelAnimationFrame","currentSlideDelay","getSlideDelay","activeSlideEl","slideEl","parseInt","getAttribute","Number","isNaN","proceed","cssMode","clearTimeout","setTimeout","start","stop","pause","internal","reset","onVisibilityChange","getDocument","visibilityState","onPointerEnter","pointerType","animating","onPointerLeave","isObject","obj","constructor","extend","src","ssrDocument","body","activeElement","blur","nodeName","getElementById","createEvent","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","screen","matchMedia","callback","id","getWindow","win","window","deleteProps","object","nextTick","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","a","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","o","prototype","slice","to","arguments","noExtend","nextSource","node","HTMLElement","nodeType","keysArray","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","targetPosition","side","startPosition","translate","time","startTime","duration","scrollSnapType","cssModeFrameID","isOutOfBound","animate","progress","easeProgress","cos","PI","currentPosition","scrollTo","overflow","selector","HTMLSlotElement","assignedElements","matches","elementIsChildOf","parent","isChild","showWarning","text","console","warn","err","tag","c","classesToTokens","elementPrevAll","prevEls","previousElementSibling","prev","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","child","previousSibling","parents","parentElement","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","major","minor","num","isWebView","test","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","events","handler","priority","self","eventsListeners","method","event","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","splice","eventHandler","data","context","_len2","_key2","unshift","toggleSlideClasses$1","condition","toggleSlideClasses","processLazyPreloader","imageEl","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","updateSize","clientWidth","clientHeight","isVertical","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","wrongRTL","isVirtual","previousSlidesLength","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","abs","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","offsetSize","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","slideVisibleClass","slideFullyVisibleClass","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","newActiveIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","loopAddBlankSlides","recalcSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","onTouchStart","originalEvent","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","touchEventsTarget","which","button","isMoved","swipingClassHasValue","noSwipingClass","eventPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","resizeTimeout","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","swiperElementNodeName","resizeObserver","eventsPrefix","url","breakpointsBase","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","transition","transitionDelay","moving","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","toUpperCase","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","paramsList","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","_extends","source","hasOwnProperty","isChildSwiperSlide","displayName","processChildren","React","toArray","props","getChildren","slots","slot","foundSlides","useIsomorphicLayoutEffect","deps","useEffect","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","forwardRef","externalElRef","Tag","wrapperTag","WrapperTag","onSwiper","rest","eventsAssigned","containerClasses","setContainerClasses","useState","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","useRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","splitEvents","allowedParams","plainObj","getParams","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","Swiper$1","extendWith","cache","renderExternal","renderExternalUpdate","paginationEl","scrollbarEl","mountSwiper","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","part","appendChild","nextButtonSvg","prevButtonSvg","updateSwiper","parallax","ref","Provider","offset","top","loopFrom","loopTo","slidesToRender","virtualIndex","renderVirtual","SwiperSlide","externalRef","zoom","lazy","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","slideData","isActive","renderChildren"],"sourceRoot":""}