{"version":3,"file":"static/chunks/6127-bc1e96e5c4fd1948.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://_N_E/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://_N_E/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://_N_E/./node_modules/swiper/modules/pagination.css","webpack://_N_E/./node_modules/swiper/swiper.css","webpack://_N_E/./node_modules/swiper/modules/virtual.mjs","webpack://_N_E/./node_modules/swiper/modules/keyboard.mjs","webpack://_N_E/./node_modules/swiper/modules/mousewheel.mjs","webpack://_N_E/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://_N_E/./node_modules/swiper/modules/navigation.mjs","webpack://_N_E/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://_N_E/./node_modules/swiper/modules/pagination.mjs","webpack://_N_E/./node_modules/swiper/modules/scrollbar.mjs","webpack://_N_E/./node_modules/swiper/modules/parallax.mjs","webpack://_N_E/./node_modules/swiper/modules/zoom.mjs","webpack://_N_E/./node_modules/swiper/modules/controller.mjs","webpack://_N_E/./node_modules/swiper/modules/a11y.mjs","webpack://_N_E/./node_modules/swiper/modules/history.mjs","webpack://_N_E/./node_modules/swiper/modules/hash-navigation.mjs","webpack://_N_E/./node_modules/swiper/modules/autoplay.mjs","webpack://_N_E/./node_modules/swiper/modules/thumbs.mjs","webpack://_N_E/./node_modules/swiper/modules/free-mode.mjs","webpack://_N_E/./node_modules/swiper/shared/effect-target.mjs","webpack://_N_E/./node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-fade.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-cube.mjs","webpack://_N_E/./node_modules/swiper/shared/create-shadow.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-flip.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-coverflow.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-creative.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-cards.mjs","webpack://_N_E/./node_modules/swiper/modules/index.mjs","webpack://_N_E/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://_N_E/./node_modules/swiper/shared/utils.mjs","webpack://_N_E/./node_modules/swiper/shared/swiper-core.mjs","webpack://_N_E/./node_modules/swiper/shared/update-swiper.mjs","webpack://_N_E/./node_modules/swiper/shared/update-on-virtual-data.mjs","webpack://_N_E/./node_modules/swiper/swiper-react.mjs","webpack://_N_E/"],"sourcesContent":["export default function _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}","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) swiper.virtual.cache[index] = slideEl;\n return slideEl;\n }\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\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 if (force) {\n swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","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 { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel 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 { 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 => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.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 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : '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","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n swiper.loopFix({\n direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid\n } = swiper;\n elementChildren(el, '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]').forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el\n } = swiper;\n el.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, h as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.el.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !gesture.slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth;\n image.height = gesture.imageEl.offsetHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth;\n imageHeight = gesture.imageEl.offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\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","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 => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\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 { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime;\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n autoplayStartTime = new Date().getTime();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","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","import { d as now, i as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","import { k as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { i as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { k as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { k as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n","export {default as Virtual} from './virtual.mjs';\nexport {default as Keyboard} from './keyboard.mjs';\nexport {default as Mousewheel} from './mousewheel.mjs';\nexport {default as Navigation} from './navigation.mjs';\nexport {default as Pagination} from './pagination.mjs';\nexport {default as Scrollbar} from './scrollbar.mjs';\nexport {default as Parallax} from './parallax.mjs';\nexport {default as Zoom} from './zoom.mjs';\nexport {default as Controller} from './controller.mjs';\nexport {default as A11y} from './a11y.mjs';\nexport {default as History} from './history.mjs';\nexport {default as HashNavigation} from './hash-navigation.mjs';\nexport {default as Autoplay} from './autoplay.mjs';\nexport {default as Thumbs} from './thumbs.mjs';\nexport {default as FreeMode} from './free-mode.mjs';\nexport {default as Grid} from './grid.mjs';\nexport {default as Manipulation} from './manipulation.mjs';\nexport {default as EffectFade} from './effect-fade.mjs';\nexport {default as EffectCube} from './effect-cube.mjs';\nexport {default as EffectFlip} from './effect-flip.mjs';\nexport {default as EffectCoverflow} from './effect-coverflow.mjs';\nexport {default as EffectCreative} from './effect-creative.mjs';\nexport {default as EffectCards} from './effect-cards.mjs';","/**\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.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\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 const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\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 (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\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 }\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 }\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 }\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 }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\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 }\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 slideTo: false,\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(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\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 if (!data.isMoved) {\n if (isLoop) {\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 && 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 && !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 && !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'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (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);\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\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 if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\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 (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\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 (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\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 (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) {\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 : 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 [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].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', '_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';\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 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 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.nextButtonSvg;\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 nextEl.innerHTML = swiper.hostEl.prevButtonSvg;\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","import { S as Swiper } from './swiper-core.mjs';\nimport { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.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, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\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","/**\n * Swiper React 10.0.3\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: July 3, 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"],"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","reactPropsRegex","isPropValid","emotion_memoize_esm","Z","prop","test","charCodeAt","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","options","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","Insertion","_ref","cache","serialized","isStringTag","emotion_utils_browser_esm","hC","emotion_use_insertion_effect_with_fallbacks_browser_esm","L","My","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","undefined","label","defaultShouldForwardProp","shouldUseAs","args","styles","__emotion_styles","slice","push","raw","len","Styled","emotion_element_c39617d8_browser_esm","w","props","ref","FinalTag","as","className","classInterpolations","mergedProps","theme","react","useContext","T","fp","registered","emotion_serialize_browser_esm","O","concat","name","finalShouldForwardProp","newProps","_key","createElement","Fragment","displayName","defaultProps","defineProperty","value","withComponent","nextTag","nextOptions","create_element_if_not_defined_createElementIfNotDefined","swiper","originalParams","params","checkProps","createElements","keys","forEach","auto","element","utils","e","el","c","append","Navigation","extendParams","on","emit","navigation","nextEl","prevEl","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","Array","isArray","filter","getEl","res","isElement","querySelector","document","querySelectorAll","uniqueNavElements","toggleEl","disabled","subEl","classList","split","tagName","watchOverflow","enabled","isLocked","update","loop","isBeginning","rewind","isEnd","onPrevClick","preventDefault","slidePrev","onNextClick","slideNext","init","initButton","dir","addEventListener","add","destroy","destroyButton","removeEventListener","remove","disable","_s","targetEl","includes","isHidden","pagination","clickable","contains","toggle","enable","classes_to_selector_classesToSelector","classes","trim","replace","Pagination","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","type","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","position","onBulletClick","closest","index","g","slidesPerGroup","realIndex","newSlideIndex","getSlideIndexByData","currentSlideIndex","slides","loopedSlides","loopFix","direction","activeSlideIndex","slideTo","slideToLoop","current","previousIndex","rtl","slidesLength","virtual","total","Math","ceil","snapGrid","previousRealIndex","floor","snapIndex","previousSnapIndex","activeIndex","firstIndex","lastIndex","midIndex","f","isHorizontal","style","max","min","classesToRemove","map","suffix","s","flat","bullet","bulletIndex","setAttribute","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","transform","transitionDuration","speed","innerHTML","render","paginationHTML","numberOfBullets","freeMode","a","Autoplay","timeout","raf","autoplayTimeLeft","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","autoplay","running","paused","timeLeft","delay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","Date","getTime","onTransitionEnd","destroyed","wrapperEl","resume","calcTimeLeft","requestAnimationFrame","getSlideDelay","activeSlideEl","slideEl","currentSlideDelay","parseInt","getAttribute","run","delayForce","cancelAnimationFrame","Number","isNaN","proceed","cssMode","clearTimeout","setTimeout","start","stop","pause","internal","reset","onVisibilityChange","ssr_window_esm","visibilityState","onPointerEnter","pointerType","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","isObject","obj","constructor","extend","src","ssrDocument","body","activeElement","blur","nodeName","getElementById","createEvent","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","callback","id","getWindow","win","window","to","noExtend","nextSource","HTMLElement","node","nodeType","keysArray","indexOf","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","deleteProps","object","nextTick","now","getTranslate","axis","matrix","curTransform","transformMatrix","_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","o","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","time","targetPosition","side","startPosition","translate","startTime","duration","scrollSnapType","cssModeFrameID","isOutOfBound","animate","progress","currentPosition","easeProgress","cos","PI","scrollTo","overflow","elementChildren","selector","matches","elementPrevAll","prevEls","previousElementSibling","prev","elementNextAll","nextEls","nextElementSibling","next","elementStyle","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementOuterSize","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","processLazyPreloader","imageEl","slideClass","lazyEl","lazyPreloaderClass","unlazy","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","grid","rows","preloadColumns","activeColumn","from","_","column","slideIndexLastInView","transitionEmit","runCallbacks","step","onTouchStart","event","data","touchEventsData","evCache","touches","simulateTouch","animating","preventInteractionOnTransition","originalEvent","touchEventsTarget","which","button","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","d","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","loopFixed","rtlTranslate","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","abs","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","diff","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","setTransition","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","setTranslate","currentTranslate","disableParentSwiper","resistanceRatio","centeredSlides","resistance","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","updateProgress","onTouchEnd","currentPos","splice","isSafari","isWebView","slidesGrid","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","n","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","increment","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","onResize","breakpoints","setBreakpoint","isVirtual","updateSlides","isVirtualLoop","resizeTimeout","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollLeft","scrollTop","translatesDiff","onLoad","autoHeight","dummyEventAttached","dummyEventListener","events","method","device","capture","domMethod","passive","updateOnWindowResize","ios","android","isGridEnabled","defaults","initialSlide","resizeObserver","width","height","url","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","slideToClickedSlide","loopPreventsSliding","passiveListeners","maxBackfaceHiddenSlides","containerModifierClass","slideActiveClass","slideVisibleClass","slideNextClass","slidePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","eventsEmitter","handler","priority","self","eventsListeners","once","onceHandler","off","__emitterProxy","_len","onAny","eventsAnyListeners","offAny","eventHandler","context","_len2","_key2","unshift","eventsArray","clientWidth","clientHeight","l","slideSize","getDirectionLabel","property","getDirectionPropertyValue","slidesEl","swiperSize","wrongRTL","previousSlidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","gridEnabled","initSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","multiplier","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","activeSlide","getFilteredSlide","nextSlide","m","prevSlide","emitSlidesClasses","newActiveIndex","getVirtualRealIndex","aIndex","getActiveIndexByTranslate","skip","initialized","slideFound","clickedSlide","clickedIndex","h","byController","x","y","translateTo","translateBounds","newTranslate","isH","p","behavior","onTranslateToWrapperTransitionEnd","transition","transitionStart","transitionEnd","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","t","_immediateVirtual","_cssModeVirtualInitialSet","onSlideToWrapperTransitionEnd","indexAsNumber","newIndex","perGroup","_clientLeft","clientLeft","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToIndex","slideSelector","getSlideIndex","loopCreate","slideRealIndex","_temp","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","recalcSlides","currentSlideTranslate","newSlideTranslate","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","moving","__preventObserver__","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","changeDirection","q","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","prepareClasses","entries","prefix","resultClasses","item","removeClasses","extendedDefaults","Swiper","overrides","swipers","newParams","calcDevice","platform","ua","screenWidth","screenHeight","match","ipad","ipod","iphone","macos","iPadScreens","os","calcBrowser","needPerspectiveFix","toLowerCase","String","major","minor","num","modules","__modules__","allModulesParams","mod","moduleParamName","moduleParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","slideInView","translated","translateValue","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","getWrapper","hostEl","deleteInstance","cleanStyles","r","extendDefaults","newDefaults","installModule","use","module","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","createObserver","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","paramsList","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","updateOnVirtualData","parallax","isChildSwiperSlide","useIsomorphicLayoutEffect","deps","useEffect","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","swiper_react_Swiper","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","getParams","splitEvents","allowedParams","plainObj","slots","getChildren","Children","toArray","slot","foundSlides","processChildren","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","extendWith","renderExternal","renderExternalUpdate","mountSwiper","paginationEl","scrollbarEl","changedParams","getChangedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","watchParams","newKeys","oldKeys","newKey","oldKey","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","updateParams","currentParams","thumbs","destroyModule","newValue","appendChild","nextButtonSvg","prevButtonSvg","Provider","renderVirtual","offset","top","loopFrom","loopTo","slidesToRender","cloneElement","SwiperSlide","externalRef","lazy","virtualIndex","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","slideData","isActive","renderChildren"],"sourceRoot":""}