{"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/blocks/featured-posts.js","webpack:///./assets/scripts/components/slider.js","webpack:///./assets/scripts/app.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/tables.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 children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (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].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","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.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { 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.1.9\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 31, 2024\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.autoplayDisableOnInteraction) 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);\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 onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\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 toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function 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 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 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 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 if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n 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 gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, 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 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\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.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","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.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const 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 from 'swiper/bundle';\n\n// import styles bundle\nimport 'swiper/css/bundle';\n\nexport const featuredPosts = () => {\n\n\n const el = document.querySelector('.featured-posts--grid');\n const swiper = new Swiper( el, {\n autoHeight: false,\n slidesPerView: 1,\n slidesPerGroup: 1,\n spaceBetween: 30,\n // grid: {\n // column: 4,\n // },\n // effect: 'fade',\n // fadeEffect: {\n // crossFade: true\n // },\n // direction: 'vertical',\n // loop: true,\n breakpoints: {\n 200: {\n slidesPerView: 1,\n //slidesPerGroup: 1,\n },\n 768: {\n slidesPerView: 2,\n //slidesPerGroup: 2,\n },\n 1024: {\n slidesPerView: 3,\n //slidesPerGroup: 3,\n },\n 1200: {\n slidesPerView: 4,\n //slidesPerGroup: 4,\n },\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n\n });\n\n}\n","// 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('