{"version":3,"file":"5506.h-745e755c.js","mappings":"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","sources":["webpack://vilans-react/./node_modules/swiper/modules/keyboard.mjs","webpack://vilans-react/./node_modules/swiper/modules/navigation.mjs","webpack://vilans-react/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://vilans-react/./node_modules/swiper/modules/controller.mjs","webpack://vilans-react/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://vilans-react/./node_modules/swiper/modules/a11y.mjs","webpack://vilans-react/./node_modules/swiper/modules/thumbs.mjs","webpack://vilans-react/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://vilans-react/./node_modules/swiper/shared/utils.mjs","webpack://vilans-react/./node_modules/swiper/shared/swiper-core.mjs","webpack://vilans-react/./node_modules/swiper/shared/update-swiper.mjs","webpack://vilans-react/./node_modules/swiper/swiper-react.mjs","webpack://vilans-react/./node_modules/swiper/shared/update-on-virtual-data.mjs"],"sourcesContent":["import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.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 const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\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.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\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 if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\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","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 { n as nextTick, i as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElement = document.querySelector(swiper.params.controller.control);\n if (controlElement && controlElement.swiper) {\n swiper.controller.control = controlElement.swiper;\n } else if (controlElement) {\n const onControllerSwiper = e => {\n swiper.controller.control = e.detail[0];\n swiper.update();\n controlElement.removeEventListener('init', onControllerSwiper);\n };\n controlElement.addEventListener('init', onControllerSwiper);\n }\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller 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 createElement, g as elementIndex } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { j as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb 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 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 return [...element.children].filter(el => el.matches(selector));\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 : [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}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, getTranslate as h, elementTransitionEnd as i, isObject as j, getSlideTransformEl as k, elementStyle as l, elementNextAll as m, nextTick as n, elementPrevAll as o, animateCSSModeScroll as p, extend as q, deleteProps as r, setCSSProperty as s };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, l as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, m as elementNextAll, o as elementPrevAll, h as getTranslate, p as animateCSSModeScroll, n as nextTick, d as now, q as extend, g as elementIndex, c as createElement, r 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 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 return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\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: 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 getDirectionLabel(property) {\n if (swiper.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 function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(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(slidesLength);\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, slidesLength, getDirectionLabel);\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[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[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[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\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' : 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 if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 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 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\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\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\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 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 slides[i].classList.add(params.slideVisibleClass);\n }\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\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 getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\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 activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\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) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\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 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 (speed === void 0) {\n speed = this.params.speed;\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 (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\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 (speed === void 0) {\n speed = this.params.speed;\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 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 newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\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) return swiper;\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 (speed === void 0) {\n speed = this.params.speed;\n }\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) return swiper;\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 (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\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 (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\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 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 slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\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 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 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.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 // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\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 + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 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.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 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 onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.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 e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) 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 = event.composedPath ? event.composedPath() : event.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 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\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 (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\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 prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\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 if (e.targetTouches && e.targetTouches.length > 1) return;\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 || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\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.swipeDirection === 'next' && swiper.allowSlideNext || swiper.swipeDirection === '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 });\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 if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\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.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : 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.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : 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 const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(event.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(event.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\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 (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 // 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.currentTranslate === data.startTranslate) {\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 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 (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (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\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\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\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', 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 document = getDocument();\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 if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\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 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\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 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 touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\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 loopedSlides: null,\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 slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-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 evCache: []\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 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] ? 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 += 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-CONTAINER') {\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 el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, 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 swiper.el.swiper = null;\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', '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', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', '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 extend(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 }\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 10.3.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 28, 2023\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: `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) 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":["Keyboard","_ref","swiper","extendParams","on","emit","document","g","window","handle","event","enabled","rtlTranslate","rtl","e","originalEvent","kc","keyCode","charCode","pageUpDown","params","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","allowSlideNext","isHorizontal","isVertical","allowSlidePrev","shiftKey","altKey","ctrlKey","metaKey","activeElement","nodeName","toLowerCase","onlyInViewport","inView","el","slideClass","length","slideActiveClass","swiperWidth","clientWidth","swiperHeight","clientHeight","windowWidth","innerWidth","windowHeight","innerHeight","swiperOffset","left","scrollLeft","swiperCoord","top","i","point","preventDefault","returnValue","slideNext","slidePrev","enable","addEventListener","disable","removeEventListener","Object","assign","Navigation","navigation","nextEl","prevEl","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","Array","isArray","filter","getEl","res","isElement","querySelector","querySelectorAll","uniqueNavElements","toggleEl","disabled","forEach","subEl","classList","split","tagName","watchOverflow","isLocked","update","loop","isBeginning","rewind","isEnd","onPrevClick","onNextClick","init","originalParams","checkProps","createElements","keys","key","auto","element","c","className","append","initButton","dir","add","destroy","destroyButton","remove","_s","targetEl","target","includes","pagination","clickable","contains","isHidden","toggle","Controller","LinearSpline","x","y","binarySearch","maxIndex","minIndex","guess","array","val","i1","i3","this","lastIndex","interpolate","x2","removeSpline","controller","control","spline","undefined","inverse","by","HTMLElement","controlElement","onControllerSwiper","detail","translate","byController","destroyed","setTranslate","duration","setTransition","_t","controlled","multiplier","controlledTranslate","Swiper","constructor","setControlledTranslate","slidesGrid","snapGrid","getInterpolateFunction","maxTranslate","minTranslate","Number","isNaN","isFinite","updateProgress","updateActiveIndex","updateSlidesClasses","setControlledTransition","transitionStart","autoHeight","n","updateAutoHeight","wrapperEl","transitionEnd","classes","trim","replace","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","id","clicked","liveRegion","notify","message","notification","innerHTML","makeElFocusable","setAttribute","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","label","disableEl","enableEl","onEnterOrSpaceKey","matches","bulletClass","click","hasPagination","bullets","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","handlePointerDown","handlePointerUp","requestAnimationFrame","handleFocus","slideEl","closest","slides","isActive","indexOf","activeIndex","isVisible","watchSlidesProgress","visibleSlides","sourceCapabilities","firesTouchEvents","scrollTop","slideTo","initSlides","slidesLength","index","slideIndex","parseInt","getAttribute","containerEl","size","repeat","Math","round","random","toString","live","autoplay","addElLive","updateNavigation","bulletEl","renderBullet","bulletActiveClass","removeAttribute","updatePagination","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","initialized","swiperCreated","onThumbClick","thumbsSwiper","clickedIndex","clickedSlide","slideToIndex","slideToLoop","thumbsParams","SwiperClass","slideToClickedSlide","thumbsSwiperParams","initial","slidesPerView","slidesPerViewDynamic","thumbsToActivate","thumbActiveClass","centeredSlides","floor","virtual","slidesEl","realIndex","useOffset","currentThumbsIndex","newThumbsIndex","direction","newThumbsSlide","previousIndex","visibleSlidesIndexes","slidesPerGroup","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","isObject","obj","extend","src","ssrDocument","body","blur","getElementById","createEvent","initEvent","createElement","children","childNodes","style","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","callback","cancelAnimationFrame","getWindow","win","deleteProps","object","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","map","a","join","MozTransform","OTransform","MsTransform","msTransform","m41","parseFloat","m42","o","prototype","call","slice","to","arguments","noExtend","nextSource","node","nodeType","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","targetPosition","side","startPosition","time","startTime","speed","scrollSnapType","cssModeFrameID","isOutOfBound","current","animate","getTime","progress","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","selector","tag","elementOffset","box","getBoundingClientRect","clientTop","clientLeft","scrollY","scrollX","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementTransitionEnd","fireCallBack","elementOuterSize","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","String","major","minor","num","isWebView","test","calcBrowser","eventsEmitter","events","handler","priority","self","eventsListeners","method","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","splice","eventHandler","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","preload","amount","lazyPreloadPrevNext","ceil","grid","rows","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","updateSize","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","cssMode","s","gridEnabled","slideSize","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","abs","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","checkOverflow","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","activeSlides","newHeight","getSlideByIndex","getSlideIndexByData","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","translatesDiff","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","getFilteredSlide","activeSlide","slideNextClass","slidePrevClass","nextSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","virtualTranslate","currentTranslate","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","step","normalizedTranslate","normalizedGrid","normalizedGridNext","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","newIndex","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","loopFix","_clientLeft","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideSelector","loopedSlides","getSlideIndex","loopCreate","slideRealIndex","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","recalcSlides","currentSlideTranslate","diff","touches","touchEventsData","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","onTouchStart","evCache","simulateTouch","pointerType","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","startTranslate","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","type","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","resizeObserver","url","breakpointsBase","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","transition","transitionDuration","transitionDelay","moving","__preventObserver__","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","currentHeight","points","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","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","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","extendWith","cache","renderExternal","renderExternalUpdate","paginationEl","scrollbarEl","mountSwiper","changedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateParams","currentParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","destroyModule","newValue","part","appendChild","render","nextButtonSvg","prevButtonSvg","updateSwiper","parallax","ref","Provider","offset","loopFrom","loopTo","slidesToRender","renderVirtual","SwiperSlide","externalRef","lazy","virtualIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","slideData","renderChildren"],"sourceRoot":""}