{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCAA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,kBAEA,OAAO,gBAAgB,CAAC,mBAAoB,AAAC,IACzC,GACJ,GAQA,IAAM,EAAc,AAAC,IAEjB,IAAI,EAAc,CACd,OAAQ,CACJ,OAAQ,GACZ,EACA,OAAQ,CACJ,OAAQ,CACZ,EACA,QAAS,CACL,OAAQ,CACZ,CACJ,EACM,EAAU,EAAU,aAAa,CAAC,mBACxC,GAAI,CAAC,EACD,OAAO,EAGX,IAAM,EAAiB,EAAU,WAAW,CAG5C,GAAM,SAAS,aAAa,CAAC,wCAGzB,OAFA,EAAY,MAAM,CAAC,MAAM,CAAG,EAAiB,IAC7C,EAAY,MAAM,CAAC,MAA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AAA,EACA,EAAA,MAAA,CAAA,EAAA,eAAA,IAAA,EAAA,OAAA,EACA,EAAA,MAAA,CAAA,EAAA,aAAA,IAAA,EAAA,OAAA,EACA,EAAA,MAAA,CAAA,EAAA,aAAA,IAAA,EAAA,OAAA,EACA,EAAA,MAAA,CAAA,EAAA,aAAA,IAAA,EAAA,OAAA,EACA,EAAA,MAAA,CAAA,EAAA,kBAAA,IAAA,EAAA,OAAA,EACA,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAA,EAAA,OAAA,EACA,EAAA,MAAA,CAAA,EAAA,cAAA,IAAA,EAAA,OAAA,EAtBA,IAAA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,kB,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,kB,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,kB,E,E,c,C,GACA,EAAA,EAAA,gB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,sB,E,E,c,C,GACA,EAAA,EAAA,qB,E,E,c,C,GACA,EAAA,EAAA,qB,E,E,c,C,GACA,EAAA,EAAA,qB,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,sB,E,E,c,C,E,E,C,gB,Q,iB,Q,mB,Q,mB,Q,mB,Q,kB,Q,iB,Q,a,Q,mB,Q,a,Q,gB,Q,wB,Q,iB,Q,e,Q,kB,Q,a,Q,qB,Q,oB,Q,oB,Q,oB,Q,yB,Q,wB,Q,qB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCsUA,EAAA,MAAA,CAAA,EAAA,UAAA,IAAS,GA5VT,IAAA,EAAA,EAAA,gCACA,EAAA,EAAA,uBAEA,SAAS,EAAQ,CAAI,EACnB,IAkBI,EAlBA,CA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","sources":["","templates/js/swiper.js","node_modules/swiper/swiper.mjs","node_modules/swiper/shared/swiper-core.mjs","node_modules/swiper/shared/ssr-window.esm.mjs","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","node_modules/swiper/shared/utils.mjs","node_modules/swiper/modules/index.mjs","node_modules/swiper/modules/virtual.mjs","node_modules/swiper/modules/keyboard.mjs","node_modules/swiper/modules/mousewheel.mjs","node_modules/swiper/modules/navigation.mjs","node_modules/swiper/shared/create-element-if-not-defined.mjs","node_modules/swiper/modules/pagination.mjs","node_modules/swiper/shared/classes-to-selector.mjs","node_modules/swiper/modules/scrollbar.mjs","node_modules/swiper/modules/parallax.mjs","node_modules/swiper/modules/zoom.mjs","node_modules/swiper/modules/controller.mjs","node_modules/swiper/modules/a11y.mjs","node_modules/swiper/modules/history.mjs","node_modules/swiper/modules/hash-navigation.mjs","node_modules/swiper/modules/autoplay.mjs","node_modules/swiper/modules/thumbs.mjs","node_modules/swiper/modules/free-mode.mjs","node_modules/swiper/modules/grid.mjs","node_modules/swiper/modules/manipulation.mjs","node_modules/swiper/modules/effect-fade.mjs","node_modules/swiper/shared/effect-init.mjs","node_modules/swiper/shared/effect-target.mjs","node_modules/swiper/shared/effect-virtual-transition-end.mjs","node_modules/swiper/modules/effect-cube.mjs","node_modules/swiper/modules/effect-flip.mjs","node_modules/swiper/shared/create-shadow.mjs","node_modules/swiper/modules/effect-coverflow.mjs","node_modules/swiper/modules/effect-creative.mjs","node_modules/swiper/modules/effect-cards.mjs"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"itwxF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nvar _swiper = require(\"swiper\");\nvar _swiperDefault = parcelHelpers.interopDefault(_swiper);\nvar _modules = require(\"swiper/modules\");\nwindow.addEventListener('DOMContentLoaded', (event)=>{\n initSwiper();\n});\n/**\n * Tries to determine various settings for the carousel based on classes on parent elements.\n * Not ideal solution, but as this was controlled by CSS seems like best fit.\n * @param {Element} wrapper\n * @returns \n */ const getSettings = (container)=>{\n // Default sizes\n let settingsObj = {\n mobile: {\n slides: 1.2\n },\n tablet: {\n slides: 1\n },\n desktop: {\n slides: 1\n }\n };\n const wrapper = container.querySelector('.swiper-wrapper');\n if (!wrapper) return settingsObj;\n const containerWidth = container.clientWidth;\n // Home page only has 1 carousel, save doing tree walk if we find this\n if (!!document.querySelector('#page--home .content__featured-media')) {\n settingsObj.mobile.slides = containerWidth / 238;\n settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 300;\n return settingsObj;\n }\n const classes = [];\n try {\n let parent = wrapper.parentNode;\n while(!!parent){\n if (parent.tagName === \"BODY\") {\n parent = null;\n break;\n }\n parent.classList.forEach((value, idx, obj)=>{\n obj?.forEach((c)=>{\n classes.push(c);\n });\n });\n parent = parent.parentNode;\n }\n if (classes.indexOf('content__featured-content-promotions') > -1) settingsObj.mobile.slides = settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 275;\n else if (classes.indexOf('content__featured-item-promotions') > -1 && classes.indexOf('promotions') > -1) {\n const nintyPct = containerWidth * 0.9;\n settingsObj.mobile.slides = nintyPct < 238 ? 1.1 : containerWidth / 250;\n settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 295;\n } else if (classes.indexOf('content__featured-media') > -1 || classes.indexOf('content__featured-item-attractions') > -1 && classes.indexOf('promotions') > -1) {\n const nintyPct = containerWidth * 0.9;\n settingsObj.mobile.slides = nintyPct < 238 ? 1.1 : containerWidth / 250;\n settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 615;\n }\n } catch (er) {\n console.error(er);\n }\n return settingsObj;\n};\nconst initSwiper = ()=>{\n document.querySelectorAll('.swiper')?.forEach((elem)=>{\n const slides = elem.querySelectorAll('.swiper-slide') || [];\n // If no slides just exit\n if (!slides.length) return 0;\n const settings = getSettings(elem);\n if (slides.length == 1) // If only 1 slide, don't try to loop or add navigation\n new (0, _swiperDefault.default)(elem, {\n spaceBetween: 15,\n slidesPerView: settings.mobile.slides,\n breakpoints: {\n 768: {\n slidesPerView: settings.tablet.slides\n },\n 1024: {\n slidesPerView: settings.desktop.slides\n }\n }\n });\n else // If more than 1 slide, use looping version with navigation\n new (0, _swiperDefault.default)(elem, {\n modules: [\n (0, _modules.Navigation)\n ],\n grabCursor: true,\n spaceBetween: 15,\n loop: slides.length > settings.mobile.slides,\n loopAddBlankSlides: true,\n slidesPerView: settings.mobile.slides,\n watchOverflow: true,\n navigation: {\n nextEl: '.swiper-button--next',\n prevEl: '.swiper-button--prev'\n },\n breakpoints: {\n 768: {\n loop: slides.length > settings.tablet.slides,\n slidesPerView: settings.tablet.slides\n },\n 1024: {\n loop: slides.length > settings.desktop.slides,\n slidesPerView: settings.desktop.slides\n }\n }\n });\n });\n};\n\n},{\"swiper\":\"dQFxw\",\"swiper/modules\":\"l6A0v\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"dQFxw\":[function(require,module,exports,__globalThis) {\n/**\n * Swiper 11.2.6\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: March 19, 2025\n */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"Swiper\", ()=>(0, _swiperCoreMjs.S));\nparcelHelpers.export(exports, \"default\", ()=>(0, _swiperCoreMjs.S));\nvar _swiperCoreMjs = require(\"./shared/swiper-core.mjs\");\n\n},{\"./shared/swiper-core.mjs\":\"dJE32\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"dJE32\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"S\", ()=>Swiper);\nparcelHelpers.export(exports, \"d\", ()=>defaults);\nvar _ssrWindowEsmMjs = require(\"./ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"./utils.mjs\");\nlet support;\nfunction calcSupport() {\n const window1 = (0, _ssrWindowEsmMjs.a)();\n const document1 = (0, _ssrWindowEsmMjs.g)();\n return {\n smoothScroll: document1.documentElement && document1.documentElement.style && 'scrollBehavior' in document1.documentElement.style,\n touch: !!('ontouchstart' in window1 || window1.DocumentTouch && document1 instanceof window1.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) support = calcSupport();\n return support;\n}\nlet deviceCached;\nfunction calcDevice(_temp) {\n let { userAgent } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window1 = (0, _ssrWindowEsmMjs.a)();\n const platform = window1.navigator.platform;\n const ua = userAgent || window1.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window1.screen.width;\n const screenHeight = window1.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n // iPadOs 13 fix\n const iPadScreens = [\n '1024x1366',\n '1366x1024',\n '834x1194',\n '1194x834',\n '834x1112',\n '1112x834',\n '768x1024',\n '1024x768',\n '820x1180',\n '1180x820',\n '810x1080',\n '1080x810'\n ];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [\n 0,\n 1,\n '13_0_0'\n ];\n macos = false;\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 // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) overrides = {};\n if (!deviceCached) deviceCached = calcDevice(overrides);\n return deviceCached;\n}\nlet browser;\nfunction calcBrowser() {\n const window1 = (0, _ssrWindowEsmMjs.a)();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window1.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(window1.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(window1.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) browser = calcBrowser();\n return browser;\n}\nfunction Resize(_ref) {\n let { swiper, on, emit } = _ref;\n const window1 = (0, _ssrWindowEsmMjs.a)();\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 = window1.requestAnimationFrame(()=>{\n const { width, height } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach((_ref2)=>{\n let { contentBoxSize, contentRect, target } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) resizeHandler();\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = ()=>{\n if (animationFrame) window1.cancelAnimationFrame(animationFrame);\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 window1.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window1.addEventListener('resize', resizeHandler);\n window1.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', ()=>{\n removeObserver();\n window1.removeEventListener('resize', resizeHandler);\n window1.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\nfunction Observer(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n const observers = [];\n const window1 = (0, _ssrWindowEsmMjs.a)();\n const attach = function(target, options) {\n if (options === void 0) options = {};\n const ObserverFunc = window1.MutationObserver || window1.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 (window1.requestAnimationFrame) window1.requestAnimationFrame(observerUpdate);\n else window1.setTimeout(observerUpdate, 0);\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 = (0, _utilsMjs.a)(swiper.hostEl);\n for(let i = 0; i < containerParents.length; i += 1)attach(containerParents[i]);\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\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/* eslint-disable no-underscore-dangle */ var eventsEmitter = {\n on (events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event)=>{\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once (events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) delete onceHandler.__emitterProxy;\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)args[_key] = arguments[_key];\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) self.eventsAnyListeners[method](handler);\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) self.eventsAnyListeners.splice(index, 1);\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') self.eventsListeners[event] = [];\n else if (self.eventsListeners[event]) self.eventsListeners[event].forEach((eventHandler, index)=>{\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) self.eventsListeners[event].splice(index, 1);\n });\n });\n return self;\n },\n emit () {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++)args[_key2] = arguments[_key2];\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) self.eventsAnyListeners.forEach((eventHandler)=>{\n eventHandler.apply(context, [\n event,\n ...data\n ]);\n });\n if (self.eventsListeners && self.eventsListeners[event]) self.eventsListeners[event].forEach((eventHandler)=>{\n eventHandler.apply(context, data);\n });\n });\n return self;\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) width = swiper.params.width;\n else width = el.clientWidth;\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) height = swiper.params.height;\n else height = el.clientHeight;\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) return;\n // Subtract paddings\n width = width - parseInt((0, _utilsMjs.p)(el, 'padding-left') || 0, 10) - parseInt((0, _utilsMjs.p)(el, 'padding-right') || 0, 10);\n height = height - parseInt((0, _utilsMjs.p)(el, 'padding-top') || 0, 10) - parseInt((0, _utilsMjs.p)(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}\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 { wrapperEl, slidesEl, size: swiperSize, rtlTranslate: rtl, wrongRTL } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = (0, _utilsMjs.e)(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') offsetBefore = params.slidesOffsetBefore.call(swiper);\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') offsetAfter = params.slidesOffsetAfter.call(swiper);\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') return;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n else if (typeof spaceBetween === 'string') spaceBetween = parseFloat(spaceBetween);\n swiper.virtualSize = -spaceBetween;\n // reset margins\n slides.forEach((slideEl)=>{\n if (rtl) slideEl.style.marginLeft = '';\n else slideEl.style.marginRight = '';\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n (0, _utilsMjs.s)(wrapperEl, '--swiper-centered-offset-before', '');\n (0, _utilsMjs.s)(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) swiper.grid.initSlides(slides);\n else if (swiper.grid) swiper.grid.unsetSlides();\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter((key)=>{\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for(let i = 0; i < slidesLength; i += 1){\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) swiper.grid.updateSlide(i, slide, slides);\n if (slides[i] && (0, _utilsMjs.p)(slide, 'display') === 'none') continue; // eslint-disable-line\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) slides[i].style[swiper.getDirectionLabel('width')] = ``;\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) slide.style.transform = 'none';\n if (currentWebKitTransform) slide.style.webkitTransform = 'none';\n if (params.roundLengths) slideSize = swiper.isHorizontal() ? (0, _utilsMjs.f)(slide, 'width', true) : (0, _utilsMjs.f)(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') slideSize = width + marginLeft + marginRight;\n else {\n const { clientWidth, offsetWidth } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) slide.style.transform = currentTransform;\n if (currentWebKitTransform) slide.style.webkitTransform = currentWebKitTransform;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n if (slides[i]) slides[i].swiperSlideSize = slideSize;\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) < 0.001) 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')) wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n if (params.setWrapperSize) wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n if (gridEnabled) swiper.grid.updateWrapperSize(slideSize, snapGrid);\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) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) snapGrid.push(swiper.virtualSize - swiperSize);\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)snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n for(let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1){\n if (params.slidesPerGroup === 1) snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [\n 0\n ];\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) return false;\n return true;\n }).forEach((slideEl)=>{\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue)=>{\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map((snap)=>{\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue)=>{\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex)=>{\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex)=>{\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n (0, _utilsMjs.s)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n (0, _utilsMjs.s)(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) swiper.emit('slidesLengthChange');\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) swiper.emit('slidesGridLengthChange');\n if (params.watchSlidesProgress) swiper.updateSlidesOffset();\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) swiper.el.classList.remove(backFaceHiddenClass);\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') swiper.setTransition(speed);\n else if (speed === true) swiper.setTransition(swiper.params.speed);\n const getSlideByIndex = (index)=>{\n if (isVirtual) return swiper.slides[swiper.getSlideIndexByData(index)];\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) (swiper.visibleSlides || []).forEach((slide)=>{\n activeSlides.push(slide);\n });\n else 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 } else activeSlides.push(getSlideByIndex(swiper.activeIndex));\n // Find new height from highest slide in view\n for(i = 0; i < activeSlides.length; i += 1)if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\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)slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n}\nconst toggleSlideClasses$1 = (slideEl, condition, className)=>{\n if (condition && !slideEl.classList.contains(className)) slideEl.classList.add(className);\n else if (!condition && slideEl.classList.contains(className)) slideEl.classList.remove(className);\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) translate = this && this.translate || 0;\n const swiper = this;\n const params = swiper.params;\n const { slides, rtlTranslate: rtl, snapGrid } = 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) spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n else if (typeof spaceBetween === 'string') spaceBetween = parseFloat(spaceBetween);\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) slideOffset -= slides[0].swiperSlideOffset;\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}\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 { progress, isBeginning, isEnd, progressLoop } = 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) progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n else progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\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) swiper.emit('reachBeginning toEdge');\n if (isEnd && !wasEnd) swiper.emit('reachEnd toEdge');\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) swiper.emit('fromEdge');\n swiper.emit('progress', progress);\n}\nconst toggleSlideClasses = (slideEl, condition, className)=>{\n if (condition && !slideEl.classList.contains(className)) slideEl.classList.add(className);\n else if (!condition && slideEl.classList.contains(className)) slideEl.classList.remove(className);\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const { slides, params, slidesEl, activeIndex } = 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 (0, _utilsMjs.e)(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 activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else 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 activeSlide = slides[activeIndex];\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = (0, _utilsMjs.q)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) nextSlide = slides[0];\n // Prev Slide\n prevSlide = (0, _utilsMjs.r)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n params.loop;\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}\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) lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n else // 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 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 = [\n activeColumn - amount\n ];\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) 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)if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) unlazy(swiper, i);\n }\n};\nfunction getActiveIndexByTranslate(swiper) {\n const { slidesGrid, params } = 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) activeIndex = i;\n else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) activeIndex = i + 1;\n } else if (translate >= slidesGrid[i]) activeIndex = i;\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 { snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = (aIndex)=>{\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) realIndex = swiper.virtual.slides.length + realIndex;\n if (realIndex >= swiper.virtual.slides.length) realIndex -= swiper.virtual.slides.length;\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') activeIndex = getActiveIndexByTranslate(swiper);\n if (snapGrid.indexOf(translate) >= 0) 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 // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) 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)) activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\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) realIndex = parseInt(slideIndex, 10);\n else realIndex = activeIndex;\n } else realIndex = activeIndex;\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) preload(swiper);\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) swiper.emit('realIndexChange');\n swiper.emit('slideChange');\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)\n ].forEach((pathEl)=>{\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) slide = pathEl;\n });\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for(let i = 0; i < swiper.slides.length; i += 1)if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n else swiper.clickedIndex = slideIndex;\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) swiper.slideToClickedSlide();\n}\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) axis = this.isHorizontal() ? 'x' : 'y';\n const swiper = this;\n const { params, rtlTranslate: rtl, translate, wrapperEl } = swiper;\n if (params.virtualTranslate) return rtl ? -translate : translate;\n if (params.cssMode) return translate;\n let currentTranslate = (0, _utilsMjs.j)(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const { rtlTranslate: rtl, params, wrapperEl, progress } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) x = rtl ? -translate : translate;\n else y = translate;\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) wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) x -= swiper.cssOverflowAdjustment();\n else y -= swiper.cssOverflowAdjustment();\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) newProgress = 0;\n else newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n if (newProgress !== progress) swiper.updateProgress(translate);\n swiper.emit('setTranslate', swiper.translate, byController);\n}\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) translate = 0;\n if (speed === void 0) speed = this.params.speed;\n if (runCallbacks === void 0) runCallbacks = true;\n if (translateBounds === void 0) translateBounds = true;\n const swiper = this;\n const { params, wrapperEl } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) return false;\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n else {\n if (!swiper.support.smoothScroll) {\n (0, _utilsMjs.t)({\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) 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) swiper.emit('transitionEnd');\n };\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\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}\nfunction transitionEmit(_ref) {\n let { swiper, runCallbacks, direction, step } = _ref;\n const { activeIndex, previousIndex } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') swiper.emit(`slideNextTransition${step}`);\n else swiper.emit(`slidePrevTransition${step}`);\n }\n}\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) runCallbacks = true;\n const swiper = this;\n const { params } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) swiper.updateAutoHeight();\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) runCallbacks = true;\n const swiper = this;\n const { params } = 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}\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) index = 0;\n if (runCallbacks === void 0) runCallbacks = true;\n if (typeof index === 'string') index = parseInt(index, 10);\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const { params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl, enabled } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) return false;\n if (typeof speed === 'undefined') speed = swiper.params.speed;\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) 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) slideIndex = i;\n else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) slideIndex = i + 1;\n } else if (normalizedTranslate >= normalizedGrid) slideIndex = i;\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())) return false;\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) swiper.emit('beforeSlideChangeStart');\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\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) swiper.updateAutoHeight();\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') swiper.setTranslate(translate);\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 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n if (isVirtual) requestAnimationFrame(()=>{\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n } else {\n if (!swiper.support.smoothScroll) {\n (0, _utilsMjs.t)({\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) swiper.virtual.update(false, false, slideIndex);\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) swiper.transitionEnd(runCallbacks, direction);\n else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) 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 swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) index = 0;\n if (runCallbacks === void 0) runCallbacks = true;\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') speed = swiper.params.speed;\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) // 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 targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const { centeredSlides } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') slidesPerView = swiper.slidesPerViewDynamic();\n else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) slidesPerView = slidesPerView + 1;\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) needLoopFix = false;\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.find((slideEl)=>slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n requestAnimationFrame(()=>{\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n/* eslint no-unused-vars: \"off\" */ function slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) runCallbacks = true;\n const swiper = this;\n const { enabled, params, animating } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') speed = swiper.params.speed;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\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) return swiper.slideTo(0, speed, runCallbacks, internal);\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */ function slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) runCallbacks = true;\n const swiper = this;\n const { params, snapGrid, slidesGrid, rtlTranslate, enabled, animating } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') speed = swiper.params.speed;\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) // prevSnap = snap;\n prevSnapIndex = snapIndex;\n });\n if (typeof prevSnapIndex !== 'undefined') prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\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/* eslint no-unused-vars: \"off\" */ function slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) runCallbacks = true;\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') speed = swiper.params.speed;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */ function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) runCallbacks = true;\n if (threshold === void 0) threshold = 0.5;\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') speed = swiper.params.speed;\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) index += swiper.params.slidesPerGroup;\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) index -= swiper.params.slidesPerGroup;\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}\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const { params, slidesEl } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex((0, _utilsMjs.e)(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n (0, _utilsMjs.n)(()=>{\n swiper.slideTo(slideToIndex);\n });\n } else swiper.slideTo(slideToIndex);\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex((0, _utilsMjs.e)(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n (0, _utilsMjs.n)(()=>{\n swiper.slideTo(slideToIndex);\n });\n } else swiper.slideTo(slideToIndex);\n } else swiper.slideTo(slideToIndex);\n}\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\nfunction loopCreate(slideRealIndex, initial) {\n const swiper = this;\n const { params, slidesEl } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = ()=>{\n const slides = (0, _utilsMjs.e)(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index)=>{\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = (amountOfSlides)=>{\n for(let i = 0; i < amountOfSlides; i += 1){\n const slideEl = swiper.isElement ? (0, _utilsMjs.c)('swiper-slide', [\n params.slideBlankClass\n ]) : (0, _utilsMjs.c)('div', [\n params.slideClass,\n params.slideBlankClass\n ]);\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 (0, _utilsMjs.u)('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 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 (0, _utilsMjs.u)('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 initSlides();\n } else initSlides();\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next',\n initial\n });\n}\nfunction loopFix(_temp) {\n let { slideRealIndex, slideTo = true, direction, setTranslate, activeSlideIndex, initial, byController, byMousewheel } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const { slides, allowSlidePrev, allowSlideNext, slidesEl, params } = swiper;\n const { centeredSlides, initialSlide } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n else if (swiper.snapIndex === swiper.snapGrid.length - 1) swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\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') slidesPerView = swiper.slidesPerViewDynamic();\n else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) slidesPerView = slidesPerView + 1;\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\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) (0, _utilsMjs.u)('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') (0, _utilsMjs.u)('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\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 && !centeredSlides;\n let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') activeSlideIndex = swiper.getSlideIndex(slides.find((el)=>el.classList.contains(params.slideActiveClass)));\n else activeIndex = activeSlideIndex;\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 + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for(let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1){\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for(let i = slides.length - 1; i >= 0; i -= 1)if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else prependSlidesIndexes.push(cols - index - 1);\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n if (isInitialOverflow) slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n for(let i = 0; i < slidesAppended; i += 1){\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) slides.forEach((slide, slideIndex)=>{\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n else appendSlidesIndexes.push(index);\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)) appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n if (prependSlidesIndexes.includes(activeSlideIndex)) prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n }\n if (isPrev) prependSlidesIndexes.forEach((index)=>{\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n if (isNext) appendSlidesIndexes.forEach((index)=>{\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') swiper.updateSlides();\n else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) swiper.slides.forEach((slide, slideIndex)=>{\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n if (params.watchSlidesProgress) swiper.updateSlidesOffset();\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) 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 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 } 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) 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)) 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) swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n swiper.emit('loopFix');\n}\nfunction loopDestroy() {\n const swiper = this;\n const { params, slidesEl } = 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}\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\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) swiper.__preventObserver__ = true;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) requestAnimationFrame(()=>{\n swiper.__preventObserver__ = false;\n });\n}\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n if (swiper.isElement) swiper.__preventObserver__ = true;\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) requestAnimationFrame(()=>{\n swiper.__preventObserver__ = false;\n });\n}\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) base = this;\n function __closestFrom(el) {\n if (!el || el === (0, _ssrWindowEsmMjs.g)() || el === (0, _ssrWindowEsmMjs.a)()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) return null;\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window1 = (0, _ssrWindowEsmMjs.a)();\n const { params } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window1.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 document1 = (0, _ssrWindowEsmMjs.g)();\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) return;\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) data.touchId = e.targetTouches[0].identifier;\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const { params, touches, enabled } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) return;\n if (!swiper.animating && params.cssMode && params.loop) swiper.loopFix();\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!(0, _utilsMjs.v)(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 // 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) targetEl = eventPath[0];\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\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 // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n if (!preventEdgeSwipe(swiper, e, startX)) return;\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 = (0, _utilsMjs.d)();\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') data.isTouched = false;\n }\n if (document1.activeElement && document1.activeElement.matches(data.focusableElements) && document1.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) document1.activeElement.blur();\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) e.preventDefault();\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) swiper.freeMode.onTouchStart();\n swiper.emit('touchStart', e);\n}\nfunction onTouchMove(event) {\n const document1 = (0, _ssrWindowEsmMjs.g)();\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl, enabled } = 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 = [\n ...e.changedTouches\n ].find((t)=>t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else targetTouch = e;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) swiper.emit('touchMoveOpposite', e);\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)) swiper.allowClick = false;\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = (0, _utilsMjs.d)();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) // Vertical\n {\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())) return;\n else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) return;\n }\n if (document1.activeElement && document1.activeElement.matches(data.focusableElements) && document1.activeElement !== e.target && e.pointerType !== 'mouse') document1.activeElement.blur();\n if (document1.activeElement) {\n if (e.target === document1.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) swiper.emit('touchMove', e);\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) data.isScrolling = false;\n else // 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 if (data.isScrolling) swiper.emit('touchMoveOpposite', e);\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) data.startMoving = true;\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) return;\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) e.stopPropagation();\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) swiper.loopFix({\n direction: swiper.swipeDirection\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)) swiper.setGrabCursor(true);\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) resistanceRatio = 0;\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())) swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\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())) 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 if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n if (disableParentSwiper) e.preventedByNestedSwiper = true;\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) data.currentTranslate = data.startTranslate;\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) data.currentTranslate = data.startTranslate;\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) data.currentTranslate = data.startTranslate;\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 // 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) swiper.freeMode.onTouchMove();\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\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 = [\n ...e.changedTouches\n ].find((t)=>t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if ([\n 'pointercancel',\n 'pointerout',\n 'pointerleave',\n 'contextmenu'\n ].includes(e.type)) {\n const proceed = [\n 'pointercancel',\n 'contextmenu'\n ].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) return;\n }\n data.pointerId = null;\n data.touchId = null;\n const { params, touches, rtlTranslate: rtl, slidesGrid, enabled } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) swiper.emit('touchEnd', e);\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) swiper.setGrabCursor(false);\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) swiper.setGrabCursor(false);\n // Time diff\n const touchEndTime = (0, _utilsMjs.d)();\n const timeDiff = touchEndTime - data.touchStartTime;\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) swiper.emit('doubleTap doubleClick', e);\n }\n data.lastClickTime = (0, _utilsMjs.d)();\n (0, _utilsMjs.n)(()=>{\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) currentPos = rtl ? swiper.translate : -swiper.translate;\n else currentPos = -data.currentTranslate;\n if (params.cssMode) return;\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\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) rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n else if (swiper.isEnd) rewindFirstIndex = 0;\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);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) swiper.slideTo(rewindLastIndex);\n else swiper.slideTo(stopIndex);\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') swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n if (swiper.swipeDirection === 'prev') swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n } else if (e.target === swiper.navigation.nextEl) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n}\nfunction onResize() {\n const swiper = this;\n const { params, el } = swiper;\n if (el && el.offsetWidth === 0) return;\n // Breakpoints\n if (params.breakpoints) swiper.setBreakpoint();\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\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) swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n else if (swiper.params.loop && !isVirtual) swiper.slideToLoop(swiper.realIndex, 0, false, true);\n else swiper.slideTo(swiper.activeIndex, 0, false, true);\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) swiper.autoplay.resume();\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) swiper.checkOverflow();\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}\nfunction onScroll() {\n const swiper = this;\n const { wrapperEl, rtlTranslate, enabled } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) swiper.translate = -wrapperEl.scrollLeft;\n else swiper.translate = -wrapperEl.scrollTop;\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) newProgress = 0;\n else newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n if (newProgress !== swiper.progress) swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n swiper.emit('setTranslate', swiper.translate, false);\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) return;\n swiper.update();\n}\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) swiper.el.style.touchAction = 'auto';\n}\nconst events = (swiper, method)=>{\n const document1 = (0, _ssrWindowEsmMjs.g)();\n const { params, el, wrapperEl, device } = 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 // Touch Events\n document1[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 document1[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document1[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document1[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document1[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document1[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document1[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document1[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document1[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document1[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) el[domMethod]('click', swiper.onClick, true);\n if (params.cssMode) wrapperEl[domMethod]('scroll', swiper.onScroll);\n // Resize handler\n if (params.updateOnWindowResize) swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n else swiper[swiperMethod]('observerUpdate', onResize, true);\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const { params } = 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) swiper.onScroll = onScroll.bind(swiper);\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};\nconst isGridEnabled = (swiper, params)=>{\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const { realIndex, initialized, params, el } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n const document1 = (0, _ssrWindowEsmMjs.g)();\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = [\n 'window',\n 'container'\n ].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document1.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') el.classList.add(`${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) swiper.unsetGrabCursor();\n else if (!wasGrabCursor && isGrabCursor) swiper.setGrabCursor();\n // Toggle navigation, pagination, scrollbar\n [\n 'navigation',\n 'pagination',\n 'scrollbar'\n ].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) swiper[prop].disable();\n if (!wasModuleEnabled && isModuleEnabled) swiper[prop].enable();\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) swiper.changeDirection();\n (0, _utilsMjs.w)(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) swiper.disable();\n else if (!wasEnabled && isEnabled) swiper.enable();\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) swiper.loopDestroy();\n }\n swiper.emit('breakpoint', breakpointParams);\n}\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) base = 'window';\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window1 = (0, _ssrWindowEsmMjs.a)();\n const currentHeight = base === 'window' ? window1.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 { point, value } = points[i];\n if (base === 'window') {\n if (window1.matchMedia(`(min-width: ${value}px)`).matches) breakpoint = point;\n } else if (value <= containerEl.clientWidth) breakpoint = point;\n }\n return breakpoint || 'max';\n}\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach((item)=>{\n if (typeof item === 'object') Object.keys(item).forEach((classNames)=>{\n if (item[classNames]) resultClasses.push(prefix + classNames);\n });\n else if (typeof item === 'string') resultClasses.push(prefix + item);\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const { classNames, params, rtl, el, device } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses([\n 'initialized',\n params.direction,\n {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n },\n {\n 'autoheight': params.autoHeight\n },\n {\n 'rtl': rtl\n },\n {\n 'grid': params.grid && params.grid.rows > 1\n },\n {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n },\n {\n 'android': device.android\n },\n {\n 'ios': device.ios\n },\n {\n 'css-mode': params.cssMode\n },\n {\n 'centered': params.cssMode && params.centeredSlides\n },\n {\n 'watch-progress': params.watchSlidesProgress\n }\n ], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\nfunction removeClasses() {\n const swiper = this;\n const { el, classNames } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\nvar classes = {\n addClasses,\n removeClasses\n};\nfunction checkOverflow() {\n const swiper = this;\n const { isLocked: wasLocked, params } = swiper;\n const { slidesOffsetBefore } = 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 swiper.isLocked = swiper.snapGrid.length === 1;\n if (params.allowSlideNext === true) swiper.allowSlideNext = !swiper.isLocked;\n if (params.allowSlidePrev === true) swiper.allowSlidePrev = !swiper.isLocked;\n if (wasLocked && wasLocked !== swiper.isLocked) swiper.isEnd = false;\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n}\nvar checkOverflow$1 = {\n checkOverflow\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 // 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};\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) obj = {};\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n (0, _utilsMjs.w)(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) params[moduleParamName] = {\n enabled: true\n };\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) params[moduleParamName].auto = true;\n if ([\n 'pagination',\n 'scrollbar'\n ].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) params[moduleParamName].auto = true;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n (0, _utilsMjs.w)(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) params[moduleParamName].enabled = true;\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n (0, _utilsMjs.w)(allModulesParams, obj);\n };\n}\n/* eslint no-param-reassign: \"off\" */ const prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(){\n let el;\n let params;\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++)args[_key] = arguments[_key];\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') params = args[0];\n else [el, params] = args;\n if (!params) params = {};\n params = (0, _utilsMjs.w)({}, params);\n if (el && !params.el) params.el = el;\n const document1 = (0, _ssrWindowEsmMjs.g)();\n if (params.el && typeof params.el === 'string' && document1.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document1.querySelectorAll(params.el).forEach((containerEl)=>{\n const newParams = (0, _utilsMjs.w)({}, 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 // 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 = [\n ...swiper.__modules__\n ];\n if (params.modules && Array.isArray(params.modules)) swiper.modules.push(...params.modules);\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 // Extend defaults with modules params\n const swiperParams = (0, _utilsMjs.w)({}, defaults, allModulesParams);\n // Extend defaults with passed params\n swiper.params = (0, _utilsMjs.w)({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = (0, _utilsMjs.w)({}, swiper.params);\n swiper.passedParams = (0, _utilsMjs.w)({}, params);\n // add event listeners\n if (swiper.params && swiper.params.on) Object.keys(swiper.params.on).forEach((eventName)=>{\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n if (swiper.params && swiper.params.onAny) swiper.onAny(swiper.params.onAny);\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 // Init\n if (swiper.params.init) swiper.init();\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) return property;\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 { slidesEl, params } = this;\n const slides = (0, _utilsMjs.e)(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = (0, _utilsMjs.h)(slides[0]);\n return (0, _utilsMjs.h)(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.find((slideEl)=>slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n }\n recalcSlides() {\n const swiper = this;\n const { slidesEl, params } = swiper;\n swiper.slides = (0, _utilsMjs.e)(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) swiper.setGrabCursor();\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) swiper.unsetGrabCursor();\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter((className)=>{\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter((className)=>{\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach((slideEl)=>{\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) view = 'current';\n if (exact === void 0) exact = false;\n const swiper = this;\n const { params, slides, slidesGrid, slidesSizesGrid, size: swiperSize, activeIndex } = 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)if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n for(let i = activeIndex - 1; i >= 0; i -= 1)if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') 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) spv += 1;\n }\n else // previous\n for(let i = activeIndex - 1; i >= 0; i -= 1){\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) spv += 1;\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) swiper.setBreakpoint();\n [\n ...swiper.el.querySelectorAll('[loading=\"lazy\"]')\n ].forEach((imageEl)=>{\n if (imageEl.complete) processLazyPreloader(swiper, imageEl);\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) swiper.updateAutoHeight();\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 translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n if (!translated) setTranslate();\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) swiper.checkOverflow();\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) needUpdate = true;\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') return swiper;\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') slideEl.style.width = '';\n else slideEl.style.height = '';\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 // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') el = document.querySelector(el);\n if (!el) return false;\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) swiper.isElement = true;\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 (0, _utilsMjs.e)(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = (0, _utilsMjs.c)('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n (0, _utilsMjs.e)(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' || (0, _utilsMjs.p)(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0, _utilsMjs.p)(el, 'direction') === 'rtl'),\n wrongRTL: (0, _utilsMjs.p)(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 // Set breakpoint\n if (swiper.params.breakpoints) swiper.setBreakpoint();\n // Add Classes\n swiper.addClasses();\n // Update size\n swiper.updateSize();\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) swiper.setGrabCursor();\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n else swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n // Create loop\n if (swiper.params.loop) swiper.loopCreate(undefined, true);\n // Attach events\n swiper.attachEvents();\n const lazyElements = [\n ...swiper.el.querySelectorAll('[loading=\"lazy\"]')\n ];\n if (swiper.isElement) lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n lazyElements.forEach((imageEl)=>{\n if (imageEl.complete) processLazyPreloader(swiper, imageEl);\n else imageEl.addEventListener('load', (e)=>{\n processLazyPreloader(swiper, e.target);\n });\n });\n preload(swiper);\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) deleteInstance = true;\n if (cleanStyles === void 0) cleanStyles = true;\n const swiper = this;\n const { params, el, wrapperEl, slides } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) return null;\n swiper.emit('beforeDestroy');\n // Init Flag\n swiper.initialized = false;\n // Detach events\n swiper.detachEvents();\n // Destroy loop\n if (params.loop) swiper.loopDestroy();\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') el.removeAttribute('style');\n if (wrapperEl) wrapperEl.removeAttribute('style');\n if (slides && slides.length) 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 swiper.emit('destroy');\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') swiper.el.swiper = null;\n (0, _utilsMjs.x)(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n (0, _utilsMjs.w)(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) modules.push(mod);\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([\n Resize,\n Observer\n]);\n\n},{\"./ssr-window.esm.mjs\":\"cW1vr\",\"./utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"cW1vr\":[function(require,module,exports,__globalThis) {\n/**\n * SSR Window 5.0.0\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: February 12, 2025\n */ /* eslint-disable no-param-reassign */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"a\", ()=>getWindow);\nparcelHelpers.export(exports, \"g\", ()=>getDocument);\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) target = {};\n if (src === void 0) src = {};\n const noExtend = [\n '__proto__',\n 'constructor',\n 'prototype'\n ];\n Object.keys(src).filter((key)=>noExtend.indexOf(key) < 0).forEach((key)=>{\n if (typeof target[key] === 'undefined') target[key] = src[key];\n else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) extend(target[key], src[key]);\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') return;\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"k3151\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}],\"iCNN6\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"a\", ()=>elementParents);\nparcelHelpers.export(exports, \"b\", ()=>elementOffset);\nparcelHelpers.export(exports, \"c\", ()=>createElement);\nparcelHelpers.export(exports, \"d\", ()=>now);\nparcelHelpers.export(exports, \"e\", ()=>elementChildren);\nparcelHelpers.export(exports, \"f\", ()=>elementOuterSize);\nparcelHelpers.export(exports, \"g\", ()=>getSlideTransformEl);\nparcelHelpers.export(exports, \"h\", ()=>elementIndex);\nparcelHelpers.export(exports, \"i\", ()=>classesToTokens);\nparcelHelpers.export(exports, \"j\", ()=>getTranslate);\nparcelHelpers.export(exports, \"k\", ()=>elementTransitionEnd);\nparcelHelpers.export(exports, \"l\", ()=>isObject);\nparcelHelpers.export(exports, \"m\", ()=>makeElementsArray);\nparcelHelpers.export(exports, \"n\", ()=>nextTick);\nparcelHelpers.export(exports, \"o\", ()=>getRotateFix);\nparcelHelpers.export(exports, \"p\", ()=>elementStyle);\nparcelHelpers.export(exports, \"q\", ()=>elementNextAll);\nparcelHelpers.export(exports, \"r\", ()=>elementPrevAll);\nparcelHelpers.export(exports, \"s\", ()=>setCSSProperty);\nparcelHelpers.export(exports, \"t\", ()=>animateCSSModeScroll);\nparcelHelpers.export(exports, \"u\", ()=>showWarning);\nparcelHelpers.export(exports, \"v\", ()=>elementIsChildOf);\nparcelHelpers.export(exports, \"w\", ()=>extend);\nparcelHelpers.export(exports, \"x\", ()=>deleteProps);\nvar _ssrWindowEsmMjs = require(\"./ssr-window.esm.mjs\");\nfunction classesToTokens(classes) {\n if (classes === void 0) classes = '';\n return classes.trim().split(' ').filter((c)=>!!c.trim());\n}\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key)=>{\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) delay = 0;\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window1 = (0, _ssrWindowEsmMjs.a)();\n let style;\n if (window1.getComputedStyle) style = window1.getComputedStyle(el, null);\n if (!style && el.currentStyle) style = el.currentStyle;\n if (!style) style = el.style;\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) axis = 'x';\n const window1 = (0, _ssrWindowEsmMjs.a)();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window1.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) curTransform = curTransform.split(', ').map((a)=>a.replace(',', '.')).join(', ');\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window1.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 (window1.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window1.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\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') return node instanceof HTMLElement;\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = [\n '__proto__',\n 'constructor',\n 'prototype'\n ];\n for(let i = 1; i < arguments.length; i += 1){\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter((key)=>noExtend.indexOf(key) < 0);\n for(let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1){\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) to[nextKey] = nextSource[nextKey];\n else extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) to[nextKey] = nextSource[nextKey];\n else extend(to[nextKey], nextSource[nextKey]);\n } else to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let { swiper, targetPosition, side } = _ref;\n const window1 = (0, _ssrWindowEsmMjs.a)();\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 window1.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) startTime = time;\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)) currentPosition = targetPosition;\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 window1.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window1.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) selector = '';\n const window1 = (0, _ssrWindowEsmMjs.a)();\n const children = [\n ...element.children\n ];\n if (window1.HTMLSlotElement && element instanceof HTMLSlotElement) children.push(...element.assignedElements());\n if (!selector) return children;\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 = [\n slot\n ];\n while(elementsQueue.length > 0){\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) return true;\n elementsQueue.push(...elementToCheck.children, ...elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : [], ...elementToCheck.assignedElements ? elementToCheck.assignedElements() : []);\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window1 = (0, _ssrWindowEsmMjs.a)();\n let isChild = parent.contains(el);\n if (!isChild && window1.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [\n ...parent.assignedElements()\n ];\n isChild = children.includes(el);\n if (!isChild) isChild = elementIsChildOfSlot(el, parent);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) 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 window1 = (0, _ssrWindowEsmMjs.a)();\n const document1 = (0, _ssrWindowEsmMjs.g)();\n const box = el.getBoundingClientRect();\n const body = document1.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window1 ? window1.scrollY : el.scrollTop;\n const scrollLeft = el === window1 ? window1.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 window1 = (0, _ssrWindowEsmMjs.a)();\n return window1.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)if (child.nodeType === 1) i += 1;\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 parents.push(parent);\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) el.addEventListener('transitionend', fireCallBack);\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window1 = (0, _ssrWindowEsmMjs.a)();\n if (includeMargins) return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window1.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window1.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [\n el\n ]).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) return v + 0.001;\n return v;\n };\n}\n\n},{\"./ssr-window.esm.mjs\":\"cW1vr\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"l6A0v\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"Virtual\", ()=>(0, _virtualMjsDefault.default));\nparcelHelpers.export(exports, \"Keyboard\", ()=>(0, _keyboardMjsDefault.default));\nparcelHelpers.export(exports, \"Mousewheel\", ()=>(0, _mousewheelMjsDefault.default));\nparcelHelpers.export(exports, \"Navigation\", ()=>(0, _navigationMjsDefault.default));\nparcelHelpers.export(exports, \"Pagination\", ()=>(0, _paginationMjsDefault.default));\nparcelHelpers.export(exports, \"Scrollbar\", ()=>(0, _scrollbarMjsDefault.default));\nparcelHelpers.export(exports, \"Parallax\", ()=>(0, _parallaxMjsDefault.default));\nparcelHelpers.export(exports, \"Zoom\", ()=>(0, _zoomMjsDefault.default));\nparcelHelpers.export(exports, \"Controller\", ()=>(0, _controllerMjsDefault.default));\nparcelHelpers.export(exports, \"A11y\", ()=>(0, _a11YMjsDefault.default));\nparcelHelpers.export(exports, \"History\", ()=>(0, _historyMjsDefault.default));\nparcelHelpers.export(exports, \"HashNavigation\", ()=>(0, _hashNavigationMjsDefault.default));\nparcelHelpers.export(exports, \"Autoplay\", ()=>(0, _autoplayMjsDefault.default));\nparcelHelpers.export(exports, \"Thumbs\", ()=>(0, _thumbsMjsDefault.default));\nparcelHelpers.export(exports, \"FreeMode\", ()=>(0, _freeModeMjsDefault.default));\nparcelHelpers.export(exports, \"Grid\", ()=>(0, _gridMjsDefault.default));\nparcelHelpers.export(exports, \"Manipulation\", ()=>(0, _manipulationMjsDefault.default));\nparcelHelpers.export(exports, \"EffectFade\", ()=>(0, _effectFadeMjsDefault.default));\nparcelHelpers.export(exports, \"EffectCube\", ()=>(0, _effectCubeMjsDefault.default));\nparcelHelpers.export(exports, \"EffectFlip\", ()=>(0, _effectFlipMjsDefault.default));\nparcelHelpers.export(exports, \"EffectCoverflow\", ()=>(0, _effectCoverflowMjsDefault.default));\nparcelHelpers.export(exports, \"EffectCreative\", ()=>(0, _effectCreativeMjsDefault.default));\nparcelHelpers.export(exports, \"EffectCards\", ()=>(0, _effectCardsMjsDefault.default));\nvar _virtualMjs = require(\"./virtual.mjs\");\nvar _virtualMjsDefault = parcelHelpers.interopDefault(_virtualMjs);\nvar _keyboardMjs = require(\"./keyboard.mjs\");\nvar _keyboardMjsDefault = parcelHelpers.interopDefault(_keyboardMjs);\nvar _mousewheelMjs = require(\"./mousewheel.mjs\");\nvar _mousewheelMjsDefault = parcelHelpers.interopDefault(_mousewheelMjs);\nvar _navigationMjs = require(\"./navigation.mjs\");\nvar _navigationMjsDefault = parcelHelpers.interopDefault(_navigationMjs);\nvar _paginationMjs = require(\"./pagination.mjs\");\nvar _paginationMjsDefault = parcelHelpers.interopDefault(_paginationMjs);\nvar _scrollbarMjs = require(\"./scrollbar.mjs\");\nvar _scrollbarMjsDefault = parcelHelpers.interopDefault(_scrollbarMjs);\nvar _parallaxMjs = require(\"./parallax.mjs\");\nvar _parallaxMjsDefault = parcelHelpers.interopDefault(_parallaxMjs);\nvar _zoomMjs = require(\"./zoom.mjs\");\nvar _zoomMjsDefault = parcelHelpers.interopDefault(_zoomMjs);\nvar _controllerMjs = require(\"./controller.mjs\");\nvar _controllerMjsDefault = parcelHelpers.interopDefault(_controllerMjs);\nvar _a11YMjs = require(\"./a11y.mjs\");\nvar _a11YMjsDefault = parcelHelpers.interopDefault(_a11YMjs);\nvar _historyMjs = require(\"./history.mjs\");\nvar _historyMjsDefault = parcelHelpers.interopDefault(_historyMjs);\nvar _hashNavigationMjs = require(\"./hash-navigation.mjs\");\nvar _hashNavigationMjsDefault = parcelHelpers.interopDefault(_hashNavigationMjs);\nvar _autoplayMjs = require(\"./autoplay.mjs\");\nvar _autoplayMjsDefault = parcelHelpers.interopDefault(_autoplayMjs);\nvar _thumbsMjs = require(\"./thumbs.mjs\");\nvar _thumbsMjsDefault = parcelHelpers.interopDefault(_thumbsMjs);\nvar _freeModeMjs = require(\"./free-mode.mjs\");\nvar _freeModeMjsDefault = parcelHelpers.interopDefault(_freeModeMjs);\nvar _gridMjs = require(\"./grid.mjs\");\nvar _gridMjsDefault = parcelHelpers.interopDefault(_gridMjs);\nvar _manipulationMjs = require(\"./manipulation.mjs\");\nvar _manipulationMjsDefault = parcelHelpers.interopDefault(_manipulationMjs);\nvar _effectFadeMjs = require(\"./effect-fade.mjs\");\nvar _effectFadeMjsDefault = parcelHelpers.interopDefault(_effectFadeMjs);\nvar _effectCubeMjs = require(\"./effect-cube.mjs\");\nvar _effectCubeMjsDefault = parcelHelpers.interopDefault(_effectCubeMjs);\nvar _effectFlipMjs = require(\"./effect-flip.mjs\");\nvar _effectFlipMjsDefault = parcelHelpers.interopDefault(_effectFlipMjs);\nvar _effectCoverflowMjs = require(\"./effect-coverflow.mjs\");\nvar _effectCoverflowMjsDefault = parcelHelpers.interopDefault(_effectCoverflowMjs);\nvar _effectCreativeMjs = require(\"./effect-creative.mjs\");\nvar _effectCreativeMjsDefault = parcelHelpers.interopDefault(_effectCreativeMjs);\nvar _effectCardsMjs = require(\"./effect-cards.mjs\");\nvar _effectCardsMjsDefault = parcelHelpers.interopDefault(_effectCardsMjs);\n\n},{\"./virtual.mjs\":\"ksHfH\",\"./keyboard.mjs\":\"6i4zy\",\"./mousewheel.mjs\":\"h8Kk7\",\"./navigation.mjs\":\"gE9CK\",\"./pagination.mjs\":\"f3Ptj\",\"./scrollbar.mjs\":\"2ptbx\",\"./parallax.mjs\":\"hE2Ob\",\"./zoom.mjs\":\"anMRg\",\"./controller.mjs\":\"edHpc\",\"./a11y.mjs\":\"fuxnC\",\"./history.mjs\":\"fNhgw\",\"./hash-navigation.mjs\":\"bC62m\",\"./autoplay.mjs\":\"3R40S\",\"./thumbs.mjs\":\"h6fdd\",\"./free-mode.mjs\":\"jNvGI\",\"./grid.mjs\":\"5rWyN\",\"./manipulation.mjs\":\"9i9tM\",\"./effect-fade.mjs\":\"gDO2A\",\"./effect-cube.mjs\":\"ai5LJ\",\"./effect-flip.mjs\":\"dNA5X\",\"./effect-coverflow.mjs\":\"5EI31\",\"./effect-creative.mjs\":\"4bioS\",\"./effect-cards.mjs\":\"gtbWs\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"ksHfH\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Virtual);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction Virtual(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = (0, _ssrWindowEsmMjs.g)();\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]) return swiper.virtual.cache[index];\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) slideEl = (0, _utilsMjs.c)('swiper-slide');\n else slideEl = (0, _utilsMjs.c)('div', swiper.params.slideClass);\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) slideEl.innerHTML = slide;\n if (params.cache) swiper.virtual.cache[index] = slideEl;\n return slideEl;\n }\n function update(force, beforeInit, forceActiveIndex) {\n const { slidesPerView, slidesPerGroup, centeredSlides, loop: isLoop, initialSlide } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) return;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const { from: previousFrom, to: previousTo, slides, slidesGrid: previousSlidesGrid, offset: previousOffset } = swiper.virtual;\n if (!swiper.params.cssMode) swiper.updateActiveIndex();\n const activeIndex = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) swiper.slides.forEach((slideEl)=>{\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\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)slidesToRender.push(slides[i]);\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) onRendered();\n else emit('virtualUpdate');\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = (index)=>{\n let slideIndex = index;\n if (index < 0) slideIndex = slides.length + index;\n else if (slideIndex >= slides.length) // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n return slideIndex;\n };\n if (force) 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)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 const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for(let i = loopFrom; i < loopTo; i += 1)if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) appendIndexes.push(slideIndex);\n else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n appendIndexes.forEach((index)=>{\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) 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 (0, _utilsMjs.e)(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)if (slides[i]) swiper.virtual.slides.push(slides[i]);\n } else swiper.virtual.slides.push(slides);\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)if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else swiper.virtual.slides.unshift(slides);\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) cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\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)) 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) swiper.virtual.cache = {};\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 = [\n ...swiper.slidesEl.children\n ].filter((el)=>el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [\n ...slides\n ];\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) swiper.virtual.slides = swiper.params.virtual.slides;\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 update();\n });\n on('init update resize', ()=>{\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) (0, _utilsMjs.s)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"6i4zy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Keyboard);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\n/* eslint-disable consistent-return */ function Keyboard(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n const document = (0, _ssrWindowEsmMjs.g)();\n const window = (0, _ssrWindowEsmMjs.a)();\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 { rtlTranslate: rtl } = 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)) return false;\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) return false;\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) return undefined;\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) return undefined;\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 ((0, _utilsMjs.a)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0, _utilsMjs.a)(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) return undefined;\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 = (0, _utilsMjs.b)(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [\n [\n swiperOffset.left,\n swiperOffset.top\n ],\n [\n swiperOffset.left + swiperWidth,\n swiperOffset.top\n ],\n [\n swiperOffset.left,\n swiperOffset.top + swiperHeight\n ],\n [\n swiperOffset.left + swiperWidth,\n swiperOffset.top + swiperHeight\n ]\n ];\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();\n 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();\n 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) enable();\n });\n on('destroy', ()=>{\n if (swiper.keyboard.enabled) disable();\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"h8Kk7\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Mousewheel);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\n/* eslint-disable consistent-return */ function Mousewheel(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n const window = (0, _ssrWindowEsmMjs.a)();\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 = (0, _utilsMjs.d)();\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 // Legacy\n if ('detail' in e) sY = e.detail;\n if ('wheelDelta' in e) sY = -e.wheelDelta / 120;\n if ('wheelDeltaY' in e) sY = -e.wheelDeltaY / 120;\n if ('wheelDeltaX' in e) sX = -e.wheelDeltaX / 120;\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) pY = e.deltaY;\n if ('deltaX' in e) pX = e.deltaX;\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 // Fall-back if spin cannot be determined\n if (pX && !sX) sX = pX < 1 ? -1 : 1;\n if (pY && !sY) sY = pY < 1 ? -1 : 1;\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) // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n if (swiper.params.mousewheel.thresholdTime && (0, _utilsMjs.d)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) // Prevent if time between scrolls is below configured threshold\n return false;\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 && (0, _utilsMjs.d)() - lastScrollTime < 60) // Return false as a default\n return true;\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) // Return true to animate scroll on edges\n return true;\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) // Return true to animate scroll on edges\n return true;\n return false;\n }\n function handle(event1) {\n let e = event1;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event1.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) e.preventDefault();\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\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;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\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 // 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: (0, _utilsMjs.d)(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event1\n };\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) recentWheelEvents.shift(); // only store the last N events\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\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) animateSlider(newEvent);\n } else animateSlider(newEvent);\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) return true;\n } else {\n // Freemode or scrollContainer:\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: (0, _utilsMjs.d)(),\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) swiper.updateSlidesClasses();\n if (swiper.params.loop) swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\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) recentWheelEvents.shift(); // only store the last N events\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)) // 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 = (0, _utilsMjs.n)(()=>{\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 if (!timeout) // 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 = (0, _utilsMjs.n)(()=>{\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 // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\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())) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\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) disable();\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', ()=>{\n if (swiper.params.cssMode) enable();\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"gE9CK\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Navigation);\nvar _createElementIfNotDefinedMjs = require(\"../shared/create-element-if-not-defined.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction Navigation(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [\n ...document.querySelectorAll(el)\n ];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) res = swiper.el.querySelector(el);\n else if (res && res.length === 1) res = res[0];\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 = (0, _utilsMjs.m)(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) subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const { nextEl, prevEl } = 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 = (0, _createElementIfNotDefinedMjs.c)(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 = (0, _utilsMjs.m)(nextEl);\n prevEl = (0, _utilsMjs.m)(prevEl);\n const initButton = (el, dir)=>{\n if (el) el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n if (!swiper.enabled && el) el.classList.add(...params.lockClass.split(' '));\n };\n nextEl.forEach((el)=>initButton(el, 'next'));\n prevEl.forEach((el)=>initButton(el, 'prev'));\n }\n function destroy() {\n let { nextEl, prevEl } = swiper.navigation;\n nextEl = (0, _utilsMjs.m)(nextEl);\n prevEl = (0, _utilsMjs.m)(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) // 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 { nextEl, prevEl } = swiper.navigation;\n nextEl = (0, _utilsMjs.m)(nextEl);\n prevEl = (0, _utilsMjs.m)(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [\n ...nextEl,\n ...prevEl\n ].filter((el)=>!!el).forEach((el)=>el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e)=>{\n let { nextEl, prevEl } = swiper.navigation;\n nextEl = (0, _utilsMjs.m)(nextEl);\n prevEl = (0, _utilsMjs.m)(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) targetIsButton = path.find((pathEl)=>nextEl.includes(pathEl) || prevEl.includes(pathEl));\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) isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n else if (prevEl.length) isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n if (isHidden === true) emit('navigationShow');\n else emit('navigationHide');\n [\n ...nextEl,\n ...prevEl\n ].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\n},{\"../shared/create-element-if-not-defined.mjs\":\"aoXpa\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"aoXpa\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"c\", ()=>createElementIfNotDefined);\nvar _utilsMjs = require(\"./utils.mjs\");\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) Object.keys(checkProps).forEach((key)=>{\n if (!params[key] && params.auto === true) {\n let element = (0, _utilsMjs.e)(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = (0, _utilsMjs.c)('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 return params;\n}\n\n},{\"./utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"f3Ptj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Pagination);\nvar _classesToSelectorMjs = require(\"../shared/classes-to-selector.mjs\");\nvar _createElementIfNotDefinedMjs = require(\"../shared/create-element-if-not-defined.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction Pagination(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number)=>number,\n formatFractionTotal: (number)=>number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const { bulletActiveClass } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) return 'next';\n else if (nextIndex === prevIndex - 1) return 'previous';\n return;\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest((0, _classesToSelectorMjs.c)(swiper.params.pagination.bulletClass));\n if (!bulletEl) return;\n e.preventDefault();\n const index = (0, _utilsMjs.h)(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') swiper.slideNext();\n else if (moveDirection === 'previous') swiper.slidePrev();\n else swiper.slideToLoop(index);\n } else swiper.slideTo(index);\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = (0, _utilsMjs.m)(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = (0, _utilsMjs.f)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach((subEl)=>{\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) dynamicBulletIndex = params.dynamicMainBullets - 1;\n else if (dynamicBulletIndex < 0) dynamicBulletIndex = 0;\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach((bulletEl)=>{\n const classesToRemove = [\n ...[\n '',\n '-next',\n '-next-next',\n '-prev',\n '-prev-prev',\n '-main'\n ].map((suffix)=>`${params.bulletActiveClass}${suffix}`)\n ].map((s)=>typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) bullets.forEach((bullet)=>{\n const bulletIndex = (0, _utilsMjs.h)(bullet);\n if (bulletIndex === current) bullet.classList.add(...params.bulletActiveClass.split(' '));\n else if (swiper.isElement) bullet.setAttribute('part', 'bullet');\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n if (bulletIndex === firstIndex) setSideBullets(bullet, 'prev');\n if (bulletIndex === lastIndex) setSideBullets(bullet, 'next');\n }\n });\n else {\n const bullet = bullets[current];\n if (bullet) bullet.classList.add(...params.bulletActiveClass.split(' '));\n if (swiper.isElement) bullets.forEach((bulletEl, bulletIndex)=>{\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for(let i = firstIndex; i <= lastIndex; i += 1)if (bullets[i]) bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach((bullet)=>{\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex)=>{\n if (params.type === 'fraction') {\n subEl.querySelectorAll((0, _classesToSelectorMjs.c)(params.currentClass)).forEach((fractionEl)=>{\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll((0, _classesToSelectorMjs.c)(params.totalClass)).forEach((totalEl)=>{\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n else progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') scaleX = scale;\n else scaleY = scale;\n subEl.querySelectorAll((0, _classesToSelectorMjs.c)(params.progressbarFillClass)).forEach((progressEl)=>{\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = (0, _utilsMjs.m)(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) numberOfBullets = slidesLength;\n for(let i = 0; i < numberOfBullets; i += 1)if (params.renderBullet) paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n else // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n else paginationHTML = `` + ' / ' + ``;\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n else paginationHTML = ``;\n }\n swiper.pagination.bullets = [];\n el.forEach((subEl)=>{\n if (params.type !== 'custom') subEl.innerHTML = paginationHTML || '';\n if (params.type === 'bullets') swiper.pagination.bullets.push(...subEl.querySelectorAll((0, _classesToSelectorMjs.c)(params.bulletClass)));\n });\n if (params.type !== 'custom') emit('paginationRender', el[0]);\n }\n function init() {\n swiper.params.pagination = (0, _createElementIfNotDefinedMjs.c)(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) el = swiper.el.querySelector(params.el);\n if (!el && typeof params.el === 'string') el = [\n ...document.querySelectorAll(params.el)\n ];\n if (!el) el = params.el;\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [\n ...swiper.el.querySelectorAll(params.el)\n ];\n // check if it belongs to another nested Swiper\n if (el.length > 1) el = el.find((subEl)=>{\n if ((0, _utilsMjs.a)(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n if (params.type === 'bullets' && params.clickable) subEl.classList.add(...(params.clickableClass || '').split(' '));\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) params.dynamicMainBullets = 1;\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) subEl.classList.add(params.progressbarOppositeClass);\n if (params.clickable) subEl.addEventListener('click', onBulletClick);\n if (!swiper.enabled) subEl.classList.add(params.lockClass);\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach((subEl)=>subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', ()=>{\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let { el } = swiper.pagination;\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', ()=>{\n if (swiper.params.pagination.enabled === false) // eslint-disable-next-line\n disable();\n else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', ()=>{\n if (typeof swiper.snapIndex === 'undefined') update();\n });\n on('snapIndexChange', ()=>{\n update();\n });\n on('snapGridLengthChange', ()=>{\n render();\n update();\n });\n on('destroy', ()=>{\n destroy();\n });\n on('enable disable', ()=>{\n let { el } = swiper.pagination;\n if (el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', ()=>{\n update();\n });\n on('click', (_s, e)=>{\n const targetEl = e.target;\n const el = (0, _utilsMjs.m)(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) emit('paginationShow');\n else emit('paginationHide');\n el.forEach((subEl)=>subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = ()=>{\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let { el } = swiper.pagination;\n if (el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = ()=>{\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let { el } = swiper.pagination;\n if (el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\n},{\"../shared/classes-to-selector.mjs\":\"8CxfN\",\"../shared/create-element-if-not-defined.mjs\":\"aoXpa\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"8CxfN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"c\", ()=>classesToSelector);\nfunction classesToSelector(classes) {\n if (classes === void 0) classes = '';\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"2ptbx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Scrollbar);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nvar _createElementIfNotDefinedMjs = require(\"../shared/create-element-if-not-defined.mjs\");\nvar _classesToSelectorMjs = require(\"../shared/classes-to-selector.mjs\");\nfunction Scrollbar(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n const document = (0, _ssrWindowEsmMjs.g)();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const { dragEl, el } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) newSize = trackSize + newPos;\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) newSize = trackSize - newPos;\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(()=>{\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar } = swiper;\n const { dragEl, el } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') dragSize = trackSize * divider;\n else dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n if (swiper.isHorizontal()) dragEl.style.width = `${dragSize}px`;\n else dragEl.style.height = `${dragSize}px`;\n if (divider >= 1) el.style.display = 'none';\n else el.style.display = '';\n if (swiper.params.scrollbar.hide) el.style.opacity = 0;\n if (swiper.params.watchOverflow && swiper.enabled) scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const { el } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - (0, _utilsMjs.b)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) positionRatio = 1 - positionRatio;\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const { scrollbar, wrapperEl } = swiper;\n const { el, dragEl } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) el.style.opacity = 1;\n if (swiper.params.cssMode) swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const { scrollbar, wrapperEl } = swiper;\n const { el, dragEl } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();\n else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const { scrollbar, wrapperEl } = swiper;\n const { el } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = (0, _utilsMjs.n)(()=>{\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) swiper.slideToClosest();\n }\n function events(method) {\n const { scrollbar, params } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const { scrollbar, el: swiperEl } = swiper;\n swiper.params.scrollbar = (0, _createElementIfNotDefinedMjs.c)(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) el = swiper.el.querySelector(params.el);\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) el = params.el;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) el = swiperEl.querySelector(params.el);\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector((0, _classesToSelectorMjs.c)(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = (0, _utilsMjs.c)('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) enableDraggable();\n if (el) el.classList[swiper.enabled ? 'remove' : 'add'](...(0, _utilsMjs.i)(swiper.params.scrollbar.lockClass));\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) el.classList.remove(...(0, _utilsMjs.i)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n disableDraggable();\n }\n on('changeDirection', ()=>{\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let { el } = swiper.scrollbar;\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', ()=>{\n if (swiper.params.scrollbar.enabled === false) // eslint-disable-next-line\n disable();\n else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', ()=>{\n updateSize();\n });\n on('setTranslate', ()=>{\n setTranslate();\n });\n on('setTransition', (_s, duration)=>{\n setTransition(duration);\n });\n on('enable disable', ()=>{\n const { el } = swiper.scrollbar;\n if (el) el.classList[swiper.enabled ? 'remove' : 'add'](...(0, _utilsMjs.i)(swiper.params.scrollbar.lockClass));\n });\n on('destroy', ()=>{\n destroy();\n });\n const enable = ()=>{\n swiper.el.classList.remove(...(0, _utilsMjs.i)(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) swiper.scrollbar.el.classList.remove(...(0, _utilsMjs.i)(swiper.params.scrollbar.scrollbarDisabledClass));\n init();\n updateSize();\n setTranslate();\n };\n const disable = ()=>{\n swiper.el.classList.add(...(0, _utilsMjs.i)(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) swiper.scrollbar.el.classList.add(...(0, _utilsMjs.i)(swiper.params.scrollbar.scrollbarDisabledClass));\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/utils.mjs\":\"iCNN6\",\"../shared/create-element-if-not-defined.mjs\":\"aoXpa\",\"../shared/classes-to-selector.mjs\":\"8CxfN\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"hE2Ob\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Parallax);\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction Parallax(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress)=>{\n const { rtl } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n else x = `${x * progress * rtlFactor}px`;\n if (y.indexOf('%') >= 0) y = `${parseInt(y, 10) * progress}%`;\n else y = `${y * progress}px`;\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = ()=>{\n const { el, slides, progress, snapGrid, isElement } = swiper;\n const elements = (0, _utilsMjs.e)(el, elementsSelector);\n if (swiper.isElement) elements.push(...(0, _utilsMjs.e)(swiper.hostEl, elementsSelector));\n elements.forEach((subEl)=>{\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex)=>{\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach((subEl)=>{\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function(duration) {\n if (duration === void 0) duration = swiper.params.speed;\n const { el, hostEl } = swiper;\n const elements = [\n ...el.querySelectorAll(elementsSelector)\n ];\n if (swiper.isElement) elements.push(...hostEl.querySelectorAll(elementsSelector));\n elements.forEach((parallaxEl)=>{\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', ()=>{\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', ()=>{\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', ()=>{\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration)=>{\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\n},{\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"anMRg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Zoom);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction Zoom(_ref) {\n let { swiper, extendParams, on, emit } = _ref;\n const window = (0, _ssrWindowEsmMjs.a)();\n extendParams({\n zoom: {\n enabled: false,\n limitToOriginalSize: false,\n maxRatio: 3,\n minRatio: 1,\n panOnMouseMove: false,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let isPanningWithMouse = false;\n let mousePanStart = {\n x: 0,\n y: 0\n };\n const mousePanSensitivity = -3; // Negative to invert pan direction\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get () {\n return scale;\n },\n set (value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getMaxRatio() {\n const params = swiper.params.zoom;\n const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {\n const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;\n return Math.min(imageMaxRatio, maxRatio);\n }\n return maxRatio;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [\n (evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale,\n (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale\n ];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter((slideEl)=>slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([\n ...swiper.hostEl.querySelectorAll(selector)\n ].filter((containerEl)=>containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') evCache.splice(0, evCache.length);\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) return;\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n gesture.imageEl = imageEl;\n if (imageEl) gesture.imageWrapEl = (0, _utilsMjs.a)(gesture.imageEl, `.${params.containerClass}`)[0];\n else gesture.imageWrapEl = undefined;\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = getMaxRatio();\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex((cachedEv)=>cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) return;\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) return;\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n if (zoom.scale < params.minRatio) zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex((cachedEv)=>cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) return;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n else if (zoom.scale <= 1 && gesture.slideEl) gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n let allowTouchMoveTimeout;\n function allowTouchMove() {\n swiper.touchEventsData.preventTouchMoveFromPointerMove = false;\n }\n function preventTouchMove() {\n clearTimeout(allowTouchMoveTimeout);\n swiper.touchEventsData.preventTouchMoveFromPointerMove = true;\n allowTouchMoveTimeout = setTimeout(()=>{\n if (swiper.destroyed) return;\n allowTouchMove();\n });\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n const isMouseEvent = e.pointerType === 'mouse';\n const isMousePan = isMouseEvent && swiper.params.zoom.panOnMouseMove;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !gesture.slideEl) {\n if (isMousePan) onMouseMove(e);\n return;\n }\n if (isMousePan) {\n onMouseMove(e);\n return;\n }\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n image.startX = (0, _utilsMjs.j)(gesture.imageWrapEl, 'x') || 0;\n image.startY = (0, _utilsMjs.j)(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) swiper.allowClick = false;\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n }\n if (e.cancelable) e.preventDefault();\n e.stopPropagation();\n preventTouchMove();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const { originX, originY } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n if (image.currentX > image.maxX) image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n if (image.currentY < image.minY) image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n if (image.currentY > image.maxY) image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n evCache.length = 0;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n if (gesture.imageWrapEl) gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function onMouseMove(e) {\n // Only pan if zoomed in and mouse panning is enabled\n if (currentScale <= 1 || !gesture.imageWrapEl) return;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const currentTransform = window.getComputedStyle(gesture.imageWrapEl).transform;\n const matrix = new window.DOMMatrix(currentTransform);\n if (!isPanningWithMouse) {\n isPanningWithMouse = true;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = matrix.e;\n image.startY = matrix.f;\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n return;\n }\n const deltaX = (e.clientX - mousePanStart.x) * mousePanSensitivity;\n const deltaY = (e.clientY - mousePanStart.y) * mousePanSensitivity;\n const scaledWidth = image.width * currentScale;\n const scaledHeight = image.height * currentScale;\n const slideWidth = gesture.slideWidth;\n const slideHeight = gesture.slideHeight;\n const minX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n const maxX = -minX;\n const minY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n const maxY = -minY;\n const newX = Math.max(Math.min(image.startX + deltaX, maxX), minX);\n const newY = Math.max(Math.min(image.startY + deltaY, maxY), minY);\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n gesture.imageWrapEl.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = newX;\n image.startY = newY;\n image.currentX = newX;\n image.currentY = newY;\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) gesture.slideEl = (0, _utilsMjs.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n else gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n gesture.imageEl = imageEl;\n if (imageEl) gesture.imageWrapEl = (0, _utilsMjs.a)(gesture.imageEl, `.${params.containerClass}`)[0];\n else gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const prevScale = currentScale;\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n }\n const maxRatio = getMaxRatio();\n zoom.scale = forceZoomRatio || maxRatio;\n currentScale = forceZoomRatio || maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = (0, _utilsMjs.b)(gesture.slideEl).left + window.scrollX;\n offsetY = (0, _utilsMjs.b)(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n if (prevScale > 0 && forceZoomRatio && typeof image.currentX === 'number' && typeof image.currentY === 'number') {\n translateX = image.currentX * zoom.scale / prevScale;\n translateY = image.currentY * zoom.scale / prevScale;\n } else {\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n }\n if (translateX < translateMinX) translateX = translateMinX;\n if (translateX > translateMaxX) translateX = translateMaxX;\n if (translateY < translateMinY) translateY = translateMinY;\n if (translateY > translateMaxY) translateY = translateMaxY;\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n image.currentX = translateX;\n image.currentY = translateY;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) gesture.slideEl = (0, _utilsMjs.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n else gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n gesture.imageEl = imageEl;\n if (imageEl) gesture.imageWrapEl = (0, _utilsMjs.a)(gesture.imageEl, `.${params.containerClass}`)[0];\n else gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n image.currentX = undefined;\n image.currentY = undefined;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n if (swiper.params.zoom.panOnMouseMove) {\n mousePanStart = {\n x: 0,\n y: 0\n };\n if (isPanningWithMouse) {\n isPanningWithMouse = false;\n image.startX = 0;\n image.startY = 0;\n }\n }\n }\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) // Zoom Out\n zoomOut();\n else // Zoom In\n zoomIn(e);\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const { passiveListener, activeListenerWithCapture } = getListeners();\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n [\n 'pointerup',\n 'pointercancel',\n 'pointerout'\n ].forEach((eventName)=>{\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const { passiveListener, activeListenerWithCapture } = getListeners();\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n [\n 'pointerup',\n 'pointercancel',\n 'pointerout'\n ].forEach((eventName)=>{\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', ()=>{\n if (swiper.params.zoom.enabled) enable();\n });\n on('destroy', ()=>{\n disable();\n });\n on('touchStart', (_s, e)=>{\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e)=>{\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e)=>{\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) zoomToggle(e);\n });\n on('transitionEnd', ()=>{\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) onTransitionEnd();\n });\n on('slideChange', ()=>{\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) onTransitionEnd();\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"edHpc\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Controller);\nvar _utilsMjs = require(\"../shared/utils.mjs\");\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */ function Controller(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val)=>{\n minIndex = -1;\n maxIndex = array.length;\n while(maxIndex - minIndex > 1){\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) minIndex = guess;\n else maxIndex = guess;\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) multiplier = 1;\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) controlledTranslate = c.maxTranslate() - controlledTranslate;\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for(let i = 0; i < controlled.length; i += 1)if (controlled[i] !== byController && controlled[i] instanceof Swiper) setControlledTranslate(controlled[i]);\n } else if (controlled instanceof Swiper && byController !== controlled) setControlledTranslate(controlled);\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) (0, _utilsMjs.n)(()=>{\n c.updateAutoHeight();\n });\n (0, _utilsMjs.k)(c.wrapperEl, ()=>{\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for(i = 0; i < controlled.length; i += 1)if (controlled[i] !== byController && controlled[i] instanceof Swiper) setControlledTransition(controlled[i]);\n } else if (controlled instanceof Swiper && byController !== controlled) setControlledTransition(controlled);\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', ()=>{\n if (typeof window !== 'undefined' && // eslint-disable-line\n (typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElements = typeof swiper.params.controller.control === 'string' ? [\n ...document.querySelectorAll(swiper.params.controller.control)\n ] : [\n swiper.params.controller.control\n ];\n controlElements.forEach((controlElement)=>{\n if (!swiper.controller.control) swiper.controller.control = [];\n if (controlElement && controlElement.swiper) swiper.controller.control.push(controlElement.swiper);\n else if (controlElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onControllerSwiper = (e)=>{\n swiper.controller.control.push(e.detail[0]);\n swiper.update();\n controlElement.removeEventListener(eventName, onControllerSwiper);\n };\n controlElement.addEventListener(eventName, onControllerSwiper);\n }\n });\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', ()=>{\n removeSpline();\n });\n on('resize', ()=>{\n removeSpline();\n });\n on('observerUpdate', ()=>{\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController)=>{\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController)=>{\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\n},{\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"fuxnC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>A11y);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _classesToSelectorMjs = require(\"../shared/classes-to-selector.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction A11y(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n containerRole: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n scrollOnFocus: true\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n function getRandomNumber(size) {\n if (size === void 0) size = 16;\n const randomChar = ()=>Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = (0, _utilsMjs.m)(el);\n el.forEach((subEl)=>{\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches((0, _classesToSelectorMjs.c)(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n const prevEls = (0, _utilsMjs.m)(swiper.navigation.prevEl);\n const nextEls = (0, _utilsMjs.m)(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) swiper.slideNext();\n if (swiper.isEnd) notify(params.lastSlideMessage);\n else notify(params.nextSlideMessage);\n }\n if (prevEls.includes(targetEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) swiper.slidePrev();\n if (swiper.isBeginning) notify(params.firstSlideMessage);\n else notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && targetEl.matches((0, _classesToSelectorMjs.c)(swiper.params.pagination.bulletClass))) targetEl.click();\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const { nextEl, prevEl } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach((bulletEl)=>{\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, (0, _utilsMjs.h)(bulletEl) + 1));\n }\n }\n if (bulletEl.matches((0, _classesToSelectorMjs.c)(swiper.params.pagination.bulletActiveClass))) bulletEl.setAttribute('aria-current', 'true');\n else bulletEl.removeAttribute('aria-current');\n });\n }\n const initNavEl = (el, wrapperId, message)=>{\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = (e)=>{\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) preventFocusHandler = true;\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = ()=>{\n preventFocusHandler = false;\n requestAnimationFrame(()=>{\n requestAnimationFrame(()=>{\n if (!swiper.destroyed) swiper.a11y.clicked = false;\n });\n });\n };\n const onVisibilityChange = (e)=>{\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = (e)=>{\n if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) swiper.el.scrollLeft = 0;\n else swiper.el.scrollTop = 0;\n requestAnimationFrame(()=>{\n if (preventFocusHandler) return;\n if (swiper.params.loop) swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);\n else swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n preventFocusHandler = false;\n });\n };\n const initSlides = ()=>{\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n if (params.slideRole) addElRole(swiper.slides, params.slideRole);\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) swiper.slides.forEach((slideEl, index)=>{\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n };\n const init = ()=>{\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n if (params.containerMessage) addElLabel(containerEl, params.containerMessage);\n if (params.containerRole) addElRole(containerEl, params.containerRole);\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n // Slide\n initSlides();\n // Navigation\n let { nextEl, prevEl } = swiper.navigation ? swiper.navigation : {};\n nextEl = (0, _utilsMjs.m)(nextEl);\n prevEl = (0, _utilsMjs.m)(prevEl);\n if (nextEl) nextEl.forEach((el)=>initNavEl(el, wrapperId, params.nextSlideMessage));\n if (prevEl) prevEl.forEach((el)=>initNavEl(el, wrapperId, params.prevSlideMessage));\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = (0, _utilsMjs.m)(swiper.pagination.el);\n paginationEl.forEach((el)=>{\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n // Tab focus\n const document = (0, _ssrWindowEsmMjs.g)();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let { nextEl, prevEl } = swiper.navigation ? swiper.navigation : {};\n nextEl = (0, _utilsMjs.m)(nextEl);\n prevEl = (0, _utilsMjs.m)(prevEl);\n if (nextEl) nextEl.forEach((el)=>el.removeEventListener('keydown', onEnterOrSpaceKey));\n if (prevEl) prevEl.forEach((el)=>el.removeEventListener('keydown', onEnterOrSpaceKey));\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = (0, _utilsMjs.m)(swiper.pagination.el);\n paginationEl.forEach((el)=>{\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = (0, _ssrWindowEsmMjs.g)();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n }\n on('beforeInit', ()=>{\n liveRegion = (0, _utilsMjs.c)('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', ()=>{\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', ()=>{\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', ()=>{\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', ()=>{\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', ()=>{\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/classes-to-selector.mjs\":\"8CxfN\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"fNhgw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>History);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nfunction History(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = (text)=>{\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = (urlOverride)=>{\n const window = (0, _ssrWindowEsmMjs.a)();\n let location;\n if (urlOverride) location = new URL(urlOverride);\n else location = window.location;\n const pathArray = location.pathname.slice(1).split('/').filter((part)=>part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index)=>{\n const window = (0, _ssrWindowEsmMjs.a)();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) location = new URL(swiper.params.url);\n else location = window.location;\n const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${index}\"]`) : swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) value = `${key ? `${key}/` : ''}${value}`;\n if (swiper.params.history.keepQuery) value += location.search;\n const currentState = window.history.state;\n if (currentState && currentState.value === value) return;\n if (swiper.params.history.replaceState) window.history.replaceState({\n value\n }, null, value);\n else window.history.pushState({\n value\n }, null, value);\n };\n const scrollToSlide = (speed, value, runCallbacks)=>{\n if (value) for(let i = 0, length = swiper.slides.length; i < length; i += 1){\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n else swiper.slideTo(0, speed, runCallbacks);\n };\n const setHistoryPopState = ()=>{\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = ()=>{\n const window = (0, _ssrWindowEsmMjs.a)();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) window.addEventListener('popstate', setHistoryPopState);\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) window.addEventListener('popstate', setHistoryPopState);\n };\n const destroy = ()=>{\n const window = (0, _ssrWindowEsmMjs.a)();\n if (!swiper.params.history.replaceState) window.removeEventListener('popstate', setHistoryPopState);\n };\n on('init', ()=>{\n if (swiper.params.history.enabled) init();\n });\n on('destroy', ()=>{\n if (swiper.params.history.enabled) destroy();\n });\n on('transitionEnd _freeModeNoMomentumRelease', ()=>{\n if (initialized) setHistory(swiper.params.history.key, swiper.activeIndex);\n });\n on('slideChange', ()=>{\n if (initialized && swiper.params.cssMode) setHistory(swiper.params.history.key, swiper.activeIndex);\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"bC62m\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>HashNavigation);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction HashNavigation(_ref) {\n let { swiper, extendParams, emit, on } = _ref;\n let initialized = false;\n const document = (0, _ssrWindowEsmMjs.g)();\n const window = (0, _ssrWindowEsmMjs.a)();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex (_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.find((slideEl)=>slideEl.getAttribute('data-hash') === hash);\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex((0, _utilsMjs.e)(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = ()=>{\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = ()=>{\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = ()=>{\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) window.addEventListener('hashchange', onHashChange);\n };\n const destroy = ()=>{\n if (swiper.params.hashNavigation.watchState) window.removeEventListener('hashchange', onHashChange);\n };\n on('init', ()=>{\n if (swiper.params.hashNavigation.enabled) init();\n });\n on('destroy', ()=>{\n if (swiper.params.hashNavigation.enabled) destroy();\n });\n on('transitionEnd _freeModeNoMomentumRelease', ()=>{\n if (initialized) setHash();\n });\n on('slideChange', ()=>{\n if (initialized && swiper.params.cssMode) setHash();\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"3R40S\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Autoplay);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\n/* eslint no-underscore-dangle: \"off\" */ /* eslint no-use-before-define: \"off\" */ function Autoplay(_ref) {\n let { swiper, extendParams, on, emit, params } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) return;\n resume();\n }\n const calcTimeLeft = ()=>{\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) wasPaused = true;\n else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(()=>{\n calcTimeLeft();\n });\n };\n const getSlideDelay = ()=>{\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) activeSlideEl = swiper.slides.find((slideEl)=>slideEl.classList.contains('swiper-slide-active'));\n else activeSlideEl = swiper.slides[swiper.activeIndex];\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = (delayForce)=>{\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = ()=>{\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(()=>{\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(()=>{\n proceed();\n }, delay);\n } else requestAnimationFrame(()=>{\n proceed();\n });\n // eslint-disable-next-line\n return delay;\n };\n const start = ()=>{\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = ()=>{\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset)=>{\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) pausedByInteraction = true;\n const proceed = ()=>{\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n else resume();\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) autoplayTimeLeft = swiper.params.autoplay.delay;\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = ()=>{\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else run();\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = ()=>{\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = (0, _ssrWindowEsmMjs.g)();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') resume();\n };\n const onPointerEnter = (e)=>{\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = (e)=>{\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) resume();\n };\n const attachMouseEvents = ()=>{\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = ()=>{\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = ()=>{\n const document = (0, _ssrWindowEsmMjs.g)();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = ()=>{\n const document = (0, _ssrWindowEsmMjs.g)();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', ()=>{\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', ()=>{\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) stop();\n });\n on('_freeModeStaticRelease', ()=>{\n if (pausedByTouch || pausedByInteraction) resume();\n });\n on('_freeModeNoMomentumRelease', ()=>{\n if (!swiper.params.autoplay.disableOnInteraction) pause(true, true);\n else stop();\n });\n on('beforeTransitionStart', (_s, speed, internal)=>{\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) pause(true, true);\n else stop();\n });\n on('sliderFirstMove', ()=>{\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(()=>{\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', ()=>{\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', ()=>{\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"h6fdd\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Thumb);\nvar _ssrWindowEsmMjs = require(\"../shared/ssr-window.esm.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction Thumb(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n else slideToIndex = clickedIndex;\n if (swiper.params.loop) swiper.slideToLoop(slideToIndex);\n else swiper.slideTo(slideToIndex);\n }\n function init() {\n const { thumbs: thumbsParams } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n if (thumbsParams.swiper.destroyed) {\n initialized = false;\n return false;\n }\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if ((0, _utilsMjs.l)(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) thumbsToActivate = swiper.params.slidesPerView;\n if (!swiper.params.thumbs.multipleActiveThumbs) thumbsToActivate = 1;\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach((slideEl)=>slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) for(let i = 0; i < thumbsToActivate; i += 1)(0, _utilsMjs.e)(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach((slideEl)=>{\n slideEl.classList.add(thumbActiveClass);\n });\n else {\n for(let i = 0; i < thumbsToActivate; i += 1)if (thumbsSwiper.slides[swiper.realIndex + i]) thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.find((slideEl)=>slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`);\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n else newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n } else newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', ()=>{\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = (0, _ssrWindowEsmMjs.g)();\n const getThumbsElementAndInit = ()=>{\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onThumbsSwiper = (e)=>{\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener(eventName, onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener(eventName, onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = ()=>{\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) requestAnimationFrame(watchForThumbsToAppear);\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', ()=>{\n update();\n });\n on('setTransition', (_s, duration)=>{\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', ()=>{\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) thumbsSwiper.destroy();\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\n},{\"../shared/ssr-window.esm.mjs\":\"cW1vr\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"jNvGI\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>freeMode);\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction freeMode(_ref) {\n let { swiper, extendParams, emit, once } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const { touchEventsData: data, touches } = swiper;\n // Velocity\n if (data.velocities.length === 0) data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: (0, _utilsMjs.d)()\n });\n }\n function onTouchEnd(_ref2) {\n let { currentPos } = _ref2;\n if (swiper.params.cssMode) return;\n const { params, wrapperEl, rtlTranslate: rtl, snapGrid, touchEventsData: data } = swiper;\n // Time diff\n const touchEndTime = (0, _utilsMjs.d)();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) swiper.slideTo(snapGrid.length - 1);\n else swiper.slideTo(swiper.slides.length - 1);\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) swiper.velocity = 0;\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (0, _utilsMjs.d)() - lastMoveEvent.time > 300) swiper.velocity = 0;\n } else swiper.velocity = 0;\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) newPosition = swiper.maxTranslate() - bounceAmount;\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else newPosition = swiper.maxTranslate();\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) newPosition = swiper.minTranslate() + bounceAmount;\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else newPosition = swiper.minTranslate();\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for(let j = 0; j < snapGrid.length; j += 1)if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') newPosition = snapGrid[nextSlide];\n else newPosition = snapGrid[nextSlide - 1];\n newPosition = -newPosition;\n }\n if (needsLoopFix) once('transitionEnd', ()=>{\n swiper.loopFix();\n });\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n else momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) momentumDuration = params.speed;\n else if (moveDistance < 2 * currentSlideSize) momentumDuration = params.speed * 1.5;\n else momentumDuration = params.speed * 2.5;\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n (0, _utilsMjs.k)(wrapperEl, ()=>{\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(()=>{\n swiper.setTranslate(afterBouncePosition);\n (0, _utilsMjs.k)(wrapperEl, ()=>{\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n (0, _utilsMjs.k)(wrapperEl, ()=>{\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else swiper.updateProgress(newPosition);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) emit('_freeModeNoMomentumRelease');\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\n},{\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"5rWyN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Grid);\nfunction Grid(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = ()=>{\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n else if (typeof spaceBetween === 'string') spaceBetween = parseFloat(spaceBetween);\n return spaceBetween;\n };\n const initSlides = (slides)=>{\n const { slidesPerView } = swiper.params;\n const { rows, fill } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) slidesNumberEvenToRows = slidesLength;\n else slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n if (slidesPerView !== 'auto' && fill === 'row') slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = ()=>{\n if (swiper.slides) swiper.slides.forEach((slide)=>{\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n };\n const updateSlide = (i, slide, slides)=>{\n const { slidesPerGroup } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const { rows, fill } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid)=>{\n const { centeredSlides, roundLengths } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const { rows } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n if (centeredSlides) {\n const newSlidesGrid = [];\n for(let i = 0; i < snapGrid.length; i += 1){\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = ()=>{\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = ()=>{\n const { params, el } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') el.classList.add(`${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"9i9tM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>Manipulation);\nfunction appendSlide(slides) {\n const swiper = this;\n const { params, slidesEl } = swiper;\n if (params.loop) swiper.loopDestroy();\n const appendElement = (slideEl)=>{\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else slidesEl.append(slideEl);\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for(let i = 0; i < slides.length; i += 1)if (slides[i]) appendElement(slides[i]);\n } else appendElement(slides);\n swiper.recalcSlides();\n if (params.loop) swiper.loopCreate();\n if (!params.observer || swiper.isElement) swiper.update();\n}\nfunction prependSlide(slides) {\n const swiper = this;\n const { params, activeIndex, slidesEl } = swiper;\n if (params.loop) swiper.loopDestroy();\n let newActiveIndex = activeIndex + 1;\n const prependElement = (slideEl)=>{\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else slidesEl.prepend(slideEl);\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for(let i = 0; i < slides.length; i += 1)if (slides[i]) prependElement(slides[i]);\n newActiveIndex = activeIndex + slides.length;\n } else prependElement(slides);\n swiper.recalcSlides();\n if (params.loop) swiper.loopCreate();\n if (!params.observer || swiper.isElement) swiper.update();\n swiper.slideTo(newActiveIndex, 0, false);\n}\nfunction addSlide(index, slides) {\n const swiper = this;\n const { params, activeIndex, slidesEl } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for(let i = baseLength - 1; i >= index; i -= 1){\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for(let i = 0; i < slides.length; i += 1)if (slides[i]) slidesEl.append(slides[i]);\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else slidesEl.append(slides);\n for(let i = 0; i < slidesBuffer.length; i += 1)slidesEl.append(slidesBuffer[i]);\n swiper.recalcSlides();\n if (params.loop) swiper.loopCreate();\n if (!params.observer || swiper.isElement) swiper.update();\n if (params.loop) swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n else swiper.slideTo(newActiveIndex, 0, false);\n}\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const { params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for(let i = 0; i < slidesIndexes.length; i += 1){\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) swiper.loopCreate();\n if (!params.observer || swiper.isElement) swiper.update();\n if (params.loop) swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n else swiper.slideTo(newActiveIndex, 0, false);\n}\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for(let i = 0; i < swiper.slides.length; i += 1)slidesIndexes.push(i);\n swiper.removeSlide(slidesIndexes);\n}\nfunction Manipulation(_ref) {\n let { swiper } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"gDO2A\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>EffectFade);\nvar _effectInitMjs = require(\"../shared/effect-init.mjs\");\nvar _effectTargetMjs = require(\"../shared/effect-target.mjs\");\nvar _effectVirtualTransitionEndMjs = require(\"../shared/effect-virtual-transition-end.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction EffectFade(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = ()=>{\n const { slides } = swiper;\n const params = swiper.params.fadeEffect;\n for(let i = 0; i < slides.length; i += 1){\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = (0, _effectTargetMjs.e)(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = (duration)=>{\n const transformElements = swiper.slides.map((slideEl)=>(0, _utilsMjs.g)(slideEl));\n transformElements.forEach((el)=>{\n el.style.transitionDuration = `${duration}ms`;\n });\n (0, _effectVirtualTransitionEndMjs.e)({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n (0, _effectInitMjs.e)({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: ()=>({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\n},{\"../shared/effect-init.mjs\":\"8u8pZ\",\"../shared/effect-target.mjs\":\"aWvne\",\"../shared/effect-virtual-transition-end.mjs\":\"kGCT2\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"8u8pZ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"e\", ()=>effectInit);\nfunction effectInit(params) {\n const { effect, swiper, on, setTranslate, setTransition, overwriteParams, perspective, recreateShadows, getEffectParams } = params;\n on('beforeInit', ()=>{\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', ()=>{\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration)=>{\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', ()=>{\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach((slideEl)=>{\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach((shadowEl)=>shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', ()=>{\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) requireUpdateOnVirtual = true;\n requestAnimationFrame(()=>{\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"aWvne\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"e\", ()=>effectTarget);\nvar _utilsMjs = require(\"./utils.mjs\");\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = (0, _utilsMjs.g)(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\n},{\"./utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"kGCT2\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"e\", ()=>effectVirtualTransitionEnd);\nvar _utilsMjs = require(\"./utils.mjs\");\nfunction effectVirtualTransitionEnd(_ref) {\n let { swiper, duration, transformElements, allSlides } = _ref;\n const { activeIndex } = swiper;\n const getSlide = (el)=>{\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.find((slideEl)=>slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode);\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) transitionEndTarget = transformElements;\n else transitionEndTarget = transformElements.filter((transformEl)=>{\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n transitionEndTarget.forEach((el)=>{\n (0, _utilsMjs.k)(el, ()=>{\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\n},{\"./utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"ai5LJ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>EffectCube);\nvar _effectInitMjs = require(\"../shared/effect-init.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction EffectCube(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal)=>{\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = (0, _utilsMjs.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = (0, _utilsMjs.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = ()=>{\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach((slideEl)=>{\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = ()=>{\n const { el, wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize, browser } = swiper;\n const r = (0, _utilsMjs.o)(swiper);\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = (0, _utilsMjs.c)('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = (0, _utilsMjs.c)('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for(let i = 0; i < slides.length; i += 1){\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) tx = -tx;\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) createSlideShadows(slideEl, progress, isHorizontal);\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;\n else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = (duration)=>{\n const { el, slides } = swiper;\n slides.forEach((slideEl)=>{\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach((subEl)=>{\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n (0, _effectInitMjs.e)({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: ()=>swiper.params.cubeEffect,\n perspective: ()=>true,\n overwriteParams: ()=>({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\n},{\"../shared/effect-init.mjs\":\"8u8pZ\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"dNA5X\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>EffectFlip);\nvar _createShadowMjs = require(\"../shared/create-shadow.mjs\");\nvar _effectInitMjs = require(\"../shared/effect-init.mjs\");\nvar _effectTargetMjs = require(\"../shared/effect-target.mjs\");\nvar _effectVirtualTransitionEndMjs = require(\"../shared/effect-virtual-transition-end.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction EffectFlip(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress)=>{\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) shadowBefore = (0, _createShadowMjs.c)('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n if (!shadowAfter) shadowAfter = (0, _createShadowMjs.c)('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = ()=>{\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach((slideEl)=>{\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = ()=>{\n const { slides, rtlTranslate: rtl } = swiper;\n const params = swiper.params.flipEffect;\n const rotateFix = (0, _utilsMjs.o)(swiper);\n for(let i = 0; i < slides.length; i += 1){\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) progress = Math.max(Math.min(slideEl.progress, 1), -1);\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) rotateY = -rotateY;\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) createSlideShadows(slideEl, progress);\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;\n const targetEl = (0, _effectTargetMjs.e)(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = (duration)=>{\n const transformElements = swiper.slides.map((slideEl)=>(0, _utilsMjs.g)(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 (0, _effectVirtualTransitionEndMjs.e)({\n swiper,\n duration,\n transformElements\n });\n };\n (0, _effectInitMjs.e)({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: ()=>swiper.params.flipEffect,\n perspective: ()=>true,\n overwriteParams: ()=>({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\n},{\"../shared/create-shadow.mjs\":\"a3Zrk\",\"../shared/effect-init.mjs\":\"8u8pZ\",\"../shared/effect-target.mjs\":\"aWvne\",\"../shared/effect-virtual-transition-end.mjs\":\"kGCT2\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"a3Zrk\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"c\", ()=>createShadow);\nvar _utilsMjs = require(\"./utils.mjs\");\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = (0, _utilsMjs.g)(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = (0, _utilsMjs.c)('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\n},{\"./utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"5EI31\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>EffectCoverflow);\nvar _createShadowMjs = require(\"../shared/create-shadow.mjs\");\nvar _effectInitMjs = require(\"../shared/effect-init.mjs\");\nvar _effectTargetMjs = require(\"../shared/effect-target.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction EffectCoverflow(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = ()=>{\n const { width: swiperWidth, height: swiperHeight, slides, slidesSizesGrid } = 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 = (0, _utilsMjs.o)(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) stretch = parseFloat(params.stretch) / 100 * slideSize;\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 // 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 = (0, _effectTargetMjs.e)(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) shadowBeforeEl = (0, _createShadowMjs.c)('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n if (!shadowAfterEl) shadowAfterEl = (0, _createShadowMjs.c)('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\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)=>(0, _utilsMjs.g)(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 (0, _effectInitMjs.e)({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: ()=>true,\n overwriteParams: ()=>({\n watchSlidesProgress: true\n })\n });\n}\n\n},{\"../shared/create-shadow.mjs\":\"a3Zrk\",\"../shared/effect-init.mjs\":\"8u8pZ\",\"../shared/effect-target.mjs\":\"aWvne\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"4bioS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>EffectCreative);\nvar _createShadowMjs = require(\"../shared/create-shadow.mjs\");\nvar _effectInitMjs = require(\"../shared/effect-init.mjs\");\nvar _effectTargetMjs = require(\"../shared/effect-target.mjs\");\nvar _effectVirtualTransitionEndMjs = require(\"../shared/effect-virtual-transition-end.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction EffectCreative(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [\n 0,\n 0,\n 0\n ],\n rotate: [\n 0,\n 0,\n 0\n ],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [\n 0,\n 0,\n 0\n ],\n rotate: [\n 0,\n 0,\n 0\n ],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = (value)=>{\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = ()=>{\n const { slides, wrapperEl, slidesSizesGrid } = swiper;\n const params = swiper.params.creativeEffect;\n const { progressMultiplier: multiplier } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n const rotateFix = (0, _utilsMjs.o)(swiper);\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for(let i = 0; i < slides.length; i += 1){\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n const offset = slideEl.swiperSlideOffset;\n const t = [\n swiper.params.cssMode ? -offset - swiper.translate : -offset,\n 0,\n 0\n ];\n const r = [\n 0,\n 0,\n 0\n ];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [\n 0,\n 0,\n 0\n ],\n rotate: [\n 0,\n 0,\n 0\n ],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index)=>{\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index)=>{\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) shadowEl = (0, _createShadowMjs.c)('creative', slideEl);\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = (0, _effectTargetMjs.e)(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) targetEl.style.transformOrigin = data.origin;\n }\n };\n const setTransition = (duration)=>{\n const transformElements = swiper.slides.map((slideEl)=>(0, _utilsMjs.g)(slideEl));\n transformElements.forEach((el)=>{\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl)=>{\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n (0, _effectVirtualTransitionEndMjs.e)({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n (0, _effectInitMjs.e)({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: ()=>swiper.params.creativeEffect.perspective,\n overwriteParams: ()=>({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\n},{\"../shared/create-shadow.mjs\":\"a3Zrk\",\"../shared/effect-init.mjs\":\"8u8pZ\",\"../shared/effect-target.mjs\":\"aWvne\",\"../shared/effect-virtual-transition-end.mjs\":\"kGCT2\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}],\"gtbWs\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>EffectCards);\nvar _createShadowMjs = require(\"../shared/create-shadow.mjs\");\nvar _effectInitMjs = require(\"../shared/effect-init.mjs\");\nvar _effectTargetMjs = require(\"../shared/effect-target.mjs\");\nvar _effectVirtualTransitionEndMjs = require(\"../shared/effect-virtual-transition-end.mjs\");\nvar _utilsMjs = require(\"../shared/utils.mjs\");\nfunction EffectCards(_ref) {\n let { swiper, extendParams, on } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = ()=>{\n const { slides, activeIndex, rtlTranslate: rtl } = swiper;\n const params = swiper.params.cardsEffect;\n const { startTranslate, isTouched } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for(let i = 0; i < slides.length; i += 1){\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n if (swiper.params.centeredSlides && swiper.params.cssMode) offset -= slides[0].swiperSlideOffset;\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n else if (progress > 0) // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n else tX = `${tX}px`;\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n /* eslint-disable */ const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */ if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) shadowEl = (0, _createShadowMjs.c)('cards', slideEl);\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = (0, _effectTargetMjs.e)(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = (duration)=>{\n const transformElements = swiper.slides.map((slideEl)=>(0, _utilsMjs.g)(slideEl));\n transformElements.forEach((el)=>{\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl)=>{\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n (0, _effectVirtualTransitionEndMjs.e)({\n swiper,\n duration,\n transformElements\n });\n };\n (0, _effectInitMjs.e)({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: ()=>true,\n overwriteParams: ()=>({\n _loopSwapReset: false,\n watchSlidesProgress: true,\n loopAdditionalSlides: swiper.params.cardsEffect.rotate ? 3 : 2,\n centeredSlides: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\n},{\"../shared/create-shadow.mjs\":\"a3Zrk\",\"../shared/effect-init.mjs\":\"8u8pZ\",\"../shared/effect-target.mjs\":\"aWvne\",\"../shared/effect-virtual-transition-end.mjs\":\"kGCT2\",\"../shared/utils.mjs\":\"iCNN6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"k3151\"}]},[\"itwxF\"], \"itwxF\", \"parcelRequire8370\")\n\n//# sourceMappingURL=swiper.js.map\n","import Swiper from \"swiper\";\nimport { Navigation } from \"swiper/modules\";\n\nwindow.addEventListener('DOMContentLoaded', (event) => {\n initSwiper();\n});\n\n/**\n * Tries to determine various settings for the carousel based on classes on parent elements.\n * Not ideal solution, but as this was controlled by CSS seems like best fit.\n * @param {Element} wrapper\n * @returns \n */\nconst getSettings = (container) => {\n // Default sizes\n let settingsObj = {\n mobile: {\n slides: 1.2\n },\n tablet: {\n slides: 1\n },\n desktop: {\n slides: 1\n }\n }\n const wrapper = container.querySelector('.swiper-wrapper');\n if (!wrapper) {\n return settingsObj;\n }\n\n const containerWidth = container.clientWidth;\n\n // Home page only has 1 carousel, save doing tree walk if we find this\n if (!!document.querySelector('#page--home .content__featured-media')) {\n settingsObj.mobile.slides = containerWidth / 238;\n settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 300;\n return settingsObj;\n }\n\n const classes = [];\n try {\n let parent = wrapper.parentNode;\n\n while (!!parent) {\n if (parent.tagName === \"BODY\") {\n parent = null;\n break;\n }\n\n parent.classList.forEach((value, idx, obj) => {\n obj?.forEach((c) => {\n classes.push(c);\n })\n });\n\n parent = parent.parentNode;\n }\n\n if (classes.indexOf('content__featured-content-promotions') > -1) {\n settingsObj.mobile.slides = settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 275;\n }\n else if (classes.indexOf('content__featured-item-promotions') > -1\n && classes.indexOf('promotions') > -1) {\n const nintyPct = containerWidth * 0.9;\n settingsObj.mobile.slides = nintyPct < 238 ? 1.1 : containerWidth / 250;\n settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 295;\n }\n else if (classes.indexOf('content__featured-media') > -1\n || (classes.indexOf('content__featured-item-attractions') > -1\n && classes.indexOf('promotions') > -1)) {\n const nintyPct = containerWidth * 0.9;\n settingsObj.mobile.slides = nintyPct < 238 ? 1.1 : containerWidth / 250;\n settingsObj.tablet.slides = settingsObj.desktop.slides = containerWidth / 615;\n }\n } catch (er) {\n console.error(er);\n }\n\n return settingsObj;\n}\n\nconst initSwiper = () => {\n document.querySelectorAll('.swiper')?.forEach((elem) => {\n const slides = elem.querySelectorAll('.swiper-slide') || [];\n // If no slides just exit\n if (!slides.length) {\n return 0;\n }\n\n const settings = getSettings(elem);\n\n if (slides.length == 1) {\n // If only 1 slide, don't try to loop or add navigation\n new Swiper(elem, {\n spaceBetween: 15,\n slidesPerView: settings.mobile.slides,\n breakpoints: {\n 768: {\n slidesPerView: settings.tablet.slides\n },\n 1024: {\n slidesPerView: settings.desktop.slides\n }\n }\n });\n } else {\n // If more than 1 slide, use looping version with navigation\n new Swiper(elem, {\n modules: [Navigation],\n grabCursor: true,\n spaceBetween: 15,\n loop: slides.length > settings.mobile.slides,\n loopAddBlankSlides: true,\n slidesPerView: settings.mobile.slides,\n watchOverflow: true,\n navigation: {\n nextEl: '.swiper-button--next',\n prevEl: '.swiper-button--prev',\n },\n breakpoints: {\n 768: {\n loop: slides.length > settings.tablet.slides,\n slidesPerView: settings.tablet.slides\n },\n 1024: {\n loop: slides.length > settings.desktop.slides,\n slidesPerView: settings.desktop.slides\n }\n }\n });\n }\n });\n}","/**\n * Swiper 11.2.6\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: March 19, 2025\n */\n\nexport { S as Swiper, S as default } from './shared/swiper-core.mjs';\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n 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, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n 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, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex, 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 gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next',\n initial\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n initial,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides,\n initialSlide\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides || 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 && !centeredSlides;\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 + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n 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) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (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, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate(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, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","/**\n * SSR Window 5.0.0\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: February 12, 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 if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\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","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? 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 if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","export {default as Virtual} from './virtual.mjs';\nexport {default as Keyboard} from './keyboard.mjs';\nexport {default as Mousewheel} from './mousewheel.mjs';\nexport {default as Navigation} from './navigation.mjs';\nexport {default as Pagination} from './pagination.mjs';\nexport {default as Scrollbar} from './scrollbar.mjs';\nexport {default as Parallax} from './parallax.mjs';\nexport {default as Zoom} from './zoom.mjs';\nexport {default as Controller} from './controller.mjs';\nexport {default as A11y} from './a11y.mjs';\nexport {default as History} from './history.mjs';\nexport {default as HashNavigation} from './hash-navigation.mjs';\nexport {default as Autoplay} from './autoplay.mjs';\nexport {default as Thumbs} from './thumbs.mjs';\nexport {default as FreeMode} from './free-mode.mjs';\nexport {default as Grid} from './grid.mjs';\nexport {default as Manipulation} from './manipulation.mjs';\nexport {default as EffectFade} from './effect-fade.mjs';\nexport {default as EffectCube} from './effect-cube.mjs';\nexport {default as EffectFlip} from './effect-flip.mjs';\nexport {default as EffectCoverflow} from './effect-coverflow.mjs';\nexport {default as EffectCreative} from './effect-creative.mjs';\nexport {default as EffectCards} from './effect-cards.mjs';","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force, beforeInit, forceActiveIndex) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop,\n initialSlide\n } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) {\n return;\n }\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`)).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n update(false, true);\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { 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 classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.find(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, j as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n limitToOriginalSize: false,\n maxRatio: 3,\n minRatio: 1,\n panOnMouseMove: false,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let isPanningWithMouse = false;\n let mousePanStart = {\n x: 0,\n y: 0\n };\n const mousePanSensitivity = -3; // Negative to invert pan direction\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getMaxRatio() {\n const params = swiper.params.zoom;\n const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {\n const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;\n return Math.min(imageMaxRatio, maxRatio);\n }\n return maxRatio;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = getMaxRatio();\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n let allowTouchMoveTimeout;\n function allowTouchMove() {\n swiper.touchEventsData.preventTouchMoveFromPointerMove = false;\n }\n function preventTouchMove() {\n clearTimeout(allowTouchMoveTimeout);\n swiper.touchEventsData.preventTouchMoveFromPointerMove = true;\n allowTouchMoveTimeout = setTimeout(() => {\n if (swiper.destroyed) return;\n allowTouchMove();\n });\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n const isMouseEvent = e.pointerType === 'mouse';\n const isMousePan = isMouseEvent && swiper.params.zoom.panOnMouseMove;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {\n return;\n }\n const zoom = swiper.zoom;\n if (!gesture.imageEl) {\n return;\n }\n if (!image.isTouched || !gesture.slideEl) {\n if (isMousePan) onMouseMove(e);\n return;\n }\n if (isMousePan) {\n onMouseMove(e);\n return;\n }\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n preventTouchMove();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n evCache.length = 0;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function onMouseMove(e) {\n // Only pan if zoomed in and mouse panning is enabled\n if (currentScale <= 1 || !gesture.imageWrapEl) return;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const currentTransform = window.getComputedStyle(gesture.imageWrapEl).transform;\n const matrix = new window.DOMMatrix(currentTransform);\n if (!isPanningWithMouse) {\n isPanningWithMouse = true;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = matrix.e;\n image.startY = matrix.f;\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n return;\n }\n const deltaX = (e.clientX - mousePanStart.x) * mousePanSensitivity;\n const deltaY = (e.clientY - mousePanStart.y) * mousePanSensitivity;\n const scaledWidth = image.width * currentScale;\n const scaledHeight = image.height * currentScale;\n const slideWidth = gesture.slideWidth;\n const slideHeight = gesture.slideHeight;\n const minX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n const maxX = -minX;\n const minY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n const maxY = -minY;\n const newX = Math.max(Math.min(image.startX + deltaX, maxX), minX);\n const newY = Math.max(Math.min(image.startY + deltaY, maxY), minY);\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n gesture.imageWrapEl.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = newX;\n image.startY = newY;\n image.currentX = newX;\n image.currentY = newY;\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const prevScale = currentScale;\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n }\n const maxRatio = getMaxRatio();\n zoom.scale = forceZoomRatio || maxRatio;\n currentScale = forceZoomRatio || maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n if (prevScale > 0 && forceZoomRatio && typeof image.currentX === 'number' && typeof image.currentY === 'number') {\n translateX = image.currentX * zoom.scale / prevScale;\n translateY = image.currentY * zoom.scale / prevScale;\n } else {\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n }\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n image.currentX = translateX;\n image.currentY = translateY;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n image.currentX = undefined;\n image.currentY = undefined;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n if (swiper.params.zoom.panOnMouseMove) {\n mousePanStart = {\n x: 0,\n y: 0\n };\n if (isPanningWithMouse) {\n isPanningWithMouse = false;\n image.startX = 0;\n image.startY = 0;\n }\n }\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, k as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];\n controlElements.forEach(controlElement => {\n if (!swiper.controller.control) swiper.controller.control = [];\n if (controlElement && controlElement.swiper) {\n swiper.controller.control.push(controlElement.swiper);\n } else if (controlElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onControllerSwiper = e => {\n swiper.controller.control.push(e.detail[0]);\n swiper.update();\n controlElement.removeEventListener(eventName, onControllerSwiper);\n };\n controlElement.addEventListener(eventName, onControllerSwiper);\n }\n });\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, h as elementIndex, m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n containerRole: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n scrollOnFocus: true\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n const prevEls = makeElementsArray(swiper.navigation.prevEl);\n const nextEls = makeElementsArray(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (prevEls.includes(targetEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = e => {\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n preventFocusHandler = true;\n }\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n preventFocusHandler = false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const onVisibilityChange = e => {\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n requestAnimationFrame(() => {\n if (preventFocusHandler) return;\n if (swiper.params.loop) {\n swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);\n } else {\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n }\n preventFocusHandler = false;\n });\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n if (params.containerRole) {\n addElRole(containerEl, params.containerRole);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${index}\"]`) : swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.find(slideEl => slideEl.getAttribute('data-hash') === hash);\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { l as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n if (thumbsParams.swiper.destroyed) {\n initialized = false;\n return false;\n }\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`);\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener(eventName, onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener(eventName, onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","import { d as now, k as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { g as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { k as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.find(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode);\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const r = getRotateFix(swiper);\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n const rotateFix = getRotateFix(swiper);\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { 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, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n const r = getRotateFix(swiper);\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n const rotateFix = getRotateFix(swiper);\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n _loopSwapReset: false,\n watchSlidesProgress: true,\n loopAdditionalSlides: swiper.params.cardsEffect.rotate ? 3 : 2,\n centeredSlides: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n"],"names":["modules","entry","mainEntry","parcelRequireName","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","_swiper","_swiperDefault","interopDefault","_modules","addEventListener","event","initSwiper","getSettings","container","settingsObj","mobile","slides","tablet","desktop","wrapper","querySelector","containerWidth","clientWidth","document","classes","parentNode","tagName","classList","forEach","value","idx","obj","c","push","indexOf","nintyPct","er","console","error","querySelectorAll","elem","settings","default","spaceBetween","slidesPerView","breakpoints","Navigation","grabCursor","loop","loopAddBlankSlides","watchOverflow","navigation","nextEl","prevEl","defineInteropFlag","export","_swiperCoreMjs","S","support","deviceCached","browser","Swiper","defaults","_ssrWindowEsmMjs","_utilsMjs","getSupport","calcSupport","window1","a","document1","g","smoothScroll","documentElement","style","touch","DocumentTouch","getDevice","overrides","calcDevice","_temp","userAgent","platform","navigator","ua","device","ios","android","screenWidth","screen","width","screenHeight","height","match","ipad","ipod","iphone","macos","iPadScreens","os","getBrowser","calcBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","split","map","num","Number","isWebView","test","isSafariBrowser","need3dFix","toggleSlideClasses$1","slideEl","condition","className","contains","add","remove","toggleSlideClasses","processLazyPreloader","swiper","imageEl","destroyed","params","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","requestAnimationFrame","unlazy","index","removeAttribute","preload","amount","lazyPreloadPrevNext","len","Math","min","slidesPerViewDynamic","ceil","activeIndex","grid","rows","preloadColumns","activeColumn","Array","from","_","column","slideIndexLastInView","rewind","realIndex","max","transitionEmit","_ref","runCallbacks","direction","step","previousIndex","dir","emit","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","preventDefault","onTouchStart","e","originalEvent","data","touchEventsData","type","pointerId","targetTouches","touchId","identifier","pageX","touches","enabled","simulateTouch","pointerType","animating","preventInteractionOnTransition","cssMode","loopFix","targetEl","target","touchEventsTarget","v","wrapperEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","noSwipingSelector","isTargetShadow","noSwiping","closestElement","selector","base","__closestFrom","el","assignedSlot","found","getRootNode","host","allowClick","swipeHandler","currentX","currentY","pageY","startY","assign","allowTouchCallbacks","isScrolling","undefined","startMoving","touchStartTime","d","updateSize","swipeDirection","threshold","allowThresholdMove","matches","focusableElements","nodeName","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","loopFixed","rtlTranslate","rtl","changedTouches","find","t","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","translate","maxTranslate","minTranslate","previousX","previousY","diffX","diffY","sqrt","touchAngle","isHorizontal","atan2","abs","PI","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","nested","stopPropagation","diff","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","allowSlideNext","allowSlidePrev","startTranslate","getTranslate","setTransition","evt","CustomEvent","bubbles","detail","bySwiperTouchMove","dispatchEvent","allowMomentumBounce","setGrabCursor","Date","getTime","_loopSwapReset","currentTranslate","loopSwapReset","disableParentSwiper","resistanceRatio","centeredSlides","slidesSizesGrid","setTranslate","activeSlideIndex","resistance","parseFloat","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","updateProgress","onTouchEnd","currentPos","slidesGrid","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","n","swipeToLast","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","increment","rewindFirstIndex","rewindLastIndex","isBeginning","virtual","isEnd","ratio","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","onResize","offsetWidth","setBreakpoint","snapGrid","isVirtual","updateSlides","isVirtualLoop","slideToLoop","autoplay","running","paused","clearTimeout","resizeTimeout","setTimeout","resume","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","scrollLeft","scrollTop","translatesDiff","progress","onLoad","autoHeight","update","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","events","method","capture","domMethod","passive","updateOnWindowResize","isGridEnabled","init","swiperElementNodeName","initialSlide","speed","resizeObserver","createElements","eventsPrefix","url","setWrapperSize","virtualTranslate","effect","breakpointsBase","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","uniqueNavElements","slideToClickedSlide","loopAdditionalSlides","loopPreventsSliding","passiveListeners","maxBackfaceHiddenSlides","containerModifierClass","slideBlankClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","eventsEmitter","on","handler","priority","eventsListeners","once","onceHandler","off","__emitterProxy","_len","arguments","args","_key","apply","onAny","eventsAnyListeners","offAny","splice","eventHandler","context","_len2","_key2","isArray","slice","unshift","eventsArray","clientHeight","parseInt","p","isNaN","size","slideSize","getDirectionPropertyValue","node","label","getPropertyValue","getDirectionLabel","slidesEl","swiperSize","wrongRTL","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","replace","virtualSize","marginLeft","marginRight","marginBottom","marginTop","s","gridEnabled","initSlides","unsetSlides","shouldResetSlideSize","keys","filter","key","slide","updateSlide","slideStyles","getComputedStyle","currentTransform","transform","currentWebKitTransform","webkitTransform","f","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","originalProgress","multiplier","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","activeSlide","prevSlide","nextSlide","getFilteredSlide","q","r","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","getAttribute","initialized","pathEl","slideFound","clickedSlide","clickedIndex","axis","j","byController","y","translateTo","translateBounds","internal","newTranslate","isH","targetPosition","side","scrollTo","behavior","onTranslateToWrapperTransitionEnd","removeEventListener","transition","duration","transitionDuration","transitionDelay","transitionStart","transitionEnd","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","scrollSnapType","_immediateVirtual","_cssModeVirtualInitialSet","onSlideToWrapperTransitionEnd","newIndex","targetSlideIndex","cols","needLoopFix","slideRealIndex","slideNext","perGroup","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","isFreeMode","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","append","recalcSlides","u","setAttribute","byMousewheel","fill","prependSlidesIndexes","appendSlidesIndexes","isInitialOverflow","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","activeColIndex","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","newSlideTranslate","shift","controller","control","loopParams","constructor","loopDestroy","newSlidesOrder","swiperSlideIndex","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpointContainer","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","breakpointOnlyParams","originalParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","prop","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","w","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","substr","sort","b","matchMedia","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","prepareClasses","entries","prefix","resultClasses","item","removeClasses","extendedDefaults","prototype","toString","swipers","newParams","__swiper__","__modules__","allModulesParams","mod","extendParams","moduleParamName","moduleParams","auto","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","h","setProgress","current","cls","join","getSlideClasses","updates","view","exact","spv","breakLoop","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","element","mounted","toUpperCase","getWrapperSelector","trim","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","createObserver","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","cancelAnimationFrame","unobserve","orientationChangeHandler","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","isObject","extend","src","noExtend","getWindow","getDocument","ssrDocument","body","getElementById","createEvent","initEvent","createElement","children","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","hostname","href","origin","pathname","protocol","search","doc","ssrWindow","history","replaceState","pushState","go","back","Image","callback","win","__esModule","exportAll","source","dest","hasOwnProperty","enumerable","destName","elementParents","elementOffset","now","elementChildren","elementOuterSize","getSlideTransformEl","elementIndex","classesToTokens","elementTransitionEnd","makeElementsArray","nextTick","getRotateFix","elementStyle","elementNextAll","elementPrevAll","setCSSProperty","animateCSSModeScroll","showWarning","elementIsChildOf","to","nextSource","HTMLElement","nodeType","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","deleteProps","object","delay","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","o","varName","varValue","setProperty","time","startPosition","startTime","cssModeFrameID","isOutOfBound","animate","currentPosition","easeProgress","cos","overflow","HTMLSlotElement","assignedElements","isChild","elementIsChildOfSlot","slot","elementsQueue","elementToCheck","text","warn","tag","box","getBoundingClientRect","clientTop","scrollY","scrollX","top","left","prevEls","previousElementSibling","prev","nextEls","nextElementSibling","next","child","previousSibling","parents","parentElement","fireCallBack","includeMargins","_virtualMjsDefault","_keyboardMjsDefault","_mousewheelMjsDefault","_navigationMjsDefault","_paginationMjsDefault","_scrollbarMjsDefault","_parallaxMjsDefault","_zoomMjsDefault","_controllerMjsDefault","_a11YMjsDefault","_historyMjsDefault","_hashNavigationMjsDefault","_autoplayMjsDefault","_thumbsMjsDefault","_freeModeMjsDefault","_gridMjsDefault","_manipulationMjsDefault","_effectFadeMjsDefault","_effectCubeMjsDefault","_effectFlipMjsDefault","_effectCoverflowMjsDefault","_effectCreativeMjsDefault","_effectCardsMjsDefault","_virtualMjs","_keyboardMjs","_mousewheelMjs","_navigationMjs","_paginationMjs","_scrollbarMjs","_parallaxMjs","_zoomMjs","_controllerMjs","_a11YMjs","_historyMjs","_hashNavigationMjs","_autoplayMjs","_thumbsMjs","_freeModeMjs","_gridMjs","_manipulationMjs","_effectFadeMjs","_effectCubeMjs","_effectFlipMjs","_effectCoverflowMjs","_effectCreativeMjs","_effectCardsMjs","Virtual","cssModeTimeout","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","offset","tempDOM","innerHTML","force","beforeInit","forceActiveIndex","offsetProp","previousFrom","previousTo","previousSlidesGrid","previousOffset","onRendered","slidesToRender","prependIndexes","appendIndexes","loopFrom","loopTo","domSlidesAssigned","appendSlide","prependSlide","numberOfNewSlides","newCache","cachedIndex","cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","timeout","lastEventBeforeSnap","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","noMousewheelClass","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","event1","sX","sY","pX","pY","targetElContainsTarget","rtlFactor","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","positions","sign","ignoreWheelEvents","position","sticky","prevEvent","firstEvent","snapToThreshold","disableOnInteraction","stop","releaseScroll","_createElementIfNotDefinedMjs","getEl","toggleEl","disabled","subEl","disabledClass","lockClass","onPrevClick","onNextClick","initButton","destroyButton","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetIsButton","isHidden","pagination","clickable","toggle","createElementIfNotDefined","checkProps","Pagination","_classesToSelectorMjs","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","moveDirection","total","firstIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","classesToSelector","Scrollbar","dragStartPos","dragSize","trackSize","divider","dragTimeout","scrollbar","dragEl","newSize","newPos","hide","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","passiveListener","eventMethod","swiperEl","dragClass","draggable","scrollbarDisabledClass","Parallax","parallax","elementsSelector","setTransform","rotate","currentOpacity","currentScale","elements","parallaxEl","parallaxDuration","Zoom","fakeGestureTouched","fakeGestureMoved","allowTouchMoveTimeout","zoom","limitToOriginalSize","maxRatio","minRatio","panOnMouseMove","containerClass","zoomedSlideClass","isScaling","isPanningWithMouse","mousePanStart","evCache","gesture","originX","originY","slideWidth","slideHeight","imageWrapEl","image","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","getMaxRatio","naturalWidth","eventWithinSlide","eventWithinZoomContainer","onGestureStart","scaleStart","getScaleOrigin","onGestureChange","pointerIndex","findIndex","cachedEv","scaleMove","onGestureEnd","isMousePan","isMouseEvent","onMouseMove","scaledWidth","scaledHeight","scaleRatio","onTransitionEnd","DOMMatrix","newX","newY","zoomIn","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","prevScale","forceZoomRatio","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","set","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","Controller","LinearSpline","i1","i3","maxIndex","minIndex","guess","binarySearch","array","interpolate","removeSpline","spline","inverse","by","controlElements","controlElement","onControllerSwiper","_t","controlledTranslate","controlled","setControlledTranslate","isFinite","setControlledTransition","k","A11y","preventFocusHandler","focusTargetSlideEl","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","containerRole","itemRoleDescriptionMessage","slideRole","scrollOnFocus","clicked","liveRegion","visibilityChangedTimestamp","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","click","hasPagination","hasClickablePagination","initNavEl","wrapperId","addElControls","controls","handlePointerDown","handlePointerUp","onVisibilityChange","handleFocus","isActive","sourceCapabilities","firesTouchEvents","repeat","round","random","live","addElId","addElLive","paginationEl","updateNavigation","updatePagination","History","root","keepQuery","paths","slugify","getPathValues","urlOverride","pathArray","URL","part","setHistory","currentState","state","scrollToSlide","slideHistory","setHistoryPopState","hashNavigation","HashNavigation","watchState","slideWithHash","onHashChange","newHash","activeSlideEl","setHash","activeSlideHash","Autoplay","raf","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","timeLeft","waitForTransition","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","calcTimeLeft","getSlideDelay","run","delayForce","currentSlideDelay","proceed","start","pause","reset","visibilityState","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","l","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","newThumbsIndex","currentThumbsIndex","newThumbsSlide","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","afterBouncePosition","needsLoopFix","lastMoveEvent","pop","velocityEvent","distance","momentumDistance","newPosition","doBounce","bounceAmount","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","swiperSlideGridSet","newSlideOrderIndex","row","groupIndex","slideIndexInGroup","columnsInGroup","order","appendElement","prependElement","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","indexToRemove","Manipulation","EffectFade","_effectInitMjs","_effectTargetMjs","_effectVirtualTransitionEndMjs","fadeEffect","crossFade","tx","ty","slideOpacity","transformElements","allSlides","overwriteParams","effectInit","requireUpdateOnVirtual","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","shadowEl","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","getSlide","transitionEndTarget","eventTriggered","EffectCube","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","cubeShadowEl","wrapperRotate","slideAngle","tz","transformOrigin","shadowAngle","sin","scale1","scale2","zFactor","EffectFlip","_createShadowMjs","flipEffect","limitRotation","rotateFix","rotateY","rotateX","zIndex","createShadow","shadowClass","shadowContainer","EffectCoverflow","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","shadowBeforeEl","shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","EffectCards","cardsEffect","perSlideRotate","perSlideOffset","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY"],"version":3,"file":"swiper.js.map"}