{"version":3,"file":"/js/app.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///./resources/js/app.js","webpack:///./resources/js/faders.js","webpack:///./resources/js/floatfooter.js","webpack:///./resources/js/form-ajax-replace.js","webpack:///./resources/js/glide.js","webpack:///./resources/js/gsap-animations.js","webpack:///./resources/js/menu.js","webpack:///./resources/js/scrolllinks.js","webpack:///./node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///./node_modules/swiper/shared/utils.mjs","webpack:///./node_modules/swiper/shared/swiper-core.mjs","webpack:///./node_modules/swiper/swiper.css?2b0f","webpack:///./resources/js/swipers.js","webpack:///./node_modules/swiper/modules/navigation.mjs","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack:///./node_modules/swiper/modules/thumbs.mjs","webpack:///./node_modules/swiper/swiper.css","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// require('./../../vendor/artestiq/cms/Resources/assets/js/album');\nrequire('./faders');\nrequire('./floatfooter');\nrequire('./form-ajax-replace');\nrequire('./glide');\nrequire('./gsap-animations');\nrequire('./menu');\nrequire('./scrolllinks');\nrequire('./swipers');\n// require('./video');\n","function isElementInViewport(el) {\n let rect = el.getBoundingClientRect();\n\n return (\n (rect.top >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight)) //top in viewport\n || (rect.bottom >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)) // bottom in viewport\n || (rect.top < 0 && rect.bottom > (window.innerHeight || document.documentElement.clientHeight)) //top above, bottom below viewport\n );\n}\n\nfunction elementsVisibility(classname) {\n let elements = document.querySelectorAll(`.${classname}-in:not(.${classname}-in-active)`);\n\n elements.forEach((el) => {\n if (isElementInViewport(el)) {\n el.classList.add(`${classname}-in-active`);\n }\n });\n}\n\nfunction onVisibilityChange() {\n elementsVisibility('fade');\n elementsVisibility('scale');\n elementsVisibility('slide');\n}\n\ndocument.addEventListener('DOMContentLoaded', onVisibilityChange, false);\ndocument.addEventListener('load', onVisibilityChange, false);\ndocument.addEventListener('scroll', onVisibilityChange, false);\ndocument.addEventListener('resize', onVisibilityChange, false);\n","function updateFloatFooter(floatFooter) {\n const scrollTop = window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop;\n const factor = floatFooter.parentElement.classList.contains('productdetail__content-mobile') ? 0.5 : 2;\n\n if (scrollTop > floatFooter.clientHeight * factor) {\n floatFooter.classList.add('visible');\n }\n else {\n floatFooter.classList.remove('visible');\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const floatFooter = document.getElementById('floatfooter');\n\n if (floatFooter !== null) {\n document.addEventListener('scroll', () => {\n updateFloatFooter(floatFooter);\n }, {\n passive: true\n });\n window.addEventListener('resize', () => {\n updateFloatFooter(floatFooter);\n }, {\n passive: true\n });\n updateFloatFooter(floatFooter);\n }\n});\n","function attachAjaxReplace(form) {\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n const formData = new FormData(form);\n\n fetch(form.action, {\n method: 'post',\n body: formData\n }).then(function (response) {\n return response.json();\n }).then(function (json) {\n if (json.success) {\n form.querySelector('ul.form').setAttribute('hidden', 'hidden');\n form.querySelector('.message--success').removeAttribute('hidden');\n }\n }).catch(function (error) {\n console.error(error);\n });\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const forms = document.querySelectorAll(\"form.form-ajax-replace\");\n forms.forEach(attachAjaxReplace);\n});\n","function loadLazyImages(selector) {\n document.querySelectorAll(selector + ' img[loading=\"lazy\"]').forEach((img) => {\n img.removeAttribute('loading');\n });\n}\n\nfunction initHeroGlide() {\n const selectorHeroGlide = '.hero__slideshow.glide';\n if (document.querySelector(selectorHeroGlide)) {\n const glider = new Glide(selectorHeroGlide, {\n autoplay: (window.screen.availWidth && window.screen.availWidth >= 768) ? 3000 : false,\n type: 'carousel',\n gap: 0,\n animationDuration: 500,\n animationTimingFunc: 'linear',\n perView: 1,\n slidesToScroll: 1,\n rewindDuration: 0,\n swipeThreshold: false,\n dragThreshold: false\n });\n glider.mount();\n loadLazyImages(selectorHeroGlide)\n }\n}\n\nfunction initTestimonialsGlide() {\n const selectorTestimonialsGlide = '.testimonials__slider.glide';\n if (document.querySelector(selectorTestimonialsGlide)) {\n let slidesPerView = (window.screen.availWidth && window.screen.availWidth >= 768) ? 2 : 1;\n slidesPerView = (window.screen.availWidth && window.screen.availWidth >= 1280) ? 3 : slidesPerView;\n const glider = new Glide(selectorTestimonialsGlide, {\n autoplay: false,\n type: 'carousel',\n gap: (window.screen.availWidth && window.screen.availWidth >= 768) ? 48 : 0,\n animationDuration: 500,\n animationTimingFunc: 'linear',\n perView: slidesPerView,\n slidesToScroll: slidesPerView,\n rewindDuration: 0,\n // swipeThreshold: false,\n // dragThreshold: false\n });\n glider.mount();\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initHeroGlide();\n initTestimonialsGlide();\n});\n","function staggeredReveal() {\n // usage:\n ScrollTrigger.batch(\".staggered-reveal\", {\n interval: 0.1, // time window (in seconds) for batching to occur. The first callback that occurs (of its type) will start the timer, and when it elapses, any other similar callbacks for other targets will be batched into an array and fed to the callback. Default is 0.1\n batchMax: 3, // maximum batch size (targets)\n onEnter: batch => gsap.to(batch, {autoAlpha: 1, stagger: 0.15, overwrite: true}),\n // onLeave: batch => gsap.set(batch, {autoAlpha: 0, overwrite: true}),\n // onEnterBack: batch => gsap.to(batch, {autoAlpha: 1, stagger: 0.15, overwrite: true}),\n // onLeaveBack: batch => gsap.set(batch, {autoAlpha: 0, overwrite: true})\n // you can also define things like start, end, etc.\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", staggeredReveal, false);\ndocument.addEventListener('resize', staggeredReveal, false);\n","function handleMenus() {\n const menuToggle = document.getElementById('menu-open');\n\n if (menuToggle) {\n menuToggle.addEventListener('change', () => {\n const htmlElement = document.querySelector('html');\n\n if (htmlElement) {\n if (!menuToggle.checked) {\n const submenuCheckboxes = document.querySelectorAll('header .menu input');\n submenuCheckboxes.forEach((submenuCheckbox) => {\n submenuCheckbox.checked = false;\n });\n }\n }\n });\n }\n}\n\nfunction updateScrollHeader(header, headerLogo) {\n const scrolledHeader = 'scrolled';\n let logoCorrectionPixels = 54;\n logoCorrectionPixels = (window.innerWidth >= 768) ? 64 : logoCorrectionPixels;\n const logoCorrection = Math.min(header.clientHeight, window.scrollY, logoCorrectionPixels);\n\n if (logoCorrection >= logoCorrectionPixels) {\n header.classList.add(scrolledHeader);\n }\n else {\n header.classList.remove(scrolledHeader);\n }\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n handleMenus();\n\n const header = document.querySelector('header');\n const headerLogo = document.querySelector('header .header__logo');\n\n if (header !== null && headerLogo !== null) {\n document.addEventListener('scroll', () => {\n updateScrollHeader(header, headerLogo);\n }, {\n passive: true\n });\n updateScrollHeader(header, headerLogo);\n }\n});\n","document.addEventListener(\"DOMContentLoaded\", () => {\n document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\n anchor.addEventListener('click', function (e) {\n e.preventDefault();\n const element = document.querySelector(this.getAttribute('href'));\n\n if (anchor.classList.contains('btn--panel')) {\n element.classList.toggle('open');\n if (!element.classList.contains('open')) return false;\n }\n\n const yOffset = (document.querySelector('header').getBoundingClientRect().height * -1) - 40;\n\n const y = element.getBoundingClientRect().top + window.scrollY + yOffset;\n\n window.scrollTo({top: y, behavior: 'smooth'});\n });\n });\n});\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? 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.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (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].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import api from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../css-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[1]!../postcss-loader/dist/cjs.js??ruleSet[1].rules[7].oneOf[1].use[2]!./swiper.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import Swiper from 'swiper';\nimport { Navigation, Thumbs } from 'swiper/modules';\nSwiper.use(Navigation);\nSwiper.use(Thumbs);\nimport 'swiper/css';\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n if (document.querySelector('.productdetail__visuals__main')) {\n const thumbSwiper = document.querySelector('.productdetail__visuals__thumbs') ? new Swiper(\".productdetail__visuals__thumbs .swiper\", {\n loop: true,\n spaceBetween: 24,\n slidesPerView: 4,\n freeMode: true,\n navigation: {\n nextEl: \".productdetail__visuals__thumbs .swiper-button-next\",\n prevEl: \".productdetail__visuals__thumbs .swiper-button-prev\",\n },\n watchSlidesProgress: true,\n }) : false;\n\n const detailSwiper = new Swiper(\".productdetail__visuals__main .swiper\", {\n loop: true,\n navigation: {\n nextEl: \".productdetail__visuals__main .swiper-button-next\",\n prevEl: \".productdetail__visuals__main .swiper-button-prev\",\n },\n slidesPerView: 1,\n spaceBetween: 0,\n thumbs: {\n swiper: thumbSwiper,\n },\n });\n }\n if (document.querySelector('.productinspiration__products')) {\n new Swiper(\".productinspiration__products.swiper\", {\n loop: true,\n spaceBetween: 24,\n slidesPerView: 1,\n navigation: {\n nextEl: \".productinspiration .swiper-button-next\",\n prevEl: \".productinspiration .swiper-button-prev\",\n },\n breakpoints: {\n 768: {\n slidesPerView: 2,\n spaceBetween: 32\n },\n 1024: {\n slidesPerView: 3,\n spaceBetween: 48\n }\n }\n })\n }\n});\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 { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { l as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener(eventName, onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener(eventName, onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url(\\\"data:application/font-woff;charset=utf-8;base64, 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\\\")}:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:content-box;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:\\\"\\\";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid transparent;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/swiper/swiper.css\"],\"names\":[],\"mappings\":\"AAaA,WACE,wBAA2B,CAG3B,iBAAkB,CADlB,eAAgB,CADhB,4rEAGF,CAEA,MACE,4BAKF,CACA,MAEE,aAAc,CACd,gBAAiB,CACjB,iBAAkB,CAHlB,iBAAkB,CAIlB,SACF,CACA,QASE,aAAc,CAJd,eAAgB,CAJhB,gBAAiB,CACjB,iBAAkB,CAElB,eAAgB,CAEhB,SAAU,CAHV,iBAAkB,CAKlB,SAEF,CACA,iCACE,qBACF,CACA,gBAQE,sBAAuB,CAHvB,YAAa,CAFb,WAAY,CAFZ,iBAAkB,CAKlB,6BAA8B,CAC9B,mFAAqF,CALrF,UAAW,CAEX,SAKF,CACA,wEAGE,uBACF,CACA,mBACE,kBACF,CACA,iBACE,kBACF,CACA,cAME,aAAc,CALd,aAAc,CAEd,WAAY,CACZ,iBAAkB,CAClB,6BAA8B,CAH9B,UAKF,CACA,8BACE,iBACF,CAEA,oDAEE,WACF,CACA,mCACE,sBAAuB,CACvB,oCACF,CACA,sCAGU,0BAA2B,CAFnC,uBAGF,CAEA,2CACE,kBACF,CACA,2BACE,2BACF,CACA,WACE,kBACF,CACA,wDAEE,2BACF,CAEA,iCAIE,uBAAwB,CAHxB,aAAc,CACd,oBAIF,CACA,oDACE,YACF,CACA,+CACE,6BACF,CACA,mDACE,4BACF,CACA,iDACE,4BACF,CACA,kDACE,qBACF,CACA,gEACE,sBACF,CACA,wDACE,UAAW,CACX,aAAc,CACd,UACF,CACA,+DACE,+BAAgC,CAChC,uBACF,CACA,6FACE,wDACF,CACA,0EACE,WAAY,CACZ,cAAe,CACf,yCACF,CACA,2FACE,uDACF,CACA,wEAGE,0CAA2C,CAD3C,aAAc,CADd,UAGF,CAGA,sLAcE,WAAY,CAHZ,MAAO,CAIP,mBAAoB,CALpB,iBAAkB,CAElB,KAAM,CACN,UAAW,CAGX,UACF,CACA,gCACE,0BACF,CACA,qCACE,mEACF,CACA,sCACE,kEACF,CACA,oCACE,iEACF,CACA,uCACE,mEACF,CACA,uBAaE,wEAA6B,CAD7B,iBAAkB,CAClB,gCAA6B,CAH7B,qBAAsB,CARtB,WAAY,CAEZ,QAAS,CAET,iBAAkB,CAClB,gBAAiB,CAJjB,iBAAkB,CAElB,OAAQ,CAIR,oBAAqB,CARrB,UAAW,CAOX,UAMF,CACA,+HAEE,kDACF,CACA,6BACE,6BACF,CACA,6BACE,6BACF,CACA,iCACE,GACE,sBACF,CACA,GACE,uBACF,CACF\",\"sourcesContent\":[\"/**\\n * Swiper 11.1.15\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2024 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: November 18, 2024\\n */\\n\\n/* FONT_START */\\n@font-face {\\n font-family: 'swiper-icons';\\n src: url('data:application/font-woff;charset=utf-8;base64, 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');\\n font-weight: 400;\\n font-style: normal;\\n}\\n/* FONT_END */\\n:root {\\n --swiper-theme-color: #007aff;\\n /*\\n --swiper-preloader-color: var(--swiper-theme-color);\\n --swiper-wrapper-transition-timing-function: initial;\\n */\\n}\\n:host {\\n position: relative;\\n display: block;\\n margin-left: auto;\\n margin-right: auto;\\n z-index: 1;\\n}\\n.swiper {\\n margin-left: auto;\\n margin-right: auto;\\n position: relative;\\n overflow: hidden;\\n list-style: none;\\n padding: 0;\\n /* Fix of Webkit flickering */\\n z-index: 1;\\n display: block;\\n}\\n.swiper-vertical > .swiper-wrapper {\\n flex-direction: column;\\n}\\n.swiper-wrapper {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n z-index: 1;\\n display: flex;\\n transition-property: transform;\\n transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);\\n box-sizing: content-box;\\n}\\n.swiper-android .swiper-slide,\\n.swiper-ios .swiper-slide,\\n.swiper-wrapper {\\n transform: translate3d(0px, 0, 0);\\n}\\n.swiper-horizontal {\\n touch-action: pan-y;\\n}\\n.swiper-vertical {\\n touch-action: pan-x;\\n}\\n.swiper-slide {\\n flex-shrink: 0;\\n width: 100%;\\n height: 100%;\\n position: relative;\\n transition-property: transform;\\n display: block;\\n}\\n.swiper-slide-invisible-blank {\\n visibility: hidden;\\n}\\n/* Auto Height */\\n.swiper-autoheight,\\n.swiper-autoheight .swiper-slide {\\n height: auto;\\n}\\n.swiper-autoheight .swiper-wrapper {\\n align-items: flex-start;\\n transition-property: transform, height;\\n}\\n.swiper-backface-hidden .swiper-slide {\\n transform: translateZ(0);\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n}\\n/* 3D Effects */\\n.swiper-3d.swiper-css-mode .swiper-wrapper {\\n perspective: 1200px;\\n}\\n.swiper-3d .swiper-wrapper {\\n transform-style: preserve-3d;\\n}\\n.swiper-3d {\\n perspective: 1200px;\\n}\\n.swiper-3d .swiper-slide,\\n.swiper-3d .swiper-cube-shadow {\\n transform-style: preserve-3d;\\n}\\n/* CSS Mode */\\n.swiper-css-mode > .swiper-wrapper {\\n overflow: auto;\\n scrollbar-width: none;\\n /* For Firefox */\\n -ms-overflow-style: none;\\n /* For Internet Explorer and Edge */\\n}\\n.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {\\n display: none;\\n}\\n.swiper-css-mode > .swiper-wrapper > .swiper-slide {\\n scroll-snap-align: start start;\\n}\\n.swiper-css-mode.swiper-horizontal > .swiper-wrapper {\\n scroll-snap-type: x mandatory;\\n}\\n.swiper-css-mode.swiper-vertical > .swiper-wrapper {\\n scroll-snap-type: y mandatory;\\n}\\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper {\\n scroll-snap-type: none;\\n}\\n.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {\\n scroll-snap-align: none;\\n}\\n.swiper-css-mode.swiper-centered > .swiper-wrapper::before {\\n content: '';\\n flex-shrink: 0;\\n order: 9999;\\n}\\n.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {\\n scroll-snap-align: center center;\\n scroll-snap-stop: always;\\n}\\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {\\n margin-inline-start: var(--swiper-centered-offset-before);\\n}\\n.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {\\n height: 100%;\\n min-height: 1px;\\n width: var(--swiper-centered-offset-after);\\n}\\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {\\n margin-block-start: var(--swiper-centered-offset-before);\\n}\\n.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {\\n width: 100%;\\n min-width: 1px;\\n height: var(--swiper-centered-offset-after);\\n}\\n/* Slide styles start */\\n/* 3D Shadows */\\n.swiper-3d .swiper-slide-shadow,\\n.swiper-3d .swiper-slide-shadow-left,\\n.swiper-3d .swiper-slide-shadow-right,\\n.swiper-3d .swiper-slide-shadow-top,\\n.swiper-3d .swiper-slide-shadow-bottom,\\n.swiper-3d .swiper-slide-shadow,\\n.swiper-3d .swiper-slide-shadow-left,\\n.swiper-3d .swiper-slide-shadow-right,\\n.swiper-3d .swiper-slide-shadow-top,\\n.swiper-3d .swiper-slide-shadow-bottom {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: none;\\n z-index: 10;\\n}\\n.swiper-3d .swiper-slide-shadow {\\n background: rgba(0, 0, 0, 0.15);\\n}\\n.swiper-3d .swiper-slide-shadow-left {\\n background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n}\\n.swiper-3d .swiper-slide-shadow-right {\\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n}\\n.swiper-3d .swiper-slide-shadow-top {\\n background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n}\\n.swiper-3d .swiper-slide-shadow-bottom {\\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n}\\n.swiper-lazy-preloader {\\n width: 42px;\\n height: 42px;\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n margin-left: -21px;\\n margin-top: -21px;\\n z-index: 10;\\n transform-origin: 50%;\\n box-sizing: border-box;\\n border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));\\n border-radius: 50%;\\n border-top-color: transparent;\\n}\\n.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,\\n.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {\\n animation: swiper-preloader-spin 1s infinite linear;\\n}\\n.swiper-lazy-preloader-white {\\n --swiper-preloader-color: #fff;\\n}\\n.swiper-lazy-preloader-black {\\n --swiper-preloader-color: #000;\\n}\\n@keyframes swiper-preloader-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n/* Slide styles end */\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of