{"version":3,"file":"/scripts/app.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///./assets/scripts/components/accordion.js","webpack:///./node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///./node_modules/swiper/shared/utils.mjs","webpack:///./node_modules/swiper/shared/swiper-core.mjs","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack:///./node_modules/swiper/shared/classes-to-selector.mjs","webpack:///./node_modules/swiper/modules/manipulation.mjs","webpack:///./node_modules/swiper/shared/effect-init.mjs","webpack:///./node_modules/swiper/shared/effect-target.mjs","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack:///./node_modules/swiper/shared/create-shadow.mjs","webpack:///./node_modules/swiper/swiper-bundle.mjs","webpack:///./node_modules/swiper/modules/virtual.mjs","webpack:///./node_modules/swiper/modules/keyboard.mjs","webpack:///./node_modules/swiper/modules/mousewheel.mjs","webpack:///./node_modules/swiper/modules/navigation.mjs","webpack:///./node_modules/swiper/modules/pagination.mjs","webpack:///./node_modules/swiper/modules/scrollbar.mjs","webpack:///./node_modules/swiper/modules/parallax.mjs","webpack:///./node_modules/swiper/modules/zoom.mjs","webpack:///./node_modules/swiper/modules/controller.mjs","webpack:///./node_modules/swiper/modules/a11y.mjs","webpack:///./node_modules/swiper/modules/history.mjs","webpack:///./node_modules/swiper/modules/hash-navigation.mjs","webpack:///./node_modules/swiper/modules/autoplay.mjs","webpack:///./node_modules/swiper/modules/thumbs.mjs","webpack:///./node_modules/swiper/modules/free-mode.mjs","webpack:///./node_modules/swiper/modules/grid.mjs","webpack:///./node_modules/swiper/modules/effect-fade.mjs","webpack:///./node_modules/swiper/modules/effect-cube.mjs","webpack:///./node_modules/swiper/modules/effect-flip.mjs","webpack:///./node_modules/swiper/modules/effect-coverflow.mjs","webpack:///./node_modules/swiper/modules/effect-creative.mjs","webpack:///./node_modules/swiper/modules/effect-cards.mjs","webpack:///./node_modules/swiper/swiper-bundle.css?440d","webpack:///./assets/scripts/components/slider.js","webpack:///./assets/scripts/app.js","webpack:///./assets/scripts/blocks/marquee.js","webpack:///./assets/scripts/blocks/masthead.js","webpack:///./assets/scripts/blocks/wp-menu.js","webpack:///./assets/scripts/components/ada.js","webpack:///./assets/scripts/components/animation.js","webpack:///./assets/scripts/components/disclaimer.js","webpack:///./assets/scripts/components/postFilters.js","webpack:///./assets/scripts/components/scrollTracker.js","webpack:///./assets/scripts/components/utilities.js","webpack:///./node_modules/swiper/swiper-bundle.css","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack:///./node_modules/jquery-selectric/src/jquery.selectric.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","export const accordion = () => {\n\n $('.accordion--title-link').on(\"click\", function (e) {\n\n e.preventDefault();\n\n var parent = $(this).closest('.accordion-block');\n \n if ( !parent.hasClass('is-expanded') ) {\n\n $('.accordion-block').removeClass('is-expanded');\n parent.addClass('is-expanded');\n\n // var parentOffset = parent.offset();\n\n // console.log(parentOffset);\n\n // $('html, body').animate({\n // scrollTop: parentOffset.top\n // }, 250);\n\n } else {\n parent.removeClass('is-expanded');\n }\n\n });\n\n }","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot?.children || []), ...(elementToCheck.assignedElements?.() || []));\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window = getWindow();\n let isChild = parent.contains(el);\n if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n isChild = children.includes(el);\n if (!isChild) {\n isChild = elementIsChildOfSlot(el, parent);\n }\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (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 if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n const document = getDocument();\n\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","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","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","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { g 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 { k 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.find(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode);\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 { g 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","/**\n * Swiper 11.2.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2025 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: January 10, 2025\n */\n\nimport { S as Swiper } from './shared/swiper-core.mjs';\nimport Virtual from './modules/virtual.mjs';\nimport Keyboard from './modules/keyboard.mjs';\nimport Mousewheel from './modules/mousewheel.mjs';\nimport Navigation from './modules/navigation.mjs';\nimport Pagination from './modules/pagination.mjs';\nimport Scrollbar from './modules/scrollbar.mjs';\nimport Parallax from './modules/parallax.mjs';\nimport Zoom from './modules/zoom.mjs';\nimport Controller from './modules/controller.mjs';\nimport A11y from './modules/a11y.mjs';\nimport History from './modules/history.mjs';\nimport HashNavigation from './modules/hash-navigation.mjs';\nimport Autoplay from './modules/autoplay.mjs';\nimport Thumb from './modules/thumbs.mjs';\nimport freeMode from './modules/free-mode.mjs';\nimport Grid from './modules/grid.mjs';\nimport Manipulation from './modules/manipulation.mjs';\nimport EffectFade from './modules/effect-fade.mjs';\nimport EffectCube from './modules/effect-cube.mjs';\nimport EffectFlip from './modules/effect-flip.mjs';\nimport EffectCoverflow from './modules/effect-coverflow.mjs';\nimport EffectCreative from './modules/effect-creative.mjs';\nimport EffectCards from './modules/effect-cards.mjs';\n\n// Swiper Class\nconst modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\nSwiper.use(modules);\n\nexport { Swiper, Swiper as default };\n","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) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force, beforeInit) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop,\n initialSlide\n } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) {\n return;\n }\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.slides.filter(el => el.matches(`.${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.slides.filter(el => el.matches(`.${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 if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes, 1);\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 update(false, true);\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 if (swiper.destroyed || !swiper.params) return;\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 if (swiper.destroyed || !swiper.params) return;\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.autoplay.disableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\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 { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\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 moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.find(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, 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';\nimport { c as classesToSelector } from '../shared/classes-to-selector.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.cancelable) 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 if (!el.length) return;\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(classesToSelector(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'](...classesToTokens(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(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\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.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 changeDirection', () => {\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'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(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 elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\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 isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.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(`${elementsSelector}, [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 hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.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, j 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 limitToOriginalSize: false,\n maxRatio: 3,\n minRatio: 1,\n panOnMouseMove: false,\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 isPanningWithMouse = false;\n let mousePanStart = {\n x: 0,\n y: 0\n };\n const mousePanSensitivity = -3; // Negative to invert pan direction\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 getMaxRatio() {\n const params = swiper.params.zoom;\n const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {\n const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;\n return Math.min(imageMaxRatio, maxRatio);\n }\n return maxRatio;\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 - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / 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.hostEl.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 = getMaxRatio();\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 let allowTouchMoveTimeout;\n function allowTouchMove() {\n swiper.touchEventsData.preventTouchMoveFromPointerMove = false;\n }\n function preventTouchMove() {\n clearTimeout(allowTouchMoveTimeout);\n swiper.touchEventsData.preventTouchMoveFromPointerMove = true;\n allowTouchMoveTimeout = setTimeout(() => {\n if (swiper.destroyed) return;\n allowTouchMove();\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 const isMouseEvent = e.pointerType === 'mouse';\n const isMousePan = isMouseEvent && swiper.params.zoom.panOnMouseMove;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {\n return;\n }\n const zoom = swiper.zoom;\n if (!gesture.imageEl) {\n return;\n }\n if (!image.isTouched || !gesture.slideEl) {\n if (isMousePan) onMouseMove(e);\n return;\n }\n if (isMousePan) {\n onMouseMove(e);\n return;\n }\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\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 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 allowTouchMove();\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 allowTouchMove();\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n preventTouchMove();\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 evCache.length = 0;\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 onMouseMove(e) {\n // Only pan if zoomed in and mouse panning is enabled\n if (currentScale <= 1 || !gesture.imageWrapEl) return;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const currentTransform = window.getComputedStyle(gesture.imageWrapEl).transform;\n const matrix = new window.DOMMatrix(currentTransform);\n if (!isPanningWithMouse) {\n isPanningWithMouse = true;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = matrix.e;\n image.startY = matrix.f;\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n return;\n }\n const deltaX = (e.clientX - mousePanStart.x) * mousePanSensitivity;\n const deltaY = (e.clientY - mousePanStart.y) * mousePanSensitivity;\n const scaledWidth = image.width * currentScale;\n const scaledHeight = image.height * currentScale;\n const slideWidth = gesture.slideWidth;\n const slideHeight = gesture.slideHeight;\n const minX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n const maxX = -minX;\n const minY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n const maxY = -minY;\n const newX = Math.max(Math.min(image.startX + deltaX, maxX), minX);\n const newY = Math.max(Math.min(image.startY + deltaY, maxY), minY);\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n gesture.imageWrapEl.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = newX;\n image.startY = newY;\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 image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n }\n const maxRatio = getMaxRatio();\n zoom.scale = forceZoomRatio || maxRatio;\n currentScale = forceZoomRatio || 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 || gesture.imageEl.clientWidth;\n imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\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 image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\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 if (swiper.params.zoom.panOnMouseMove) {\n mousePanStart = {\n x: 0,\n y: 0\n };\n if (isPanningWithMouse) {\n isPanningWithMouse = false;\n image.startX = 0;\n image.startY = 0;\n }\n }\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, k 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 controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];\n controlElements.forEach(controlElement => {\n if (!swiper.controller.control) swiper.controller.control = [];\n if (controlElement && controlElement.swiper) {\n swiper.controller.control.push(controlElement.swiper);\n } else if (controlElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onControllerSwiper = e => {\n swiper.controller.control.push(e.detail[0]);\n swiper.update();\n controlElement.removeEventListener(eventName, onControllerSwiper);\n };\n controlElement.addEventListener(eventName, onControllerSwiper);\n }\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 { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, h as elementIndex, m as makeElementsArray } 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 containerRole: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n scrollOnFocus: true\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\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.prevEl && swiper.navigation.nextEl) {\n const prevEls = makeElementsArray(swiper.navigation.prevEl);\n const nextEls = makeElementsArray(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\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 (prevEls.includes(targetEl)) {\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 }\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 = e => {\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n preventFocusHandler = true;\n }\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n preventFocusHandler = false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const onVisibilityChange = e => {\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\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 requestAnimationFrame(() => {\n if (preventFocusHandler) return;\n if (swiper.params.loop) {\n swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);\n } else {\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n }\n preventFocusHandler = false;\n });\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 if (params.containerRole) {\n addElRole(containerEl, params.containerRole);\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 = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\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 = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\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.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${index}\"]`) : 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.find(slideEl => slideEl.getAttribute('data-hash') === hash);\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: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { l 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.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`);\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 eventName = `${swiper.params.eventsPrefix}init`;\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener(eventName, onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener(eventName, 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, k 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 emit('_freeModeStaticRelease');\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","function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.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 return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\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 { g 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, o as getRotateFix } 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 r = getRotateFix(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(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(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(89.99deg) 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(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(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 { 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 { g as getSlideTransformEl, o as getRotateFix } 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 const rotateFix = getRotateFix(swiper);\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(${rotateFix(rotateX)}deg) rotateY(${rotateFix(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 { g as getSlideTransformEl, o as getRotateFix } 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 const r = getRotateFix(swiper);\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(${r(rotateX)}deg) rotateY(${r(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 { g as getSlideTransformEl, o as getRotateFix } 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 const rotateFix = getRotateFix(swiper);\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 let val = data.rotate[index] * Math.abs(progress * multiplier);\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(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 { g 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","import api from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!../postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./swiper-bundle.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","// import Swiper bundle with all modules installed\nimport Swiper from 'swiper/bundle';\n\n// import styles bundle\nimport 'swiper/css/bundle';\n\nexport const slider = () => {\n\n\tfunction setAlignFullCssVar() {\n // Create the measurement node\n let scrollDiv = document.createElement('div');\n scrollDiv.className = 'scrollbar-measure';\n document.body.appendChild(scrollDiv);\n\n // Get the scrollbar width & half width\n let scrollBarWidth = window.innerWidth - scrollDiv.clientWidth;\n let alignFullOffset = scrollBarWidth / 2;\n\n // console.log(window.innerWidth);\n // console.log(scrollDiv.clientWidth);\n // console.warn(scrollBarWidth); // Mac: 15\n\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n\n //Get .alignfull element\n let root = document.documentElement;\n let root_style = getComputedStyle(root);\n\n //Set --alignfull-offset css var\n let cssVarAlignFullOffset =\n root_style.getPropertyValue('--alignfull-offset');\n if (alignFullOffset + 'px' !== cssVarAlignFullOffset) {\n root.style.setProperty('--alignfull-offset', alignFullOffset + 'px');\n }\n }\n\n//post sliders\n document\n .querySelectorAll('.wp-block-group.is-slider')\n .forEach((block, i) => {\n // const swiperEl = '.is-style-slider';\n // $(block).removeClass(function (index, css) {\n // return (css.match(/\\bwp-\\S+/g) || []).join(' '); // removes anything that starts with \"wp-container\"\n // });\n // $(swiperEl).attr('class', 'wp-block-gallery is-style-slider swiper');\n $(block)\n .addClass('swiper')\n .find('.wp-block-group__inner-container').eq(0)\n .addClass('swiper-wrapper')\n .children('.wp-block-group')\n .addClass('swiper-slide');\n\n $(block)\n .append('