react-riyils 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/swiper/shared/ssr-window.esm.mjs","../node_modules/swiper/shared/utils.mjs","../node_modules/swiper/shared/swiper-core.mjs","../node_modules/swiper/shared/update-swiper.mjs","../node_modules/swiper/shared/update-on-virtual-data.mjs","../node_modules/swiper/swiper-react.mjs","../node_modules/swiper/modules/keyboard.mjs","../node_modules/swiper/modules/mousewheel.mjs","../node_modules/swiper/shared/create-element-if-not-defined.mjs","../node_modules/swiper/modules/navigation.mjs","../node_modules/swiper/shared/effect-init.mjs","../node_modules/swiper/shared/effect-target.mjs","../node_modules/swiper/shared/create-shadow.mjs","../node_modules/swiper/modules/effect-coverflow.mjs","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/play.js","../node_modules/lucide-react/dist/esm/icons/volume-2.js","../node_modules/lucide-react/dist/esm/icons/volume-x.js","../node_modules/lucide-react/dist/esm/icons/x.js","../../src/riyils-viewer.tsx","../../src/index.tsx"],"sourcesContent":["/**\n * SSR Window 5.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2025, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: June 27, 2025\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 const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n 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 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 = 0) {\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 = 'x') {\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(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[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({\n swiper,\n targetPosition,\n side\n}) {\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 const window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window = getWindow();\n let isChild = parent.contains(el);\n if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n isChild = children.includes(el);\n if (!isChild) {\n isChild = elementIsChildOfSlot(el, parent);\n }\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes = []) {\n 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}\nfunction setInnerHTML(el, html = '') {\n if (typeof trustedTypes !== 'undefined') {\n el.innerHTML = trustedTypes.createPolicy('html', {\n createHTML: s => s\n }).createHTML(html);\n } else {\n el.innerHTML = html;\n }\n}\n\nexport { getRotateFix as a, setCSSProperty as b, createElement as c, elementParents as d, elementChildren as e, elementOffset as f, getSlideTransformEl as g, now as h, elementOuterSize as i, elementIndex as j, classesToTokens as k, getTranslate as l, makeElementsArray as m, nextTick as n, elementTransitionEnd as o, isObject as p, elementStyle as q, elementNextAll as r, setInnerHTML as s, elementPrevAll as t, animateCSSModeScroll as u, showWarning as v, elementIsChildOf as w, extend as x, deleteProps as y };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { d as elementParents, q as elementStyle, e as elementChildren, b as setCSSProperty, i as elementOuterSize, r as elementNextAll, t as elementPrevAll, l as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, h as now, x as extend, j as elementIndex, y 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({\n userAgent\n} = {}) {\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)(?!\\1).*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 (!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({\n swiper,\n on,\n emit\n}) {\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(({\n contentBoxSize,\n contentRect,\n target\n }) => {\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({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\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(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\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(...args) {\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 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 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 const swiperSize = swiper.size - offsetBefore - offsetAfter;\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 - offsetBefore - offsetAfter;\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 const slide = slides[i];\n if (slide) {\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n }\n\n if (isVirtual && params.slidesPerView === 'auto') {\n if (params.virtual.slidesPerViewAutoSlideSize) {\n slideSize = params.virtual.slidesPerViewAutoSlideSize;\n }\n if (slideSize && slide) {\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n } else if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slide.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 (slide) {\n slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slide) {\n slide.swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (offsetBefore || 0) + (offsetAfter || 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 = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\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 = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\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({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\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 && dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n } else if (runCallbacks && activeIndex !== previousIndex) {\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 = true, direction) {\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 = true, direction) {\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 = 0, speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n const browser = getBrowser();\n const isSafari = browser.isSafari;\n if (isVirtual && !initial && isSafari && swiper.isElement) {\n swiper.virtual.update(false, false, slideIndex);\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 = 0, speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides,\n slidesOffsetBefore,\n slidesOffsetAfter\n } = swiper.params;\n const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\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 (bothDirections && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (bothDirections) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && bothDirections && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = bothDirections ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks = true, internal) {\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 = true, internal) {\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 const isFreeMode = params.freeMode && params.freeMode.enabled;\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\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 = isFreeMode ? snapGrid[prevSnapIndex] : 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 = true, internal) {\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 = true, internal, threshold = 0.5) {\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.getSlideIndexWhenGrid(swiper.clickedIndex);\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n const isGrid = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\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 swiper.slideToLoop(realIndex);\n } else if (slideToIndex > (isGrid ? (swiper.slides.length - slidesPerView) / 2 - (swiper.params.grid.rows - 1) : 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, initial) {\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 clearBlankSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideBlankClass}`);\n slides.forEach(el => {\n el.remove();\n });\n if (slides.length > 0) {\n swiper.recalcSlides();\n swiper.updateSlides();\n }\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (params.loopAddBlankSlides && (params.slidesPerGroup > 1 || gridEnabled)) {\n clearBlankSlides();\n }\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 const bothDirections = params.centeredSlides || !!params.slidesOffsetBefore || !!params.slidesOffsetAfter;\n swiper.loopFix({\n slideRealIndex,\n direction: bothDirections ? undefined : 'next',\n initial\n });\n}\n\nfunction loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n initial,\n byController,\n byMousewheel\n} = {}) {\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 slidesOffsetBefore,\n slidesOffsetAfter,\n initialSlide\n } = params;\n const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!bothDirections && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (bothDirections && 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 (bothDirections && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = bothDirections ? Math.max(slidesPerGroup, Math.ceil(slidesPerView / 2)) : 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 || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or 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 const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !bothDirections;\n let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (bothDirections && 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 if (isInitialOverflow) {\n slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n }\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 (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n if (appendSlidesIndexes.includes(activeSlideIndex)) {\n appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\n if (prependSlidesIndexes.includes(activeSlideIndex)) {\n prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\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 || !slidesEl || 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 = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {\n return;\n } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n const document = getDocument();\n\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base = 'window', containerEl) {\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 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(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n }\n getSlideIndexWhenGrid(index) {\n if (this.grid && this.params.grid && this.params.grid.rows > 1) {\n if (this.params.grid.fill === 'column') {\n index = Math.floor(index / this.params.grid.rows);\n } else if (this.params.grid.fill === 'row') {\n index = index % Math.ceil(this.slides.length / this.params.grid.rows);\n }\n }\n return index;\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\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 = true) {\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(undefined, true);\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 = true, cleanStyles = true) {\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 { s as setInnerHTML } from './utils.mjs';\n\n/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName = '') {\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className = '') {\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && !passedParams.thumbs.swiper.destroyed && currentParams.thumbs && (!currentParams.thumbs.swiper || currentParams.thumbs.swiper.destroyed)) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n setInnerHTML(nextEl, swiper.navigation.arrowSvg);\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n setInnerHTML(prevEl, swiper.navigation.arrowSvg);\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n swiper.emit('_virtualUpdated');\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n","/**\n * Swiper React 12.0.3\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2025 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: October 21, 2025\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(({\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n} = {}, externalElRef) => {\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(({\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n} = {}, externalRef) => {\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { d as elementParents, f as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\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.isContentEditable || 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, h as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, s as setInnerHTML } from '../shared/utils.mjs';\n\nconst arrowSvg = `<svg class=\"swiper-navigation-icon\" width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0.38296 20.0762C0.111788 19.805 0.111788 19.3654 0.38296 19.0942L9.19758 10.2796L0.38296 1.46497C0.111788 1.19379 0.111788 0.754138 0.38296 0.482966C0.654131 0.211794 1.09379 0.211794 1.36496 0.482966L10.4341 9.55214C10.8359 9.9539 10.8359 10.6053 10.4341 11.007L1.36496 20.0762C1.09379 20.3474 0.654131 20.3474 0.38296 20.0762Z\" fill=\"currentColor\"/></svg>`;\nfunction Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n addIcons: true,\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 arrowSvg\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n if (params.addIcons && el.matches('.swiper-button-next,.swiper-button-prev') && !el.querySelector('svg')) {\n const tempEl = document.createElement('div');\n setInnerHTML(tempEl, arrowSvg);\n el.appendChild(tempEl.querySelector('svg'));\n tempEl.remove();\n }\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function 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 _virtualUpdated', () => {\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 { 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","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, a as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\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","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\",\n key: \"10ikf1\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode);\n\nexport { __iconNode, Play as default };\n//# sourceMappingURL=play.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ],\n [\"path\", { d: \"M16 9a5 5 0 0 1 0 6\", key: \"1q6k2b\" }],\n [\"path\", { d: \"M19.364 18.364a9 9 0 0 0 0-12.728\", key: \"ijwkga\" }]\n];\nconst Volume2 = createLucideIcon(\"volume-2\", __iconNode);\n\nexport { __iconNode, Volume2 as default };\n//# sourceMappingURL=volume-2.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ],\n [\"line\", { x1: \"22\", x2: \"16\", y1: \"9\", y2: \"15\", key: \"1ewh16\" }],\n [\"line\", { x1: \"16\", x2: \"22\", y1: \"9\", y2: \"15\", key: \"5ykzw1\" }]\n];\nconst VolumeX = createLucideIcon(\"volume-x\", __iconNode);\n\nexport { __iconNode, VolumeX as default };\n//# sourceMappingURL=volume-x.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { Keyboard, Mousewheel } from 'swiper/modules';\r\nimport type { Swiper as SwiperType } from 'swiper';\r\nimport { X, Volume2, VolumeX, ChevronDown } from 'lucide-react';\r\n\r\nimport 'swiper/css';\r\n\r\nexport interface Video {\r\n id: string;\r\n videoUrl: string;\r\n thumbnailUrl?: string;\r\n duration?: number;\r\n}\r\n\r\nexport interface RiyilsTranslations {\r\n swipe: string;\r\n close: string;\r\n mute: string;\r\n unmute: string;\r\n speedIndicator: string;\r\n videoViewer: string;\r\n videoInteractionArea: string;\r\n}\r\n\r\nconst defaultTranslations: RiyilsTranslations = {\r\n swipe: 'Swipe',\r\n close: 'Close',\r\n mute: 'Mute',\r\n unmute: 'Unmute',\r\n speedIndicator: '2x',\r\n videoViewer: 'Video viewer',\r\n videoInteractionArea: 'Video interaction area',\r\n};\r\n\r\nexport interface RiyilsViewerProps {\r\n readonly videos: Video[];\r\n readonly initialIndex?: number;\r\n readonly onClose?: () => void;\r\n readonly onVideoChange?: (index: number) => void;\r\n readonly translations?: RiyilsTranslations;\r\n readonly progressBarColor?: string;\r\n}\r\n\r\nexport function RiyilsViewer({\r\n videos,\r\n initialIndex = 0,\r\n onClose,\r\n onVideoChange,\r\n translations = defaultTranslations,\r\n progressBarColor = '#FF0000',\r\n}: Readonly<RiyilsViewerProps>) {\r\n const [currentIndex, setCurrentIndex] = useState(initialIndex);\r\n const [isPaused, setIsPaused] = useState(false);\r\n const [isMuted, setIsMuted] = useState(true);\r\n const [videoProgress, setVideoProgress] = useState(0);\r\n const [isLoading, setIsLoading] = useState<Record<number, boolean>>({});\r\n const [isSpeedUp, setIsSpeedUp] = useState(false);\r\n const [showSwipeTip, setShowSwipeTip] = useState(true);\r\n const swiperRef = useRef<SwiperType | null>(null);\r\n const videoRefs = useRef<(HTMLVideoElement | null)[]>([]);\r\n const lastTapRef = useRef(0);\r\n const holdTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n useEffect(() => {\r\n const currentVideoElement = videoRefs.current[currentIndex];\r\n if (!currentVideoElement) return;\r\n\r\n const updateProgress = () => {\r\n const progress = (currentVideoElement.currentTime / currentVideoElement.duration) * 100;\r\n setVideoProgress(progress || 0);\r\n };\r\n\r\n currentVideoElement.addEventListener('timeupdate', updateProgress, { passive: true });\r\n return () => {\r\n currentVideoElement.removeEventListener('timeupdate', updateProgress);\r\n };\r\n }, [currentIndex]);\r\n\r\n useEffect(() => {\r\n onVideoChange?.(currentIndex);\r\n }, [currentIndex, onVideoChange]);\r\n\r\n useEffect(() => {\r\n setShowSwipeTip(true);\r\n const timer = setTimeout(() => {\r\n setShowSwipeTip(false);\r\n }, 3000);\r\n return () => clearTimeout(timer);\r\n }, [currentIndex]);\r\n\r\n useEffect(() => {\r\n videoRefs.current.forEach((video, index) => {\r\n if (video) {\r\n if (index === currentIndex && !isPaused) {\r\n video.playbackRate = isSpeedUp ? 2 : 1;\r\n video.play().catch(() => { });\r\n } else {\r\n video.pause();\r\n }\r\n }\r\n });\r\n }, [currentIndex, isPaused, isSpeedUp]);\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n switch (e.key) {\r\n case 'Escape':\r\n e.preventDefault();\r\n onClose?.();\r\n break;\r\n case ' ':\r\n e.preventDefault();\r\n setIsPaused((prev) => !prev);\r\n break;\r\n case 'm':\r\n case 'M':\r\n e.preventDefault();\r\n setIsMuted((prev) => !prev);\r\n break;\r\n }\r\n };\r\n\r\n globalThis.addEventListener('keydown', handleKeyDown);\r\n return () => globalThis.removeEventListener('keydown', handleKeyDown);\r\n }, [onClose]);\r\n\r\n const handleSlideChange = (swiper: SwiperType) => {\r\n setCurrentIndex(swiper.activeIndex);\r\n setVideoProgress(0);\r\n };\r\n\r\n const handleVideoClick = () => {\r\n const now = Date.now();\r\n const timeSinceLastTap = now - lastTapRef.current;\r\n\r\n if (timeSinceLastTap < 300 && timeSinceLastTap > 0) {\r\n setIsPaused((prev) => !prev);\r\n lastTapRef.current = 0;\r\n } else {\r\n lastTapRef.current = now;\r\n }\r\n };\r\n\r\n const handleTouchStart = (e: React.TouchEvent<HTMLElement>, index: number) => {\r\n const touch = e.touches[0];\r\n const target = e.currentTarget;\r\n const rect = target.getBoundingClientRect();\r\n const x = touch.clientX - rect.left;\r\n const width = rect.width;\r\n\r\n if (x > width * 0.6 && index === currentIndex) {\r\n holdTimeoutRef.current = setTimeout(() => {\r\n setIsSpeedUp(true);\r\n }, 100);\r\n }\r\n };\r\n\r\n const clearSpeedUp = () => {\r\n if (holdTimeoutRef.current) {\r\n clearTimeout(holdTimeoutRef.current);\r\n holdTimeoutRef.current = null;\r\n }\r\n setIsSpeedUp(false);\r\n };\r\n\r\n const handleTouchEnd = clearSpeedUp;\r\n\r\n const handleMouseDown = (e: React.MouseEvent<HTMLElement>, index: number) => {\r\n const target = e.currentTarget;\r\n const rect = target.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const width = rect.width;\r\n\r\n if (x > width * 0.6 && index === currentIndex) {\r\n holdTimeoutRef.current = setTimeout(() => {\r\n setIsSpeedUp(true);\r\n }, 100);\r\n }\r\n };\r\n\r\n const handleMouseUp = clearSpeedUp;\r\n\r\n const goToNextVideo = () => {\r\n if (currentIndex < videos.length - 1) {\r\n swiperRef.current?.slideNext();\r\n } else {\r\n onClose?.();\r\n }\r\n };\r\n\r\n return (\r\n <dialog\r\n open\r\n className=\"react-riyils-viewer\"\r\n onContextMenu={(e) => e.preventDefault()}\r\n aria-label={translations.videoViewer}\r\n style={{\r\n touchAction: 'pan-y',\r\n WebkitTapHighlightColor: 'transparent',\r\n userSelect: 'none',\r\n WebkitUserSelect: 'none',\r\n overscrollBehavior: 'none',\r\n }}\r\n >\r\n <Swiper\r\n modules={[Keyboard, Mousewheel]}\r\n direction=\"vertical\"\r\n slidesPerView={1}\r\n speed={500}\r\n threshold={5}\r\n touchRatio={1}\r\n touchAngle={45}\r\n followFinger={true}\r\n shortSwipes={true}\r\n longSwipes={true}\r\n longSwipesRatio={0.5}\r\n longSwipesMs={300}\r\n preventInteractionOnTransition={false}\r\n keyboard={{ enabled: true }}\r\n mousewheel={{ forceToAxis: true, sensitivity: 1 }}\r\n initialSlide={initialIndex}\r\n onSwiper={(swiper) => {\r\n swiperRef.current = swiper;\r\n }}\r\n onSlideChange={handleSlideChange}\r\n onReachEnd={() => {\r\n setTimeout(() => {\r\n onClose?.();\r\n }, 300);\r\n }}\r\n style={{ width: '100%', height: '100%' }}\r\n >\r\n {videos.map((video, index) => {\r\n const isActive = index === currentIndex;\r\n\r\n return (\r\n <SwiperSlide key={video.id}>\r\n <section\r\n className=\"react-riyils-viewer__section\"\r\n aria-label={`Video ${index + 1} of ${videos.length}`}\r\n >\r\n <button\r\n type=\"button\"\r\n className=\"react-riyils-viewer__interaction-area\"\r\n onTouchStart={(e) => handleTouchStart(e, index)}\r\n onTouchEnd={handleTouchEnd}\r\n onMouseDown={(e) => handleMouseDown(e, index)}\r\n onMouseUp={handleMouseUp}\r\n onMouseLeave={handleMouseUp}\r\n onContextMenu={(e) => e.preventDefault()}\r\n aria-label={translations.videoInteractionArea}\r\n />\r\n <video\r\n ref={(el) => {\r\n videoRefs.current[index] = el;\r\n }}\r\n src={video.videoUrl}\r\n aria-label={`Video ${index + 1}`}\r\n onClick={handleVideoClick}\r\n onContextMenu={(e) => e.preventDefault()}\r\n className=\"react-riyils-viewer__video\"\r\n playsInline\r\n muted={isMuted}\r\n preload={Math.abs(index - currentIndex) <= 1 ? 'auto' : 'metadata'}\r\n onLoadStart={() => {\r\n setIsLoading(prev => ({ ...prev, [index]: true }));\r\n }}\r\n onLoadedData={() => {\r\n setIsLoading(prev => ({ ...prev, [index]: false }));\r\n }}\r\n onWaiting={() => {\r\n setIsLoading(prev => ({ ...prev, [index]: true }));\r\n }}\r\n onCanPlay={() => {\r\n setIsLoading(prev => ({ ...prev, [index]: false }));\r\n }}\r\n onEnded={(e) => {\r\n if (isActive) {\r\n const target = e.target as HTMLVideoElement;\r\n if (target.currentTime >= target.duration - 0.1) {\r\n goToNextVideo();\r\n }\r\n }\r\n }}\r\n onTimeUpdate={(e) => {\r\n if (isActive) {\r\n const target = e.target as HTMLVideoElement;\r\n setVideoProgress((target.currentTime / target.duration) * 100);\r\n }\r\n }}\r\n >\r\n <track kind=\"captions\" />\r\n </video>\r\n\r\n {isLoading[index] && isActive && (\r\n <div className=\"react-riyils-viewer__loading\">\r\n <div className=\"react-riyils-viewer__loading-spinner\" />\r\n </div>\r\n )}\r\n\r\n {isPaused && isActive && (\r\n <div className=\"react-riyils-viewer__pause-indicator\">\r\n <div className=\"react-riyils-viewer__pause-icon\">\r\n <div className=\"react-riyils-viewer__pause-bars\"\r\n style={{ borderLeftColor: 'rgba(255, 255, 255, 0.9)', borderRightColor: 'rgba(255, 255, 255, 0.9)' }} />\r\n </div>\r\n </div>\r\n )}\r\n\r\n {isSpeedUp && isActive && (\r\n <div className=\"react-riyils-viewer__speed-indicator\">\r\n <div className=\"react-riyils-viewer__speed-badge\">\r\n <span className=\"react-riyils-viewer__speed-text\">{translations.speedIndicator}</span>\r\n </div>\r\n </div>\r\n )}\r\n </section>\r\n </SwiperSlide>\r\n );\r\n })}\r\n </Swiper>\r\n\r\n <div className=\"react-riyils-viewer__overlay\">\r\n <div className=\"react-riyils-viewer__header\">\r\n <div className=\"react-riyils-viewer__header-content\">\r\n <div className=\"react-riyils-viewer__progress-wrapper\">\r\n <div className=\"react-riyils-viewer__progress-track\" style={{ backgroundColor: `${progressBarColor}30` }}>\r\n <div\r\n className=\"react-riyils-viewer__progress-bar\"\r\n style={{ width: `${videoProgress}%`, backgroundColor: progressBarColor }}\r\n />\r\n </div>\r\n </div>\r\n\r\n <button\r\n onClick={onClose}\r\n className=\"react-riyils-viewer__close-button\"\r\n aria-label={translations.close}\r\n >\r\n <X className=\"react-riyils-viewer__close-icon\" />\r\n </button>\r\n </div>\r\n </div>\r\n\r\n {currentIndex === 0 && showSwipeTip && (\r\n <div className=\"react-riyils-viewer__swipe-tip\">\r\n <div className=\"react-riyils-viewer__swipe-tip-content\">\r\n <p className=\"react-riyils-viewer__swipe-tip-text\">\r\n {translations.swipe}\r\n </p>\r\n\r\n <div className=\"react-riyils-viewer__swipe-tip-icon-wrapper\">\r\n <ChevronDown\r\n className=\"react-riyils-viewer__swipe-tip-icon react-riyils-viewer__swipe-tip-icon--1\"\r\n />\r\n <ChevronDown\r\n className=\"react-riyils-viewer__swipe-tip-icon react-riyils-viewer__swipe-tip-icon--2\"\r\n />\r\n <ChevronDown\r\n className=\"react-riyils-viewer__swipe-tip-icon react-riyils-viewer__swipe-tip-icon--3\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {showSwipeTip && currentIndex > 0 && (\r\n <div className=\"react-riyils-viewer__swipe-tip\">\r\n <div className=\"react-riyils-viewer__swipe-tip-content\">\r\n <p className=\"react-riyils-viewer__swipe-tip-text\">\r\n {translations.swipe}\r\n </p>\r\n\r\n <div className=\"react-riyils-viewer__swipe-tip-icon-wrapper\">\r\n <ChevronDown\r\n className=\"react-riyils-viewer__swipe-tip-icon react-riyils-viewer__swipe-tip-icon--1\"\r\n />\r\n <ChevronDown\r\n className=\"react-riyils-viewer__swipe-tip-icon react-riyils-viewer__swipe-tip-icon--2\"\r\n />\r\n <ChevronDown\r\n className=\"react-riyils-viewer__swipe-tip-icon react-riyils-viewer__swipe-tip-icon--3\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"react-riyils-viewer__mute-button-wrapper\">\r\n <button\r\n onClick={() => setIsMuted(!isMuted)}\r\n className=\"react-riyils-viewer__mute-button\"\r\n aria-label={isMuted ? translations.unmute : translations.mute}\r\n >\r\n {isMuted ? (\r\n <VolumeX className=\"react-riyils-viewer__mute-icon\" />\r\n ) : (\r\n <Volume2 className=\"react-riyils-viewer__mute-icon\" />\r\n )}\r\n </button>\r\n </div>\r\n </div>\r\n </dialog>\r\n );\r\n}","import React, { useRef, useEffect, useState } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { Navigation, Keyboard, EffectCoverflow, Mousewheel } from 'swiper/modules';\r\nimport type { Swiper as SwiperType } from 'swiper';\r\nimport { Play } from 'lucide-react';\r\nimport type { Video } from './riyils-viewer';\r\n\r\nimport './video-swiper.css';\r\nimport 'swiper/css';\r\nimport 'swiper/css/navigation';\r\nimport 'swiper/css/effect-coverflow';\r\n\r\nexport { RiyilsViewer, type Video, type RiyilsTranslations, type RiyilsViewerProps } from './riyils-viewer';\r\n\r\nexport interface ReactRiyilsTranslations {\r\n watchFullVideo: string;\r\n videoProgress: string;\r\n}\r\n\r\nexport const defaultReactRiyilsTranslations: ReactRiyilsTranslations = {\r\n watchFullVideo: 'Watch Full Video',\r\n videoProgress: 'Video progress',\r\n};\r\n\r\nexport const VIDEO_DURATION_LIMIT = 10;\r\nexport const PRELOAD_DISTANCE = 1;\r\nexport const CONTAINER_HEIGHT_MOBILE = 380;\r\nexport const CONTAINER_HEIGHT_DESKTOP = 500;\r\nexport const PREVIEW_DURATION = 2;\r\n\r\nexport const getPreloadStrategy = (index: number, activeIndex: number, preloadDist: number): string => {\r\n if (index <= 3) return 'auto';\r\n const distance = Math.abs(index - activeIndex);\r\n if (distance <= preloadDist) return 'auto';\r\n if (distance <= 2) return 'metadata';\r\n return 'none';\r\n};\r\n\r\nexport const handleVideoPlayWithFallback = (\r\n video: HTMLVideoElement,\r\n hasInteracted: boolean,\r\n setHasInteracted: (value: boolean) => void\r\n) => {\r\n video.play().catch((error) => {\r\n console.warn('Video play failed:', error);\r\n if (!hasInteracted) {\r\n const playOnInteraction = () => {\r\n video.play().catch(() => { });\r\n setHasInteracted(true);\r\n document.removeEventListener('touchstart', playOnInteraction);\r\n document.removeEventListener('click', playOnInteraction);\r\n };\r\n document.addEventListener('touchstart', playOnInteraction, { once: true });\r\n document.addEventListener('click', playOnInteraction, { once: true });\r\n }\r\n });\r\n};\r\n\r\nexport const safePlayVideo = (video: HTMLVideoElement) => {\r\n video.play().catch((error) => console.warn('Video preload failed:', error));\r\n};\r\n\r\nexport interface ReactRiyilsProps {\r\n readonly videos: Video[];\r\n readonly currentIndex: number;\r\n readonly onVideoClick: (index: number) => void;\r\n readonly onVideoChange: (index: number) => void;\r\n readonly translations?: ReactRiyilsTranslations;\r\n readonly containerHeightMobile?: number;\r\n readonly containerHeightDesktop?: number;\r\n readonly progressBarColor?: string;\r\n readonly videoDurationLimit?: number;\r\n readonly preloadDistance?: number;\r\n readonly previewDuration?: number;\r\n readonly autoPlay?: boolean;\r\n}\r\n\r\nexport function ReactRiyils({\r\n videos,\r\n currentIndex,\r\n onVideoClick,\r\n onVideoChange,\r\n translations = defaultReactRiyilsTranslations,\r\n containerHeightMobile = CONTAINER_HEIGHT_MOBILE,\r\n containerHeightDesktop = CONTAINER_HEIGHT_DESKTOP,\r\n progressBarColor = '#3B82F6',\r\n videoDurationLimit = VIDEO_DURATION_LIMIT,\r\n preloadDistance = PRELOAD_DISTANCE,\r\n previewDuration = PREVIEW_DURATION,\r\n autoPlay = true,\r\n}: Readonly<ReactRiyilsProps>) {\r\n const swiperRef = useRef<SwiperType | null>(null);\r\n const videoRefs = useRef<(HTMLVideoElement | null)[]>([]);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [activeIndex, setActiveIndex] = useState(currentIndex);\r\n const [isLoading, setIsLoading] = useState<Record<number, boolean>>({});\r\n const [hasInteracted, setHasInteracted] = useState(false);\r\n const wheelTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const isWheelScrollingRef = useRef(false);\r\n\r\n const dynamicStretch = Math.round(containerHeightDesktop / 9);\r\n\r\n const setVideoLoading = (index: number, loading: boolean) => {\r\n setIsLoading(prev => ({ ...prev, [index]: loading }));\r\n };\r\n\r\n const handleVideoLoadedData = (e: React.SyntheticEvent<HTMLVideoElement>, index: number) => {\r\n setVideoLoading(index, false);\r\n const videoEl = e.target as HTMLVideoElement;\r\n const distance = Math.abs(index - activeIndex);\r\n if (videoEl.readyState >= 2) {\r\n if (index === activeIndex) {\r\n videoEl.style.opacity = '1';\r\n videoEl.loop = true;\r\n videoEl.currentTime = 0;\r\n if (autoPlay) {\r\n handleVideoPlayWithFallback(videoEl, hasInteracted, setHasInteracted);\r\n }\r\n } else if (distance <= preloadDistance) {\r\n videoEl.style.opacity = '0.95';\r\n videoEl.loop = false;\r\n videoEl.currentTime = 0;\r\n if (autoPlay) {\r\n safePlayVideo(videoEl);\r\n }\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (swiperRef.current && currentIndex !== activeIndex) {\r\n swiperRef.current.slideTo(currentIndex, 400);\r\n }\r\n }, [currentIndex, activeIndex]);\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n if (swiperRef.current) {\r\n swiperRef.current.update();\r\n swiperRef.current.slideTo(activeIndex, 0);\r\n }\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n\r\n const timer = setTimeout(() => {\r\n if (swiperRef.current) {\r\n swiperRef.current.update();\r\n swiperRef.current.slideTo(currentIndex, 0);\r\n }\r\n }, 100);\r\n\r\n if (containerRef.current) {\r\n const style = containerRef.current.style as CSSStyleDeclaration & {\r\n touchAction: string;\r\n webkitTapHighlightColor: string;\r\n webkitUserSelect: string;\r\n };\r\n style.touchAction = 'pan-y pan-x';\r\n style.webkitTapHighlightColor = 'transparent';\r\n style.userSelect = 'none';\r\n style.webkitUserSelect = 'none';\r\n\r\n const handleWheel = (e: WheelEvent) => {\r\n if (isWheelScrollingRef.current) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return;\r\n }\r\n\r\n if (Math.abs(e.deltaX) < 30) return;\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n isWheelScrollingRef.current = true;\r\n\r\n if (e.deltaX > 0) {\r\n swiperRef.current?.slideNext();\r\n } else if (e.deltaX < 0) {\r\n swiperRef.current?.slidePrev();\r\n }\r\n\r\n if (wheelTimeoutRef.current) {\r\n clearTimeout(wheelTimeoutRef.current);\r\n }\r\n\r\n wheelTimeoutRef.current = setTimeout(() => {\r\n isWheelScrollingRef.current = false;\r\n }, 1000);\r\n };\r\n\r\n containerRef.current.addEventListener('wheel', handleWheel, { passive: false });\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n clearTimeout(timer);\r\n if (wheelTimeoutRef.current) clearTimeout(wheelTimeoutRef.current);\r\n containerRef.current?.removeEventListener('wheel', handleWheel);\r\n };\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n clearTimeout(timer);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const videos = videoRefs.current;\r\n return () => {\r\n videos.forEach(video => {\r\n if (video) {\r\n video.pause();\r\n video.removeAttribute('src');\r\n video.load();\r\n }\r\n });\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n videoRefs.current.forEach((video, index) => {\r\n if (!video) return;\r\n const distance = Math.abs(index - activeIndex);\r\n\r\n if (index === activeIndex) {\r\n video.style.opacity = '1';\r\n video.loop = true;\r\n if (video.readyState >= 2) {\r\n video.currentTime = 0;\r\n if (autoPlay) {\r\n handleVideoPlayWithFallback(video, hasInteracted, setHasInteracted);\r\n }\r\n }\r\n } else if (distance <= preloadDistance) {\r\n video.style.opacity = '0.95';\r\n video.loop = false;\r\n if (video.readyState >= 2) {\r\n video.currentTime = 0;\r\n if (autoPlay) {\r\n safePlayVideo(video);\r\n }\r\n }\r\n }\r\n });\r\n }, 100);\r\n\r\n return () => clearTimeout(timer);\r\n }, [activeIndex, hasInteracted]);\r\n\r\n const handleSlideChange = (swiper: SwiperType) => {\r\n const activeIdx = swiper.activeIndex;\r\n setActiveIndex(activeIdx);\r\n onVideoChange(activeIdx);\r\n\r\n videoRefs.current.forEach((video, index) => {\r\n if (!video) return;\r\n const distance = Math.abs(index - activeIdx);\r\n\r\n if (index === activeIdx) {\r\n video.style.opacity = '1';\r\n video.loop = true;\r\n if (video.readyState >= 2) {\r\n video.currentTime = 0;\r\n video.play().catch((error) => console.warn('Video play failed:', error));\r\n }\r\n } else if (distance <= PRELOAD_DISTANCE) {\r\n video.style.opacity = '0.95';\r\n video.loop = false;\r\n if (video.readyState >= 2) {\r\n video.currentTime = 0;\r\n video.play().catch((error) => console.warn('Video preload failed:', error));\r\n }\r\n } else {\r\n video.pause();\r\n video.currentTime = 0;\r\n video.loop = false;\r\n }\r\n });\r\n };\r\n\r\n const handleTimeUpdate = (e: React.SyntheticEvent<HTMLVideoElement>, index: number) => {\r\n const target = e.currentTarget;\r\n const isActive = swiperRef.current?.activeIndex === index;\r\n const distance = Math.abs(index - activeIndex);\r\n\r\n if (isActive) {\r\n if (target.currentTime >= videoDurationLimit) {\r\n target.currentTime = 0;\r\n target.pause();\r\n swiperRef.current?.slideNext();\r\n }\r\n } else if (distance <= preloadDistance && target.currentTime >= previewDuration) {\r\n target.currentTime = 0;\r\n target.play().catch((error) => console.warn('Preview video replay failed:', error));\r\n }\r\n };\r\n\r\n return (\r\n <section\r\n ref={containerRef}\r\n className=\"react-riyils__container\"\r\n data-height-mobile\r\n data-height-desktop\r\n aria-label=\"Video carousel\"\r\n style={{\r\n '--container-height-mobile': `${containerHeightMobile}px`,\r\n '--container-height-desktop': `${containerHeightDesktop}px`,\r\n } as React.CSSProperties}\r\n >\r\n <Swiper\r\n modules={[Navigation, Keyboard, EffectCoverflow, Mousewheel]}\r\n onSwiper={(swiper) => {\r\n swiperRef.current = swiper;\r\n }}\r\n onSlideChange={handleSlideChange}\r\n className=\"react-riyils\"\r\n slidesPerView=\"auto\"\r\n slidesPerGroup={1}\r\n centeredSlides={true}\r\n centerInsufficientSlides={true}\r\n spaceBetween={0}\r\n loop={false}\r\n initialSlide={currentIndex}\r\n speed={800}\r\n threshold={10}\r\n touchRatio={1}\r\n touchAngle={45}\r\n followFinger={true}\r\n shortSwipes={true}\r\n longSwipes={true}\r\n longSwipesRatio={0.3}\r\n longSwipesMs={300}\r\n preventInteractionOnTransition={true}\r\n touchStartPreventDefault={false}\r\n cssMode={false}\r\n keyboard={{ enabled: true }}\r\n navigation={false}\r\n mousewheel={false}\r\n effect=\"coverflow\"\r\n resistance={true}\r\n resistanceRatio={0}\r\n coverflowEffect={{\r\n rotate: 0,\r\n stretch: dynamicStretch,\r\n depth: 100,\r\n modifier: 1,\r\n slideShadows: false,\r\n }}\r\n breakpoints={{\r\n 640: {\r\n spaceBetween: 0,\r\n },\r\n 768: {\r\n spaceBetween: 0,\r\n },\r\n }}\r\n style={{\r\n height: '100%',\r\n padding: '0',\r\n }}\r\n >\r\n {videos.map((video, index) => {\r\n return (\r\n <SwiperSlide\r\n key={video.id}\r\n >\r\n {({ isActive: slideActive }) => {\r\n return (\r\n <button\r\n type=\"button\"\r\n className={`react-riyils__slide-button ${slideActive ? '' : 'react-riyils__slide-button--inactive'\r\n }`}\r\n onClick={() => {\r\n if (slideActive) {\r\n onVideoClick(index);\r\n } else {\r\n swiperRef.current?.slideTo(index);\r\n }\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n if (slideActive) {\r\n onVideoClick(index);\r\n } else {\r\n swiperRef.current?.slideTo(index);\r\n }\r\n }\r\n }}\r\n onContextMenu={(e) => e.preventDefault()}\r\n aria-label={`Video ${index + 1}`}\r\n >\r\n <div className={`react-riyils__video-container ${slideActive\r\n ? 'react-riyils__video-container--active'\r\n : 'react-riyils__video-container--inactive'\r\n }`}>\r\n <video\r\n ref={(el) => {\r\n videoRefs.current[index] = el;\r\n }}\r\n src={video.videoUrl}\r\n className=\"react-riyils__video\"\r\n muted\r\n playsInline\r\n onContextMenu={(e) => e.preventDefault()}\r\n preload={getPreloadStrategy(index, activeIndex, preloadDistance)}\r\n aria-label={`Video ${index + 1}`}\r\n onLoadStart={() => setVideoLoading(index, true)}\r\n onLoadedData={(e) => handleVideoLoadedData(e, index)}\r\n onWaiting={() => setVideoLoading(index, true)}\r\n onCanPlay={() => setVideoLoading(index, false)}\r\n onTimeUpdate={(e) => handleTimeUpdate(e, index)}\r\n />\r\n\r\n {isLoading[index] && slideActive && (\r\n <div className=\"react-riyils__loading\">\r\n <div className=\"react-riyils__spinner\" />\r\n </div>\r\n )}\r\n\r\n {!slideActive && (\r\n <>\r\n <div className=\"react-riyils__overlay-gradient\" />\r\n <div className=\"react-riyils__overlay-blur\" />\r\n </>\r\n )}\r\n\r\n {slideActive && (\r\n <div className=\"react-riyils__cta-container\">\r\n <button\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onVideoClick(index);\r\n }}\r\n aria-label={translations.watchFullVideo}\r\n className=\"react-riyils__cta-button\"\r\n >\r\n <div className=\"react-riyils__cta-badge\">\r\n <Play className=\"react-riyils__cta-icon\" fill=\"currentColor\" strokeWidth={0} />\r\n <span className=\"react-riyils__cta-text\">{translations.watchFullVideo}</span>\r\n </div>\r\n </button>\r\n </div>\r\n )}\r\n </div>\r\n </button>\r\n );\r\n }}\r\n </SwiperSlide>\r\n );\r\n })}\r\n </Swiper>\r\n </section>\r\n );\r\n}\r\n\r\n// Custom Hooks\r\nexport function useVideoPreload(\r\n videoRefs: React.MutableRefObject<(HTMLVideoElement | null)[]>,\r\n activeIndex: number,\r\n preloadDistance: number = PRELOAD_DISTANCE\r\n) {\r\n useEffect(() => {\r\n videoRefs.current.forEach((video, index) => {\r\n if (!video) return;\r\n const distance = Math.abs(index - activeIndex);\r\n\r\n if (distance <= preloadDistance) {\r\n video.preload = 'auto';\r\n } else if (distance <= 2) {\r\n video.preload = 'metadata';\r\n } else {\r\n video.preload = 'none';\r\n }\r\n });\r\n }, [activeIndex, preloadDistance, videoRefs]);\r\n}\r\n\r\nexport function useVideoControls(\r\n videoElement: HTMLVideoElement | null,\r\n isActive: boolean,\r\n autoPlay: boolean = true\r\n) {\r\n const [isPlaying, setIsPlaying] = useState(false);\r\n const [progress, setProgress] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!videoElement) return;\r\n\r\n const handlePlay = () => setIsPlaying(true);\r\n const handlePause = () => setIsPlaying(false);\r\n const handleTimeUpdate = () => {\r\n const prog = (videoElement.currentTime / videoElement.duration) * 100;\r\n setProgress(prog || 0);\r\n };\r\n\r\n videoElement.addEventListener('play', handlePlay);\r\n videoElement.addEventListener('pause', handlePause);\r\n videoElement.addEventListener('timeupdate', handleTimeUpdate);\r\n\r\n if (isActive && autoPlay && videoElement.paused) {\r\n videoElement.play().catch(() => { });\r\n } else if (!isActive && !videoElement.paused) {\r\n videoElement.pause();\r\n }\r\n\r\n return () => {\r\n videoElement.removeEventListener('play', handlePlay);\r\n videoElement.removeEventListener('pause', handlePause);\r\n videoElement.removeEventListener('timeupdate', handleTimeUpdate);\r\n };\r\n }, [videoElement, isActive, autoPlay]);\r\n\r\n const play = () => videoElement?.play().catch(() => { });\r\n const pause = () => videoElement?.pause();\r\n const togglePlay = () => (isPlaying ? pause() : play());\r\n const seek = (time: number) => {\r\n if (videoElement) videoElement.currentTime = time;\r\n };\r\n\r\n return { isPlaying, progress, play, pause, togglePlay, seek };\r\n}\r\n\r\nexport function useSwiperControl(initialIndex: number = 0) {\r\n const swiperRef = useRef<SwiperType | null>(null);\r\n const [currentIndex, setCurrentIndex] = useState(initialIndex);\r\n\r\n const goToSlide = (index: number, speed?: number) => {\r\n swiperRef.current?.slideTo(index, speed);\r\n };\r\n\r\n const nextSlide = () => {\r\n swiperRef.current?.slideNext();\r\n };\r\n\r\n const prevSlide = () => {\r\n swiperRef.current?.slidePrev();\r\n };\r\n\r\n const updateSlider = () => {\r\n swiperRef.current?.update();\r\n };\r\n\r\n return {\r\n swiperRef,\r\n currentIndex,\r\n setCurrentIndex,\r\n goToSlide,\r\n nextSlide,\r\n prevSlide,\r\n updateSlider,\r\n };\r\n}\r\n"],"names":["isObject","extend","getComputedStyle","Swiper","useEffect","useLayoutEffect","createContext","forwardRef","useState","useRef","createElement","__iconNode"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/swiper/shared/ssr-window.esm.mjs","../node_modules/swiper/shared/utils.mjs","../node_modules/swiper/shared/swiper-core.mjs","../node_modules/swiper/shared/update-swiper.mjs","../node_modules/swiper/shared/update-on-virtual-data.mjs","../node_modules/swiper/swiper-react.mjs","../node_modules/swiper/modules/virtual.mjs","../node_modules/swiper/modules/keyboard.mjs","../node_modules/swiper/modules/mousewheel.mjs","../node_modules/swiper/shared/effect-init.mjs","../node_modules/swiper/shared/effect-target.mjs","../node_modules/swiper/shared/create-shadow.mjs","../node_modules/swiper/modules/effect-coverflow.mjs","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/chevrons-left.js","../node_modules/lucide-react/dist/esm/icons/chevrons-right.js","../node_modules/lucide-react/dist/esm/icons/chevrons-up.js","../node_modules/lucide-react/dist/esm/icons/pause.js","../node_modules/lucide-react/dist/esm/icons/play.js","../node_modules/lucide-react/dist/esm/icons/volume-2.js","../node_modules/lucide-react/dist/esm/icons/volume-x.js","../node_modules/lucide-react/dist/esm/icons/x.js","../node_modules/lucide-react/dist/esm/icons/zap.js","../../src/riyils-viewer.tsx","../../src/index.tsx"],"sourcesContent":["/**\n * SSR Window 5.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2025, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: June 27, 2025\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 const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n 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 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 = 0) {\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 = 'x') {\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(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[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({\n swiper,\n targetPosition,\n side\n}) {\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 const window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window = getWindow();\n let isChild = parent.contains(el);\n if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n isChild = children.includes(el);\n if (!isChild) {\n isChild = elementIsChildOfSlot(el, parent);\n }\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes = []) {\n 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}\nfunction setInnerHTML(el, html = '') {\n if (typeof trustedTypes !== 'undefined') {\n el.innerHTML = trustedTypes.createPolicy('html', {\n createHTML: s => s\n }).createHTML(html);\n } else {\n el.innerHTML = html;\n }\n}\n\nexport { getRotateFix as a, setCSSProperty as b, createElement as c, elementParents as d, elementChildren as e, elementOffset as f, getSlideTransformEl as g, now as h, elementOuterSize as i, elementIndex as j, classesToTokens as k, getTranslate as l, makeElementsArray as m, nextTick as n, elementTransitionEnd as o, isObject as p, elementStyle as q, elementNextAll as r, setInnerHTML as s, elementPrevAll as t, animateCSSModeScroll as u, showWarning as v, elementIsChildOf as w, extend as x, deleteProps as y };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { d as elementParents, q as elementStyle, e as elementChildren, b as setCSSProperty, i as elementOuterSize, r as elementNextAll, t as elementPrevAll, l as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, h as now, x as extend, j as elementIndex, y 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({\n userAgent\n} = {}) {\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)(?!\\1).*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 (!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({\n swiper,\n on,\n emit\n}) {\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(({\n contentBoxSize,\n contentRect,\n target\n }) => {\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({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\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(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\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(...args) {\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 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 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 const swiperSize = swiper.size - offsetBefore - offsetAfter;\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 - offsetBefore - offsetAfter;\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 const slide = slides[i];\n if (slide) {\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n }\n\n if (isVirtual && params.slidesPerView === 'auto') {\n if (params.virtual.slidesPerViewAutoSlideSize) {\n slideSize = params.virtual.slidesPerViewAutoSlideSize;\n }\n if (slideSize && slide) {\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n } else if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slide.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 (slide) {\n slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slide) {\n slide.swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (offsetBefore || 0) + (offsetAfter || 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 = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\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 = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\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({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\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 && dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n } else if (runCallbacks && activeIndex !== previousIndex) {\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 = true, direction) {\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 = true, direction) {\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 = 0, speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n const browser = getBrowser();\n const isSafari = browser.isSafari;\n if (isVirtual && !initial && isSafari && swiper.isElement) {\n swiper.virtual.update(false, false, slideIndex);\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 = 0, speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides,\n slidesOffsetBefore,\n slidesOffsetAfter\n } = swiper.params;\n const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\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 (bothDirections && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (bothDirections) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && bothDirections && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = bothDirections ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks = true, internal) {\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 = true, internal) {\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 const isFreeMode = params.freeMode && params.freeMode.enabled;\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\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 = isFreeMode ? snapGrid[prevSnapIndex] : 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 = true, internal) {\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 = true, internal, threshold = 0.5) {\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.getSlideIndexWhenGrid(swiper.clickedIndex);\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n const isGrid = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\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 swiper.slideToLoop(realIndex);\n } else if (slideToIndex > (isGrid ? (swiper.slides.length - slidesPerView) / 2 - (swiper.params.grid.rows - 1) : 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, initial) {\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 clearBlankSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideBlankClass}`);\n slides.forEach(el => {\n el.remove();\n });\n if (slides.length > 0) {\n swiper.recalcSlides();\n swiper.updateSlides();\n }\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (params.loopAddBlankSlides && (params.slidesPerGroup > 1 || gridEnabled)) {\n clearBlankSlides();\n }\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 const bothDirections = params.centeredSlides || !!params.slidesOffsetBefore || !!params.slidesOffsetAfter;\n swiper.loopFix({\n slideRealIndex,\n direction: bothDirections ? undefined : 'next',\n initial\n });\n}\n\nfunction loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n initial,\n byController,\n byMousewheel\n} = {}) {\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 slidesOffsetBefore,\n slidesOffsetAfter,\n initialSlide\n } = params;\n const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!bothDirections && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (bothDirections && 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 (bothDirections && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = bothDirections ? Math.max(slidesPerGroup, Math.ceil(slidesPerView / 2)) : 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 || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or 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 const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !bothDirections;\n let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (bothDirections && 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 if (isInitialOverflow) {\n slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n }\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 (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n if (appendSlidesIndexes.includes(activeSlideIndex)) {\n appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\n if (prependSlidesIndexes.includes(activeSlideIndex)) {\n prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\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 || !slidesEl || 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 = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {\n return;\n } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n const document = getDocument();\n\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base = 'window', containerEl) {\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 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(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n }\n getSlideIndexWhenGrid(index) {\n if (this.grid && this.params.grid && this.params.grid.rows > 1) {\n if (this.params.grid.fill === 'column') {\n index = Math.floor(index / this.params.grid.rows);\n } else if (this.params.grid.fill === 'row') {\n index = index % Math.ceil(this.slides.length / this.params.grid.rows);\n }\n }\n return index;\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\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 = true) {\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(undefined, true);\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 = true, cleanStyles = true) {\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 { s as setInnerHTML } from './utils.mjs';\n\n/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName = '') {\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className = '') {\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && !passedParams.thumbs.swiper.destroyed && currentParams.thumbs && (!currentParams.thumbs.swiper || currentParams.thumbs.swiper.destroyed)) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n setInnerHTML(nextEl, swiper.navigation.arrowSvg);\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n setInnerHTML(prevEl, swiper.navigation.arrowSvg);\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n swiper.emit('_virtualUpdated');\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n","/**\n * Swiper React 12.0.3\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2025 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: October 21, 2025\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(({\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n} = {}, externalElRef) => {\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(({\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n} = {}, externalRef) => {\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { b as setCSSProperty, e as elementChildren, s as setInnerHTML, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n slidesPerViewAutoSlideSize: 320,\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 setInnerHTML(tempDOM, 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 setInnerHTML(slideEl, slide);\n }\n if (params.cache) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force, beforeInit, forceActiveIndex) {\n const {\n slidesPerGroup,\n centeredSlides,\n slidesPerView,\n loop: isLoop,\n initialSlide\n } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) {\n return;\n }\n const {\n addSlidesBefore,\n addSlidesAfter,\n slidesPerViewAutoSlideSize\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 = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesPerViewNumeric;\n if (slidesPerView === 'auto') {\n if (slidesPerViewAutoSlideSize) {\n let swiperSize = swiper.size;\n if (!swiperSize) {\n swiperSize = swiper.isHorizontal() ? swiper.el.getBoundingClientRect().width : swiper.el.getBoundingClientRect().height;\n }\n slidesPerViewNumeric = Math.max(1, Math.ceil(swiperSize / slidesPerViewAutoSlideSize));\n } else {\n slidesPerViewNumeric = 1;\n }\n } else {\n slidesPerViewNumeric = slidesPerView;\n }\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerViewNumeric / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerViewNumeric / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerViewNumeric + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerViewNumeric : 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 { d as elementParents, f as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\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.isContentEditable || 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, h as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","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 _virtualUpdated', () => {\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 { 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","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, a as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\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","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m11 17-5-5 5-5\", key: \"13zhaf\" }],\n [\"path\", { d: \"m18 17-5-5 5-5\", key: \"h8a8et\" }]\n];\nconst ChevronsLeft = createLucideIcon(\"chevrons-left\", __iconNode);\n\nexport { __iconNode, ChevronsLeft as default };\n//# sourceMappingURL=chevrons-left.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m6 17 5-5-5-5\", key: \"xnjwq\" }],\n [\"path\", { d: \"m13 17 5-5-5-5\", key: \"17xmmf\" }]\n];\nconst ChevronsRight = createLucideIcon(\"chevrons-right\", __iconNode);\n\nexport { __iconNode, ChevronsRight as default };\n//# sourceMappingURL=chevrons-right.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m17 11-5-5-5 5\", key: \"e8nh98\" }],\n [\"path\", { d: \"m17 18-5-5-5 5\", key: \"2avn1x\" }]\n];\nconst ChevronsUp = createLucideIcon(\"chevrons-up\", __iconNode);\n\nexport { __iconNode, ChevronsUp as default };\n//# sourceMappingURL=chevrons-up.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { x: \"14\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"kaeet6\" }],\n [\"rect\", { x: \"5\", y: \"3\", width: \"5\", height: \"18\", rx: \"1\", key: \"1wsw3u\" }]\n];\nconst Pause = createLucideIcon(\"pause\", __iconNode);\n\nexport { __iconNode, Pause as default };\n//# sourceMappingURL=pause.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\",\n key: \"10ikf1\"\n }\n ]\n];\nconst Play = createLucideIcon(\"play\", __iconNode);\n\nexport { __iconNode, Play as default };\n//# sourceMappingURL=play.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ],\n [\"path\", { d: \"M16 9a5 5 0 0 1 0 6\", key: \"1q6k2b\" }],\n [\"path\", { d: \"M19.364 18.364a9 9 0 0 0 0-12.728\", key: \"ijwkga\" }]\n];\nconst Volume2 = createLucideIcon(\"volume-2\", __iconNode);\n\nexport { __iconNode, Volume2 as default };\n//# sourceMappingURL=volume-2.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z\",\n key: \"uqj9uw\"\n }\n ],\n [\"line\", { x1: \"22\", x2: \"16\", y1: \"9\", y2: \"15\", key: \"1ewh16\" }],\n [\"line\", { x1: \"16\", x2: \"22\", y1: \"9\", y2: \"15\", key: \"5ykzw1\" }]\n];\nconst VolumeX = createLucideIcon(\"volume-x\", __iconNode);\n\nexport { __iconNode, VolumeX as default };\n//# sourceMappingURL=volume-x.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\",\n key: \"1xq2db\"\n }\n ]\n];\nconst Zap = createLucideIcon(\"zap\", __iconNode);\n\nexport { __iconNode, Zap as default };\n//# sourceMappingURL=zap.js.map\n","import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { Keyboard, Mousewheel, Virtual } from 'swiper/modules';\r\nimport type { Swiper as SwiperType } from 'swiper';\r\nimport {\r\n X,\r\n Volume2,\r\n VolumeX,\r\n Play,\r\n Pause,\r\n ChevronsRight,\r\n ChevronsLeft,\r\n ChevronsUp,\r\n Zap\r\n} from 'lucide-react';\r\n\r\nimport 'swiper/css';\r\nimport 'swiper/css/virtual';\r\n\r\nexport interface Video {\r\n id: string;\r\n videoUrl: string;\r\n thumbnailUrl?: string;\r\n duration?: number;\r\n captionUrl?: string;\r\n}\r\n\r\nexport interface RiyilsTranslations {\r\n close: string;\r\n speedIndicator: string;\r\n forward: string;\r\n rewind: string;\r\n}\r\n\r\nexport const defaultRiyilsTranslations: RiyilsTranslations = {\r\n close: 'Close',\r\n speedIndicator: '2x Speed',\r\n forward: '10s Forward',\r\n rewind: '10s Rewind',\r\n};\r\n\r\nexport interface RiyilsViewerProps {\r\n readonly videos: Video[];\r\n readonly initialIndex?: number;\r\n readonly onClose: () => void;\r\n readonly onVideoChange?: (index: number) => void;\r\n readonly translations?: Partial<RiyilsTranslations>;\r\n readonly progressBarColor?: string;\r\n}\r\n\r\nconst DOUBLE_TAP_DELAY = 300;\r\nconst LONG_PRESS_DELAY = 500;\r\nconst SEEK_TIME = 10;\r\nconst ANIMATION_DURATION = 600;\r\nconst SCROLL_HINT_DURATION = 1000;\r\n\r\nfunction useLockBodyScroll() {\r\n useEffect(() => {\r\n const body = globalThis.document.body;\r\n const originalStyle = globalThis.getComputedStyle(body).overflow;\r\n const originalOverscroll = body.style.overscrollBehavior;\r\n\r\n body.style.overflow = 'hidden';\r\n body.style.overscrollBehavior = 'none';\r\n\r\n return () => {\r\n body.style.overflow = originalStyle;\r\n body.style.overscrollBehavior = originalOverscroll;\r\n };\r\n }, []);\r\n}\r\n\r\nexport function RiyilsViewer({\r\n videos,\r\n initialIndex = 0,\r\n onClose,\r\n onVideoChange,\r\n translations = {},\r\n progressBarColor = '#fff',\r\n}: Readonly<RiyilsViewerProps>) {\r\n useLockBodyScroll();\r\n\r\n const t = useMemo(() => ({\r\n ...defaultRiyilsTranslations,\r\n ...translations\r\n }), [translations]);\r\n\r\n const [currentIndex, setCurrentIndex] = useState(initialIndex);\r\n const [isMuted, setIsMuted] = useState(true);\r\n const [progress, setProgress] = useState(0);\r\n const [isSpeedUp, setIsSpeedUp] = useState(false);\r\n const [isPlaying, setIsPlaying] = useState(true);\r\n const [seekFeedback, setSeekFeedback] = useState<'forward' | 'rewind' | null>(null);\r\n const [showPlayPauseIcon, setShowPlayPauseIcon] = useState(false);\r\n const [showScrollHint, setShowScrollHint] = useState(false);\r\n\r\n const swiperRef = useRef<SwiperType | null>(null);\r\n const activeVideoRef = useRef<HTMLVideoElement | null>(null);\r\n const containerRef = useRef<HTMLDivElement | null>(null);\r\n\r\n const longPressTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const doubleTapTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const lastTapTime = useRef<number>(0);\r\n const longPressTriggered = useRef<boolean>(false);\r\n\r\n useEffect(() => {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const handleContextMenu = (e: Event) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n\r\n container.addEventListener('contextmenu', handleContextMenu);\r\n return () => {\r\n container.removeEventListener('contextmenu', handleContextMenu);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const video = activeVideoRef.current;\r\n if (!video) return;\r\n\r\n if (isPlaying) {\r\n const playPromise = video.play();\r\n if (playPromise !== undefined) {\r\n playPromise.catch(() => {\r\n setIsPlaying(false);\r\n });\r\n }\r\n } else {\r\n video.pause();\r\n }\r\n }, [currentIndex, isPlaying]);\r\n\r\n useEffect(() => {\r\n const video = activeVideoRef.current;\r\n if (video) {\r\n video.muted = isMuted;\r\n video.playbackRate = isSpeedUp ? 2 : 1;\r\n }\r\n }, [isMuted, isSpeedUp, currentIndex]);\r\n\r\n useEffect(() => {\r\n setShowScrollHint(true);\r\n const timer = setTimeout(() => {\r\n setShowScrollHint(false);\r\n }, SCROLL_HINT_DURATION);\r\n\r\n return () => clearTimeout(timer);\r\n }, [currentIndex]);\r\n\r\n useEffect(() => {\r\n if (swiperRef.current) {\r\n swiperRef.current.virtual.update(true);\r\n swiperRef.current.update();\r\n if (swiperRef.current.keyboard) {\r\n swiperRef.current.keyboard.enable();\r\n }\r\n }\r\n }, [videos.length]);\r\n\r\n const handleTimeUpdate = useCallback((e: React.SyntheticEvent<HTMLVideoElement>) => {\r\n const vid = e.currentTarget;\r\n if (vid.duration) {\r\n setProgress((vid.currentTime / vid.duration) * 100);\r\n }\r\n }, []);\r\n\r\n const handleTouchStart = useCallback(() => {\r\n longPressTriggered.current = false;\r\n longPressTimer.current = setTimeout(() => {\r\n setIsSpeedUp(true);\r\n longPressTriggered.current = true;\r\n }, LONG_PRESS_DELAY);\r\n }, []);\r\n\r\n const handleTouchEnd = useCallback(() => {\r\n if (longPressTimer.current) {\r\n clearTimeout(longPressTimer.current);\r\n }\r\n setIsSpeedUp(false);\r\n }, []);\r\n\r\n const handleSeek = useCallback((seconds: number) => {\r\n const video = activeVideoRef.current;\r\n if (!video) return;\r\n\r\n video.currentTime = Math.min(Math.max(video.currentTime + seconds, 0), video.duration);\r\n\r\n setSeekFeedback(seconds > 0 ? 'forward' : 'rewind');\r\n setTimeout(() => setSeekFeedback(null), ANIMATION_DURATION);\r\n }, []);\r\n\r\n const togglePlay = useCallback(() => {\r\n setIsPlaying(prev => {\r\n const newState = !prev;\r\n setShowPlayPauseIcon(true);\r\n setTimeout(() => setShowPlayPauseIcon(false), ANIMATION_DURATION);\r\n return newState;\r\n });\r\n }, []);\r\n\r\n const handleZoneClick = useCallback((zone: 'left' | 'center' | 'right', e: React.MouseEvent | React.TouchEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (longPressTriggered.current) {\r\n longPressTriggered.current = false;\r\n return;\r\n }\r\n\r\n const now = Date.now();\r\n const timeDiff = now - lastTapTime.current;\r\n\r\n if (timeDiff < DOUBLE_TAP_DELAY && timeDiff > 0) {\r\n if (doubleTapTimer.current) {\r\n clearTimeout(doubleTapTimer.current);\r\n }\r\n\r\n if (zone === 'right') {\r\n handleSeek(SEEK_TIME);\r\n } else if (zone === 'left') {\r\n handleSeek(-SEEK_TIME);\r\n } else {\r\n togglePlay();\r\n }\r\n\r\n lastTapTime.current = 0;\r\n } else {\r\n lastTapTime.current = now;\r\n doubleTapTimer.current = setTimeout(() => {\r\n togglePlay();\r\n lastTapTime.current = 0;\r\n }, DOUBLE_TAP_DELAY);\r\n }\r\n }, [handleSeek, togglePlay]);\r\n\r\n const handleMuteToggle = useCallback((e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n setIsMuted(prev => !prev);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) {\r\n return;\r\n }\r\n\r\n switch (e.code) {\r\n case 'Escape':\r\n e.preventDefault();\r\n onClose();\r\n break;\r\n case 'Space':\r\n e.preventDefault();\r\n togglePlay();\r\n break;\r\n case 'KeyM':\r\n e.preventDefault();\r\n setIsMuted((prev) => !prev);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n globalThis.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n globalThis.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }, [onClose, togglePlay]);\r\n\r\n const handleSlideChange = useCallback((s: SwiperType) => {\r\n setCurrentIndex(s.activeIndex);\r\n setProgress(0);\r\n setIsPlaying(true);\r\n setSeekFeedback(null);\r\n if (onVideoChange) {\r\n onVideoChange(s.activeIndex);\r\n }\r\n }, [onVideoChange]);\r\n\r\n const preventDefaultMenu = useCallback((e: React.SyntheticEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }, []);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className=\"react-riyils-viewer\"\r\n style={{ WebkitTouchCallout: 'none' } as React.CSSProperties}\r\n >\r\n <div className=\"react-riyils-viewer__gradient-top\" />\r\n\r\n <div className=\"react-riyils-viewer__close-container\">\r\n <button\r\n type=\"button\"\r\n onClick={onClose}\r\n className=\"react-riyils-viewer__btn react-riyils-viewer__btn-close\"\r\n aria-label={t.close}\r\n >\r\n <X size={24} strokeWidth={2.5} />\r\n </button>\r\n </div>\r\n\r\n <Swiper\r\n modules={[Keyboard, Mousewheel, Virtual]}\r\n direction=\"vertical\"\r\n initialSlide={initialIndex}\r\n onSwiper={(s) => (swiperRef.current = s)}\r\n onSlideChange={handleSlideChange}\r\n className=\"h-full w-full\"\r\n style={{ height: '100%', width: '100%' }}\r\n threshold={10}\r\n speed={400}\r\n keyboard={{ enabled: true }}\r\n mousewheel={{ enabled: true, thresholdDelta: 50 }}\r\n virtual={{ enabled: true, addSlidesBefore: 1, addSlidesAfter: 2 }}\r\n >\r\n {videos.map((video, index) => (\r\n <SwiperSlide key={video.id} virtualIndex={index} className=\"react-riyils-viewer__slide\">\r\n {index === currentIndex ? (\r\n <>\r\n <fieldset\r\n className=\"react-riyils-viewer__gesture-grid\"\r\n onContextMenu={preventDefaultMenu}\r\n tabIndex={-1}\r\n style={{ border: 0, margin: 0, padding: 0 }}\r\n >\r\n <button\r\n type=\"button\"\r\n className=\"react-riyils-viewer__gesture-zone\"\r\n onClick={(e) => handleZoneClick('left', e)}\r\n aria-label={t.rewind}\r\n />\r\n\r\n <button\r\n type=\"button\"\r\n className=\"react-riyils-viewer__gesture-zone\"\r\n onClick={(e) => handleZoneClick('center', e)}\r\n aria-label={isPlaying ? 'Pause' : 'Play'}\r\n />\r\n\r\n <button\r\n type=\"button\"\r\n className=\"react-riyils-viewer__gesture-zone\"\r\n onClick={(e) => handleZoneClick('right', e)}\r\n onTouchStart={handleTouchStart}\r\n onTouchEnd={handleTouchEnd}\r\n onMouseDown={handleTouchStart}\r\n onMouseUp={handleTouchEnd}\r\n aria-label={t.forward}\r\n />\r\n </fieldset>\r\n\r\n <div className={`react-riyils-viewer__feedback-speed ${isSpeedUp ? 'visible' : ''}`}>\r\n <Zap size={16} fill=\"currentColor\" className=\"text-yellow-400\" />\r\n <span>{t.speedIndicator}</span>\r\n </div>\r\n\r\n {!isPlaying && (\r\n <div className=\"react-riyils-viewer__feedback-center\">\r\n <div className=\"react-riyils-viewer__feedback-icon animate-in\">\r\n <Play size={32} fill=\"white\" />\r\n </div>\r\n </div>\r\n )}\r\n\r\n {isPlaying && showPlayPauseIcon && (\r\n <div className=\"react-riyils-viewer__feedback-center\">\r\n <div className=\"react-riyils-viewer__feedback-icon animate-out\">\r\n <Pause size={32} fill=\"white\" />\r\n </div>\r\n </div>\r\n )}\r\n\r\n {seekFeedback && (\r\n <div className={`react-riyils-viewer__feedback-seek ${seekFeedback === 'forward' ? 'right' : 'left'}`}>\r\n <div className=\"react-riyils-viewer__seek-circle\">\r\n {seekFeedback === 'forward' ? <ChevronsRight size={32} /> : <ChevronsLeft size={32} />}\r\n <span className=\"react-riyils-viewer__seek-text\">10s</span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <video\r\n ref={activeVideoRef}\r\n src={video.videoUrl}\r\n className=\"react-riyils-viewer__video\"\r\n playsInline\r\n loop\r\n muted={isMuted}\r\n autoPlay\r\n poster={video.thumbnailUrl}\r\n onTimeUpdate={handleTimeUpdate}\r\n onContextMenu={preventDefaultMenu}\r\n disablePictureInPicture\r\n disableRemotePlayback\r\n aria-label={`Video ${video.id}`}\r\n >\r\n <track\r\n kind=\"captions\"\r\n src={video.captionUrl || ''}\r\n label=\"English\"\r\n />\r\n </video>\r\n </>\r\n ) : (\r\n <div className=\"react-riyils-viewer__slide\">\r\n <div className=\"react-riyils-viewer__loader\" />\r\n </div>\r\n )}\r\n </SwiperSlide>\r\n ))}\r\n </Swiper>\r\n\r\n <div\r\n className=\"react-riyils-viewer__scroll-hint\"\r\n style={{\r\n position: 'absolute',\r\n bottom: '80px',\r\n left: '50%',\r\n transform: 'translateX(-50%)',\r\n zIndex: 45,\r\n pointerEvents: 'none',\r\n opacity: showScrollHint ? 1 : 0,\r\n transition: 'opacity 0.5s ease-in-out',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n animation: showScrollHint ? 'rr-bounce 1s infinite' : 'none',\r\n }}\r\n >\r\n <ChevronsUp size={32} color=\"rgba(255, 255, 255, 0.7)\" />\r\n </div>\r\n\r\n <div className=\"react-riyils-viewer__gradient-bottom\">\r\n <div className=\"react-riyils-viewer__controls-row\">\r\n <button\r\n type=\"button\"\r\n onClick={handleMuteToggle}\r\n className=\"react-riyils-viewer__btn react-riyils-viewer__btn-mute\"\r\n >\r\n {isMuted ? <VolumeX size={24} /> : <Volume2 size={24} />}\r\n </button>\r\n </div>\r\n\r\n <div className=\"react-riyils-viewer__progress-container\">\r\n <div\r\n className=\"react-riyils-viewer__progress-fill\"\r\n style={{ width: `${progress}%`, background: progressBarColor }}\r\n />\r\n </div>\r\n </div>\r\n\r\n <style>{`\r\n @keyframes rr-bounce {\r\n 0%, 100% { transform: translateX(-50%) translateY(0); }\r\n 50% { transform: translateX(-50%) translateY(-10px); }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n}","import React, { useRef, useEffect, useState, useCallback, useMemo } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { Keyboard, Mousewheel, EffectCoverflow, Virtual } from 'swiper/modules';\r\nimport type { Swiper as SwiperType } from 'swiper';\r\nimport { Play } from 'lucide-react';\r\n\r\nimport {\r\n type Video,\r\n} from './riyils-viewer';\r\n\r\nimport './video-swiper.css';\r\nimport 'swiper/css';\r\nimport 'swiper/css/effect-coverflow';\r\nimport 'swiper/css/virtual';\r\n\r\nexport interface ReactRiyilsTranslations {\r\n ctaButton: string;\r\n carouselAriaLabel: string;\r\n slideActiveAriaLabel: string;\r\n slideInactiveAriaLabel: string;\r\n}\r\n\r\nexport const defaultReactRiyilsTranslations: ReactRiyilsTranslations = {\r\n ctaButton: 'Watch Full Video',\r\n carouselAriaLabel: 'Video stories',\r\n slideActiveAriaLabel: 'Watch full video',\r\n slideInactiveAriaLabel: 'Go to slide',\r\n};\r\n\r\nexport interface ReactRiyilsProps {\r\n readonly videos: Video[];\r\n readonly currentIndex?: number;\r\n readonly onVideoClick: (index: number) => void;\r\n readonly onVideoChange: (index: number) => void;\r\n readonly translations?: Partial<ReactRiyilsTranslations>;\r\n readonly containerHeightMobile?: number;\r\n readonly containerHeightDesktop?: number;\r\n readonly autoPlay?: boolean;\r\n}\r\n\r\nconst SlideItem = React.memo(({\r\n video,\r\n isVisualActive,\r\n index,\r\n onVideoClick,\r\n t,\r\n shouldLoad\r\n}: {\r\n video: Video;\r\n isVisualActive: boolean;\r\n index: number;\r\n onVideoClick: (idx: number) => void;\r\n t: ReactRiyilsTranslations;\r\n shouldLoad: boolean;\r\n}) => {\r\n const videoRef = useRef<HTMLVideoElement>(null);\r\n\r\n useEffect(() => {\r\n const el = videoRef.current;\r\n if (!el) return;\r\n\r\n const handleTimeUpdate = () => {\r\n if (!isVisualActive) {\r\n if (el.currentTime >= 2) {\r\n el.currentTime = 0;\r\n el.play().catch(() => { });\r\n }\r\n }\r\n };\r\n\r\n el.addEventListener('timeupdate', handleTimeUpdate);\r\n\r\n if (isVisualActive) {\r\n el.currentTime = 0;\r\n el.play().catch(() => { });\r\n } else if (shouldLoad) {\r\n el.muted = true;\r\n el.currentTime = 0;\r\n }\r\n\r\n return () => {\r\n el.removeEventListener('timeupdate', handleTimeUpdate);\r\n };\r\n }, [isVisualActive, shouldLoad]);\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className=\"react-riyils__slide-button\"\r\n onClick={() => onVideoClick(index)}\r\n aria-label={isVisualActive ? t.slideActiveAriaLabel : t.slideInactiveAriaLabel}\r\n >\r\n <div className={`react-riyils__card ${isVisualActive ? 'active' : ''}`}>\r\n <video\r\n ref={videoRef}\r\n src={shouldLoad ? video.videoUrl : undefined}\r\n muted\r\n playsInline\r\n loop={isVisualActive}\r\n className=\"react-riyils__video\"\r\n preload={shouldLoad ? \"auto\" : \"metadata\"}\r\n />\r\n {isVisualActive && (\r\n <div className=\"react-riyils__cta-container\">\r\n <span className=\"react-riyils__cta-button\">\r\n <Play size={14} fill=\"currentColor\" />\r\n {t.ctaButton}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n </button>\r\n );\r\n});\r\n\r\nSlideItem.displayName = 'SlideItem';\r\n\r\nexport function ReactRiyils({\r\n videos,\r\n currentIndex = 0,\r\n onVideoClick,\r\n onVideoChange,\r\n translations = {},\r\n containerHeightMobile,\r\n containerHeightDesktop,\r\n autoPlay = true,\r\n}: Readonly<ReactRiyilsProps>) {\r\n const swiperRef = useRef<SwiperType | null>(null);\r\n const [activeIndex, setActiveIndex] = useState(currentIndex);\r\n\r\n const t = useMemo(() => ({\r\n ...defaultReactRiyilsTranslations,\r\n ...translations\r\n }), [translations]);\r\n\r\n const containerStyle = useMemo(() => ({\r\n '--container-height-mobile': containerHeightMobile ? `${containerHeightMobile}px` : undefined,\r\n '--container-height-desktop': containerHeightDesktop ? `${containerHeightDesktop}px` : undefined,\r\n } as React.CSSProperties), [containerHeightMobile, containerHeightDesktop]);\r\n\r\n useEffect(() => {\r\n const swiper = swiperRef.current;\r\n if (swiper && !swiper.destroyed) {\r\n if (swiper.activeIndex !== currentIndex) {\r\n swiper.slideTo(currentIndex, 0);\r\n }\r\n\r\n swiper.update();\r\n\r\n const timer = setTimeout(() => {\r\n if (!swiper.destroyed) {\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n\r\n if (swiper.virtual) {\r\n swiper.virtual.update(true);\r\n }\r\n\r\n if (swiper.activeIndex !== currentIndex) {\r\n swiper.slideTo(currentIndex, 0);\r\n }\r\n }\r\n }, 100);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n }, [currentIndex]);\r\n\r\n useEffect(() => {\r\n if (!swiperRef.current || swiperRef.current.destroyed) return;\r\n\r\n swiperRef.current.update();\r\n if (swiperRef.current.virtual) {\r\n swiperRef.current.virtual.update(true);\r\n }\r\n }, [videos.length]);\r\n\r\n const handleSlideChange = useCallback((swiper: SwiperType) => {\r\n requestAnimationFrame(() => {\r\n if (swiper.activeIndex !== currentIndex) {\r\n setActiveIndex(swiper.activeIndex);\r\n onVideoChange(swiper.activeIndex);\r\n }\r\n });\r\n }, [onVideoChange, currentIndex]);\r\n\r\n return (\r\n <section\r\n className=\"react-riyils__container\"\r\n style={containerStyle}\r\n aria-label={t.carouselAriaLabel}\r\n >\r\n <Swiper\r\n modules={[Keyboard, Mousewheel, EffectCoverflow, Virtual]}\r\n observer={true}\r\n observeParents={true}\r\n watchSlidesProgress={true}\r\n initialSlide={currentIndex}\r\n virtual={{\r\n addSlidesBefore: 4,\r\n addSlidesAfter: 5,\r\n enabled: true,\r\n cache: false\r\n }}\r\n effect=\"coverflow\"\r\n coverflowEffect={{\r\n rotate: 0,\r\n stretch: -15,\r\n depth: 100,\r\n modifier: 2.5,\r\n slideShadows: true,\r\n }}\r\n onSwiper={(s) => {\r\n swiperRef.current = s;\r\n }}\r\n onSlideChange={handleSlideChange}\r\n slidesPerView=\"auto\"\r\n centeredSlides={true}\r\n grabCursor={true}\r\n keyboard={{ enabled: true }}\r\n mousewheel={{ forceToAxis: true }}\r\n className=\"react-riyils\"\r\n >\r\n {videos.map((video, index) => {\r\n const isSelected = index === activeIndex;\r\n const distance = Math.abs(index - activeIndex);\r\n const shouldLoad = distance < 4;\r\n\r\n return (\r\n <SwiperSlide key={video.id} virtualIndex={index}>\r\n <SlideItem\r\n video={video}\r\n index={index}\r\n isVisualActive={isSelected}\r\n onVideoClick={isSelected ? onVideoClick : () => {\r\n if (swiperRef.current && !swiperRef.current.destroyed) {\r\n swiperRef.current.slideTo(index);\r\n }\r\n }}\r\n t={t}\r\n shouldLoad={isSelected || shouldLoad}\r\n />\r\n </SwiperSlide>\r\n );\r\n })}\r\n </Swiper>\r\n </section>\r\n );\r\n}\r\n\r\nexport {\r\n RiyilsViewer,\r\n defaultRiyilsTranslations,\r\n type Video,\r\n type RiyilsTranslations,\r\n type RiyilsViewerProps\r\n} from './riyils-viewer';"],"names":["isObject","extend","getComputedStyle","Swiper","useEffect","useLayoutEffect","createContext","forwardRef","useState","useRef","createElement","__iconNode","useMemo","useCallback"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}