{"version":3,"file":"/scripts/app.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///./assets/scripts/components/accordion.js","webpack:///./node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///./node_modules/swiper/shared/utils.mjs","webpack:///./node_modules/swiper/shared/swiper-core.mjs","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack:///./node_modules/swiper/shared/classes-to-selector.mjs","webpack:///./node_modules/swiper/modules/manipulation.mjs","webpack:///./node_modules/swiper/shared/effect-init.mjs","webpack:///./node_modules/swiper/shared/effect-target.mjs","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack:///./node_modules/swiper/shared/create-shadow.mjs","webpack:///./node_modules/swiper/swiper-bundle.mjs","webpack:///./node_modules/swiper/modules/virtual.mjs","webpack:///./node_modules/swiper/modules/keyboard.mjs","webpack:///./node_modules/swiper/modules/mousewheel.mjs","webpack:///./node_modules/swiper/modules/navigation.mjs","webpack:///./node_modules/swiper/modules/pagination.mjs","webpack:///./node_modules/swiper/modules/scrollbar.mjs","webpack:///./node_modules/swiper/modules/parallax.mjs","webpack:///./node_modules/swiper/modules/zoom.mjs","webpack:///./node_modules/swiper/modules/controller.mjs","webpack:///./node_modules/swiper/modules/a11y.mjs","webpack:///./node_modules/swiper/modules/history.mjs","webpack:///./node_modules/swiper/modules/hash-navigation.mjs","webpack:///./node_modules/swiper/modules/autoplay.mjs","webpack:///./node_modules/swiper/modules/thumbs.mjs","webpack:///./node_modules/swiper/modules/free-mode.mjs","webpack:///./node_modules/swiper/modules/grid.mjs","webpack:///./node_modules/swiper/modules/effect-fade.mjs","webpack:///./node_modules/swiper/modules/effect-cube.mjs","webpack:///./node_modules/swiper/modules/effect-flip.mjs","webpack:///./node_modules/swiper/modules/effect-coverflow.mjs","webpack:///./node_modules/swiper/modules/effect-creative.mjs","webpack:///./node_modules/swiper/modules/effect-cards.mjs","webpack:///./node_modules/swiper/swiper-bundle.css?440d","webpack:///./assets/scripts/blocks/featured-posts.js","webpack:///./assets/scripts/components/slider.js","webpack:///./assets/scripts/app.js","webpack:///./assets/scripts/blocks/content-box.js","webpack:///./assets/scripts/blocks/masthead.js","webpack:///./assets/scripts/blocks/wp-menu.js","webpack:///./assets/scripts/components/ada.js","webpack:///./assets/scripts/components/animation.js","webpack:///./assets/scripts/components/caseStudies.js","webpack:///./assets/scripts/components/colorbox.js","webpack:///./assets/scripts/components/disclaimer.js","webpack:///./assets/scripts/components/postFilters.js","webpack:///./assets/scripts/components/scrollTracker.js","webpack:///./assets/scripts/components/tables.js","webpack:///./assets/scripts/components/utilities.js","webpack:///./node_modules/swiper/swiper-bundle.css","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack:///./node_modules/jquery-bridget/jquery-bridget.js","webpack:///./node_modules/jquery-colorbox/jquery.colorbox.js","webpack:///./node_modules/jquery-selectric/src/jquery.selectric.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","export const accordion = () => {\n\n $('.accordion--title-link').on(\"click\", function (e) {\n\n e.preventDefault();\n\n var parent = $(this).closest('.accordion-block');\n \n if ( !parent.hasClass('is-expanded') ) {\n\n $('.accordion-block').removeClass('is-expanded');\n parent.addClass('is-expanded');\n\n // var parentOffset = parent.offset();\n\n // console.log(parentOffset);\n\n // $('html, body').animate({\n // scrollTop: parentOffset.top\n // }, 250);\n\n } else {\n parent.removeClass('is-expanded');\n }\n\n });\n\n }","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\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}\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, elementStyle as o, elementNextAll as p, elementPrevAll as q, animateCSSModeScroll as r, setCSSProperty as s, showWarning as t, extend as u, deleteProps as v };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, o as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, p as elementNextAll, q as elementPrevAll, j as getTranslate, r as animateCSSModeScroll, n as nextTick, t as showWarning, c as createElement, d as now, u as extend, h as elementIndex, v 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: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : 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.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { g as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { k as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { g as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","/**\n * Swiper 11.1.4\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: May 30, 2024\n */\n\nimport { S as Swiper } from './shared/swiper-core.mjs';\nimport Virtual from './modules/virtual.mjs';\nimport Keyboard from './modules/keyboard.mjs';\nimport Mousewheel from './modules/mousewheel.mjs';\nimport Navigation from './modules/navigation.mjs';\nimport Pagination from './modules/pagination.mjs';\nimport Scrollbar from './modules/scrollbar.mjs';\nimport Parallax from './modules/parallax.mjs';\nimport Zoom from './modules/zoom.mjs';\nimport Controller from './modules/controller.mjs';\nimport A11y from './modules/a11y.mjs';\nimport History from './modules/history.mjs';\nimport HashNavigation from './modules/hash-navigation.mjs';\nimport Autoplay from './modules/autoplay.mjs';\nimport Thumb from './modules/thumbs.mjs';\nimport freeMode from './modules/free-mode.mjs';\nimport Grid from './modules/grid.mjs';\nimport Manipulation from './modules/manipulation.mjs';\nimport EffectFade from './modules/effect-fade.mjs';\nimport EffectCube from './modules/effect-cube.mjs';\nimport EffectFlip from './modules/effect-flip.mjs';\nimport EffectCoverflow from './modules/effect-coverflow.mjs';\nimport EffectCreative from './modules/effect-creative.mjs';\nimport EffectCards from './modules/effect-cards.mjs';\n\n// Swiper Class\nconst modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\nSwiper.use(modules);\n\nexport { Swiper, Swiper as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force, beforeInit) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop,\n initialSlide\n } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) {\n return;\n }\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`)).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n update(false, true);\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, j as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n limitToOriginalSize: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getMaxRatio() {\n const params = swiper.params.zoom;\n const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {\n const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;\n return Math.min(imageMaxRatio, maxRatio);\n }\n return maxRatio;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = getMaxRatio();\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n let allowTouchMoveTimeout;\n function allowTouchMove() {\n swiper.touchEventsData.preventTouchMoveFromPointerMove = false;\n }\n function preventTouchMove() {\n clearTimeout(allowTouchMoveTimeout);\n swiper.touchEventsData.preventTouchMoveFromPointerMove = true;\n allowTouchMoveTimeout = setTimeout(() => {\n allowTouchMove();\n });\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {\n return;\n }\n const zoom = swiper.zoom;\n if (!gesture.imageEl) {\n return;\n }\n if (!image.isTouched || !gesture.slideEl) {\n return;\n }\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n preventTouchMove();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n const maxRatio = getMaxRatio();\n zoom.scale = forceZoomRatio || maxRatio;\n currentScale = forceZoomRatio || maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, k as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElement = document.querySelector(swiper.params.controller.control);\n if (controlElement && controlElement.swiper) {\n swiper.controller.control = controlElement.swiper;\n } else if (controlElement) {\n const onControllerSwiper = e => {\n swiper.controller.control = e.detail[0];\n swiper.update();\n controlElement.removeEventListener('init', onControllerSwiper);\n };\n controlElement.addEventListener('init', onControllerSwiper);\n }\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, h as elementIndex, m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n const prevEls = makeElementsArray(swiper.navigation.prevEl);\n const nextEls = makeElementsArray(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (prevEls.includes(targetEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = e => {\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n preventFocusHandler = true;\n }\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n preventFocusHandler = false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const onVisibilityChange = e => {\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n requestAnimationFrame(() => {\n if (preventFocusHandler) return;\n if (swiper.params.loop) {\n swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);\n } else {\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n }\n preventFocusHandler = false;\n });\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${index}\"]`) : swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { l as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","import { d as now, k as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n if (swiper.browser && swiper.browser.need3dFix && Math.abs(wrapperRotate) / 90 % 2 === 1) {\n wrapperRotate += 0.001;\n }\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n if (swiper.browser && swiper.browser.need3dFix) {\n if (Math.abs(rotateY) / 90 % 2 === 1) {\n rotateY += 0.001;\n }\n if (Math.abs(rotateX) / 90 % 2 === 1) {\n rotateX += 0.001;\n }\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n if (swiper.browser && swiper.browser.need3dFix) {\n if (Math.abs(rotateY) / 90 % 2 === 1) {\n rotateY += 0.001;\n }\n if (Math.abs(rotateX) / 90 % 2 === 1) {\n rotateX += 0.001;\n }\n }\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n if (swiper.browser && swiper.browser.need3dFix && Math.abs(val) / 90 % 2 === 1) {\n val += 0.001;\n }\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n","import api from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!../postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./swiper-bundle.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import Swiper from 'swiper/bundle';\n\n// import styles bundle\nimport 'swiper/css/bundle';\n\nexport const featuredPosts = () => {\n\n\n const el = document.querySelector('.featured-posts--grid');\n const swiper = new Swiper( el, {\n autoHeight: false,\n slidesPerView: 1,\n slidesPerGroup: 1,\n spaceBetween: 30,\n // grid: {\n // column: 4,\n // },\n // effect: 'fade',\n // fadeEffect: {\n // crossFade: true\n // },\n // direction: 'vertical',\n // loop: true,\n breakpoints: {\n 200: {\n slidesPerView: 1,\n //slidesPerGroup: 1,\n },\n 768: {\n slidesPerView: 2,\n //slidesPerGroup: 2,\n },\n 1024: {\n slidesPerView: 3,\n //slidesPerGroup: 3,\n },\n 1200: {\n slidesPerView: 4,\n //slidesPerGroup: 4,\n },\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n\n });\n\n}\n","// import Swiper bundle with all modules installed\nimport Swiper from 'swiper/bundle';\n\n// import styles bundle\nimport 'swiper/css/bundle';\n\nexport const slider = () => {\n\n\tfunction setAlignFullCssVar() {\n // Create the measurement node\n let scrollDiv = document.createElement('div');\n scrollDiv.className = 'scrollbar-measure';\n document.body.appendChild(scrollDiv);\n\n // Get the scrollbar width & half width\n let scrollBarWidth = window.innerWidth - scrollDiv.clientWidth;\n let alignFullOffset = scrollBarWidth / 2;\n\n // console.log(window.innerWidth);\n // console.log(scrollDiv.clientWidth);\n // console.warn(scrollBarWidth); // Mac: 15\n\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n\n //Get .alignfull element\n let root = document.documentElement;\n let root_style = getComputedStyle(root);\n\n //Set --alignfull-offset css var\n let cssVarAlignFullOffset =\n root_style.getPropertyValue('--alignfull-offset');\n if (alignFullOffset + 'px' !== cssVarAlignFullOffset) {\n root.style.setProperty('--alignfull-offset', alignFullOffset + 'px');\n }\n }\n\n//post sliders\n document\n .querySelectorAll('.wp-block-group.is-slider')\n .forEach((block, i) => {\n // const swiperEl = '.is-style-slider';\n // $(block).removeClass(function (index, css) {\n // return (css.match(/\\bwp-\\S+/g) || []).join(' '); // removes anything that starts with \"wp-container\"\n // });\n // $(swiperEl).attr('class', 'wp-block-gallery is-style-slider swiper');\n $(block)\n .addClass('swiper')\n .find('.wp-block-group__inner-container').eq(0)\n .addClass('swiper-wrapper')\n .children('.wp-block-group')\n .addClass('swiper-slide');\n\n $(block)\n .append('
')\n .append(\n '
',\n )\n .append(\n '
',\n );\n\n let slide = $(block).find('.swiper-slide');\n\n slide.each(function(i) {\n var randomImages = $(this).find('.is-random');\n var randomImagesCount = randomImages.length;\n var randomImage = Math.floor(Math.random() * randomImagesCount);\n randomImages.eq(randomImage).show();\n });\n\n // let slideCount = $(block).find('.swiper-slide').length;\n // let randomSlide = Math.floor(Math.random() * slideCount);\n\n let swiper = new Swiper(block, {\n loop: true,\n slidesPerView: 'auto',\n autoHeight: false,\n //initialSlide:randomSlide,\n speed:600,\n autoplay: {\n delay: 5000,\n },\n pagination: {\n el: '.swiper-pagination',\n clickable: true\n // type: 'custom',\n // renderCustom: function (swiper, current, total) {\n // return (\n // '' +\n // ('0' + current).slice(-2) +\n // ' / ' +\n // ('0' + total).slice(-2) +\n // ''\n // );\n // },\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n on: {\n init: function () {\n // console.log('initialized.'); // this works\n //setAlignFullCssVar();\n },\n imagesReady: function () {\n // console.log('images ready.'); // this doesn't work\n setAlignFullCssVar();\n },\n },\n });\n\n $('.swiper-button').on('click',function() {\n swiper.autoplay.stop();\n });\n\n });\n\n // init Swiper:\n const statsSwiper = new Swiper('.cards-block.is-slider .cards--grid', {\n loop: false,\n slidesPerView: 1,\n autoHeight: false,\n speed:700,\n spaceBetween:24,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n breakpoints: {\n // when window width is >= 640px\n 640: {\n slidesPerView: 3,\n },\n 992: {\n slidesPerView: 2,\n },\n 1100: {\n slidesPerView: 3,\n },\n }\n\n });\n\n const featuredCaseStudiesSwiper = new Swiper('.featured-case-studies-block .featured-case-studies--grid', {\n loop: false,\n slidesPerView: 1,\n autoHeight: false,\n speed:700,\n spaceBetween:24,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n breakpoints: {\n // when window width is >= 640px\n 640: {\n slidesPerView: 2,\n },\n 1000: {\n slidesPerView: 3,\n },\n 1400: {\n slidesPerView: 4,\n },\n 1800: {\n slidesPerView: 5,\n },\n }\n\n });\n\n\n }","// Vendor Libraries\n\ntry {\n\n window.$ = window.jQuery = require('jquery');\n window.Selectric = require('jquery-selectric');\n\n var isIE11 = !!window.MSInputMethodContext && !!document.documentMode ? 'is-ie' : 'is-not-ie';\n $('html').removeClass('no-js').addClass('is-loaded').addClass(isIE11);\n\n} catch (e) {\n console.log(e);\n}\n\nimport { accordion } from './components/accordion';\nimport { featuredPosts } from './blocks/featured-posts';\nimport { slider } from './components/slider';\n\njQuery(document).ready(function($) {\n\n // Components\n require('./components/utilities');\n require('./components/scrollTracker');\n require('./components/animation');\n require('./components/ada');\n require('./components/disclaimer');\n require('./components/postFilters');\n require('./components/tables');\n require('./components/caseStudies');\n require('./components/colorbox');\n\n // Blocks\n require('./blocks/content-box');\n require('./blocks/masthead');\n require('./blocks/wp-menu');\n\n accordion();\n slider();\n featuredPosts();\n\n});","var contentBoxImage = function() {\n\n var contentBox = $('.content-box');\n\n $.each( contentBox, function ( i, e ) {\n\n var imageEl = $(this).find('.content-box--image');\n var winWidth = $(window).width();\n var mobileImage = imageEl.data('mobile-image');\n var desktopImage = imageEl.data('desktop-image');\n var curImage = imageEl.attr('style');\n \n if ( winWidth < 992 ) {\n\n if (mobileImage && curImage != mobileImage) {\n imageEl.attr('style',mobileImage);\n }\n\n } else {\n\n if (desktopImage && curImage != desktopImage) {\n imageEl.attr('style',desktopImage);\n }\n\n }\n\n });\n\n};\n\nvar columnHeight = function() {\n\n $.each( $('.wp-block-columns'), function ( i, e ) {\n\n var column = $(this).find('.wp-block-column');\n\n if ( $(window).width() > 992 ) {\n\n var largeHeight = 0;\n column.css('height','auto');\n\n $.each( column, function ( i, e ) {\n\n if ( $(this).height() > largeHeight ) {\n largeHeight = $(this).height();\n }\n\n });\n\n column.css('height',largeHeight + 'px');\n\n } else {\n column.css('height','auto');\n }\n\n });\n\n};\n\ncontentBoxImage();\ncolumnHeight();\n\n$(window).resize(function() {\n contentBoxImage();\n columnHeight();\n});\n\n\n","$('.masthead--advance-arrow').on('click',function(e) {\n\n e.preventDefault();\n\n var masthead = $(this).closest('.masthead');\n var nextGroup = masthead.next('.wp-block-group');\n\n if (nextGroup) {\n\n var bannerHeight = $('.banner').height();\n var elOffset = nextGroup.offset();\n var elOffsetTop = elOffset.top;\n\n $('html, body').animate({\n scrollTop: elOffsetTop\n }, 750);\n\n }\n\n});\n","\n\n$('.wp-menu .menu-item a[href^=\"#\"]').on('click', function(e) {\n \n e.preventDefault();\n\n var bannerHeight = $('.banner').height();\n var el = $($(this).attr('href'));\n var elOffset = el.offset();\n var elOffsetTop = elOffset.top;\n\n $('html, body').animate({\n scrollTop: elOffsetTop - bannerHeight\n }, 750);\n\n});\n","$('select').selectric({\n disableOnMobile: false,\n onInit: function(select, selectric) {\n return;\n var uniqBaseId = select.id;\n var $input = $(selectric.elements.input);\n var $labelContainer = $(selectric.elements.label);\n var $selectricList = $(selectric.elements.items);\n\n // add id for current \".selectric-items\" list\n $selectricList.attr({\n \"id\": \"sl-\" + uniqBaseId,\n \"tab-index\": \"-1\",\n \"role\": \"listbox\",\n \"aria-expanded\": \"false\"\n });\n $selectricList.find('li').attr({\n \"role\": \"option\"\n });\n\n $input.attr({\n \"role\": \"combobox\",\n \"aria-owns\": $selectricList.attr('id')\n });\n\n //$(element).closest('.selectric-wrapper').find('.selectric-input').attr('id', element[0].text);\n\n $labelContainer.attr({\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n });\n }\n});\n\n$('select').on('selectric-highlight', function(event, element, selectric) {\n //debugger;\n jQuery.each(selectric.items, function(index, item) {\n // do something with `item` (or `this` is also `item` if you like)\n if (item.selected) {\n item.element.focus();\n return;\n }\n });\n});\n\n$(\".selectric-input\").attr('tabindex','-1').wrap(\"\");","\n\n// Detect if element is inview\nvar inView = function ( elements ) {\n\n var $window = $(window);\n var docViewTop = $window.scrollTop() + $window.height() - ( $window.height() / 10 );\n\n elements.each( function( index ) {\n\n if ( !$(this).hasClass('over') ) {\n\n var elemTop = $(this).offset().top;\n\n if ( elemTop < docViewTop ) {\n\n $(this).addClass('over');\n\n }\n\n }\n\n });\n\n};\n\ninView( $('.inview') );\n\n$( window ).scroll( function(e) {\n inView( $('.inview') );\n});\n\n","$('.case-study--link').on('click',function(e) {\n\te.preventDefault();\n\tlet id = $(this).attr('href');\n\t$(id).addClass('is-open');\n});\n\n$('.case-study--modal').on('scroll', function(e) {\n\tlet scrollTop = $(this).scrollTop();\n\t$(this).find('.case-study--modal__close').css('top', scrollTop + 18 + 'px');\n});\n\n$('.case-study--modal__close').on('click',function(e) {\n\te.preventDefault();\n\tlet id = $(this).attr('href');\n\t$(id).removeClass('is-open');\n});","window.$ = window.jQuery = require('jquery');\nwindow.jQueryBridget = require('jquery-bridget');\nwindow.colorbox = require('jquery-colorbox');\n\nfunction youTubeGetID( url ) {\n\n var ID = '';\n url = url.replace(/(>|<)/gi,'').split(/(vi\\/|v=|\\/v\\/|youtu\\.be\\/|\\/embed\\/)/);\n if(url[2] !== undefined) {\n ID = url[2].split(/[^0-9a-z_-]/i);\n ID = ID[0];\n } else {\n ID = url;\n }\n return ID;\n\n}\n\nfunction vimeoGetID( url ) {\n\n var ID = '';\n\n url = url.split( '/' );\n\n if ( url[3] !== undefined ) {\n ID = url[3];\n }\n\n return ID;\n\n}\n\njQuery( document ).ready(function($) {\n\n $(\".wrap a[href*='youtu.be'],.wrap a[href*='youtube']\").each( function() {\n var videoID = youTubeGetID( $(this).attr( 'href' ) );\n $(this).addClass('video-link').attr( 'href', \"https://www.youtube.com/embed/\" + videoID + \"?rel=0&autoplay=1&wmode=transparent&modestbranding=1&showinfo=0\");\n });\n\n $(\".wrap a[href*='vimeo']\").each( function() {\n var videoID = vimeoGetID( $(this).attr( 'href' ) );\n $(this).addClass('video-link').attr( 'href', \"https://player.vimeo.com/video/\" + videoID + \"?autoplay=1&title=0&byline=0&portrait=0\");\n });\n\n // Video Player (include video URL in a tag href)\n $('.video-link').colorbox({\n iframe : true,\n transition : \"none\",\n width : \"100%\",\n height : \"100%\",\n innerWidth : \"100%\",\n innerHeight : \"100%\",\n onComplete : function( element ) {\n\n $('#colorbox').addClass('video-cbox');\n var caption = $(element.el).attr('title');\n\n if ( caption ) {\n $('#cboxTitle').html( caption );\n } else {\n $('#cboxTitle').addClass('video-caption-hidden');\n }\n\n },\n onClosed : function( element ) {\n $('#cboxTitle').html('');\n $('#colorbox').removeClass('video-cbox');\n $('#cboxTitle').removeClass('video-caption-hidden');\n }\n });\n\n $('.popup').colorbox({\n transition : \"none\",\n width : \"100%\",\n height : \"100%\",\n innerWidth : \"100%\",\n innerHeight : \"100%\",\n onComplete : function( element ) {\n\n $('#colorbox').addClass('popup-cbox');\n var caption = $(element.el).attr('title');\n\n if ( caption ) {\n $('#cboxTitle').html( caption );\n } else {\n $('#cboxTitle').addClass('popup-caption-hidden');\n }\n\n },\n onClosed : function( element ) {\n $('#cboxTitle').html('');\n $('#colorbox').removeClass('popup-cbox');\n $('#cboxTitle').removeClass('popup-caption-hidden');\n }\n });\n\n});\n","\nif ( $('#disclaimer').length > 0 ) {\n\n var cookie_exists = document.cookie.match(/^(.*;)?\\s*STYXKEYdisclaimerAccepted\\s*=\\s*[^;]+(.*)?$/);\n\n if ( cookie_exists ) {\n $('body').removeClass('disclaimer-popup-showing');\n } else {\n $('body').addClass('disclaimer-popup-showing');\n }\n\n $('.disclaimer--terms-button').on( 'click', function (e) {\n\n e.preventDefault();\n\n var date = new Date();\n date.setTime(date.getTime() + (1000 * 60 * 60 * 24 * 7));\n document.cookie = \"STYXKEYdisclaimerAccepted=1; expires= \" + date;\n $('body').removeClass('disclaimer-popup-showing');\n\n });\n\n}\n","if ( $('.media--dropdown').length > 0 ) {\n\n var grid = $('.media--grid');\n\n $(\".posts--pagination-more\").on('click',function(e) {\n e.preventDefault();\n var paged = parseFloat( $(this).attr('data-next') );\n var type = $(this).attr('data-type');\n type = type ? type : 'post'\n updateMediaResults(paged, type);\n });\n\n $(\".media--dropdown\").on('change',function() {\n updateMediaResults();\n });\n\n var updateMediaResults = function( paged, type ) {\n\n paged = paged ? paged : 1;\n let filters = $('.media--filters');\n\n $.ajax({\n type : \"post\",\n dataType : \"json\",\n url : localized_object.ajax_url,\n data : {\n action : \"get_media_form\",\n year : $('#media-filter--year').val(),\n cat : $('#media-filter--category').val(),\n nonce : localized_object.nonce,\n paged : paged\n },\n timeout : 300000,\n beforeSend : function() {\n filters.addClass('is-loading');\n filters.css({'cursor': 'wait'});\n filters.find('input, button, select, label').css({'cursor': 'wait'});\n }\n }).done( function( response ) {\n\nconsole.log(response);\n\n\n if ( response && typeof response.media !== 'undefined' ) {\n\n var count = $('.cur-num').text();\n\n console.log(response.media);\n\n grid.html(response.media);\n\n $(\".posts--pagination-more\").attr('data-next', response.cur_page + 1 );\n $('.cur-num').html(count);\n $('.max-num').html(parseFloat(response.max_count));\n\n if ( response.cur_page < response.max_pages ) {\n $(\".posts--pagination-more\").show();\n } else {\n $(\".posts--pagination-more\").hide();\n }\n\n }\n\n }).fail( function( request, status, err ) {\n\n console.log( 'REQUEST => ' + request );\n console.log( 'STATUS => ' + status );\n console.log( 'ERR => ' );\n console.log( err );\n\n }).always(function() {\n\n filters.removeClass('is-loading');\n filters.css({'cursor': 'auto'});\n filters.find('input, button, select, label').css({'cursor': 'auto'});\n\n });\n\n }\n\n}","let lastKnownScrollPosition = 0;\nlet ticking = false;\n\nfunction doSomething(scrollPos, direction) {\n\n let bodyEl = document.getElementsByTagName('body')[0];\n\n if ( direction == 'down' && scrollPos >= 80 ) {\n bodyEl.classList.add('is-scrolled');\n bodyEl.classList.remove('is-scrolling');\n } else if ( scrollPos >= 80 ) {\n bodyEl.classList.add('is-scrolling');\n bodyEl.classList.remove('is-scrolled');\n } else {\n bodyEl.classList.remove('is-scrolled');\n bodyEl.classList.remove('is-scrolling');\n }\n\n}\n\ndocument.addEventListener('scroll', function(e) {\n\n scrollDirection = lastKnownScrollPosition < window.scrollY ? 'down' : 'up';\n lastKnownScrollPosition = window.scrollY;\n\n if (!ticking) {\n\n window.requestAnimationFrame(function() {\n doSomething(lastKnownScrollPosition, scrollDirection);\n ticking = false;\n });\n\n ticking = true;\n\n }\n\n});\n","var winWidth = $(window).width();\n\nvar scrollBar = function() {\n\n if ( winWidth < 767 ) {\n\n $(\".psh_table_wrap\").each(function() {\n\n console.log('here');\n\n var _this = $(this);\n var _thisTable = _this.find('.psh_table');\n var _thisWidth = _this.outerWidth()\n var _tableWidth = _thisTable.outerWidth();\n var _tableRows = _thisTable.find('.psh_table_row');\n var _totalWidth = ( _tableRows.length - 1 ) * 225;\n var _percentageBar = _this.prev().find('div');\n\n _thisTable.css('width', _totalWidth + 'px');\n\n _this.scroll(function() {\n var scrollPercentage = 100 * $(this).scrollLeft() / (_totalWidth - _thisWidth);\n _percentageBar.css({'width':scrollPercentage + '%'});\n });\n\n });\n\n }\n\n};\n\nscrollBar();\n\n$('.psh_table_header').on( 'click', function () {\n $(this).toggleClass('is-expanded');\n});","\n\nvar winWidth = $(window).width();\n\nfunction isTouchDevice() {\n return (('ontouchstart' in window) ||\n (navigator.maxTouchPoints > 0) ||\n (navigator.msMaxTouchPoints > 0));\n}\n\nif ( isTouchDevice() ) {\n $('html').addClass('is-touch');\n}\n\n$('.back-to-top').on('click', function(e) {\n\n e.preventDefault();\n $('html, body').animate({\n scrollTop: 0\n }, 750);\n\n});\n\n// Add class to body on hamburger click\n$('.navbar-toggler').on('click', function(e) {\n\n e.preventDefault();\n\n $('body').toggleClass('menu-is-open');\n $('body').removeClass('is-searching');\n\n if (!$('body').hasClass('menu-is-open')) {\n $('.nav-search').removeClass('is-showing');\n $('.menu-item').not('.nav-search').removeClass('is-hiding');\n } else {\n $('.dropdown').removeClass('is-expanded');\n $('#menu-primary-menu').removeClass('depth-0-expanded').removeClass('depth-1-expanded');\n }\n\n if ( $('body').hasClass('menu-is-open') ) {\n\n $(this).attr('aria-expanded','true');\n $('.navbar--container').attr('aria-hidden','false')\n\n } else {\n\n $(this).attr('aria-expanded','false');\n $('.navbar--container').attr('aria-hidden','true')\n\n }\n\n});\n\nif ( !$('body').hasClass('home') ) {\n\n var menuItems = $('.banner .menu-item a');\n\n menuItems.each(function() {\n var href = $(this).attr('href');\n\n if ( href.indexOf(\"#\") != -1 ) {\n var newHref = 'https://' + window.location.hostname + '/' + href;\n $(this).attr('href',newHref);\n }\n\n });\n\n}\n\n$('.menu-item > a').on('click', function(e) {\n\n if ( winWidth < 1200 ) {\n $('body').removeClass('menu-is-open');\n }\n\n});\n\n$('.ginput_container input:not(:file), .ginput_container textarea').on('focusout', function(e) {\n\n var thisVal = $(this).val();\n\n if (thisVal) {\n $(this).parent().addClass('has-value');\n } else {\n $(this).parent().removeClass('has-value');\n }\n\n});\n\nif ( $('.blank').length > 0 ) {\n\n $('.blank').each( function(index, value) {\n $(this).find('a').attr('target','_blank').attr('rel','external noreferrer noopener');\n });\n\n}\n\n $('.wp-block-social-link-anchor').attr('target','_blank').attr('rel','external noreferrer noopener');\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)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:\\\"\\\";left:0;pointer-events:none;position:absolute;top:0}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;margin-top:calc(0px - var(--swiper-navigation-size)/2);position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/44*27);z-index:10}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{height:100%;-o-object-fit:contain;object-fit:contain;transform-origin:center;width:100%}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);font-variant:normal;letter-spacing:0;line-height:1;text-transform:none!important}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:\\\"prev\\\"}.swiper-button-next,.swiper-rtl .swiper-button-prev{left:auto;right:var(--swiper-navigation-sides-offset,10px)}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:\\\"next\\\"}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px))}button.swiper-pagination-bullet{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1));border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0}.swiper-cube .swiper-cube-shadow:before{background:#000;bottom:0;content:\\\"\\\";filter:blur(50px);left:0;position:absolute;right:0;top:0}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}\", \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/swiper/swiper-bundle.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/**\\n * Swiper 11.1.4\\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: May 30, 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.swiper-virtual .swiper-slide {\\n -webkit-backface-visibility: hidden;\\n transform: translateZ(0);\\n}\\n.swiper-virtual.swiper-css-mode .swiper-wrapper::after {\\n content: '';\\n position: absolute;\\n left: 0;\\n top: 0;\\n pointer-events: none;\\n}\\n.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {\\n height: 1px;\\n width: var(--swiper-virtual-size);\\n}\\n.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {\\n width: 1px;\\n height: var(--swiper-virtual-size);\\n}\\n:root {\\n --swiper-navigation-size: 44px;\\n /*\\n --swiper-navigation-top-offset: 50%;\\n --swiper-navigation-sides-offset: 10px;\\n --swiper-navigation-color: var(--swiper-theme-color);\\n */\\n}\\n.swiper-button-prev,\\n.swiper-button-next {\\n position: absolute;\\n top: var(--swiper-navigation-top-offset, 50%);\\n width: calc(var(--swiper-navigation-size) / 44 * 27);\\n height: var(--swiper-navigation-size);\\n margin-top: calc(0px - (var(--swiper-navigation-size) / 2));\\n z-index: 10;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\\n}\\n.swiper-button-prev.swiper-button-disabled,\\n.swiper-button-next.swiper-button-disabled {\\n opacity: 0.35;\\n cursor: auto;\\n pointer-events: none;\\n}\\n.swiper-button-prev.swiper-button-hidden,\\n.swiper-button-next.swiper-button-hidden {\\n opacity: 0;\\n cursor: auto;\\n pointer-events: none;\\n}\\n.swiper-navigation-disabled .swiper-button-prev,\\n.swiper-navigation-disabled .swiper-button-next {\\n display: none !important;\\n}\\n.swiper-button-prev svg,\\n.swiper-button-next svg {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n transform-origin: center;\\n}\\n.swiper-rtl .swiper-button-prev svg,\\n.swiper-rtl .swiper-button-next svg {\\n transform: rotate(180deg);\\n}\\n.swiper-button-prev,\\n.swiper-rtl .swiper-button-next {\\n left: var(--swiper-navigation-sides-offset, 10px);\\n right: auto;\\n}\\n.swiper-button-next,\\n.swiper-rtl .swiper-button-prev {\\n right: var(--swiper-navigation-sides-offset, 10px);\\n left: auto;\\n}\\n.swiper-button-lock {\\n display: none;\\n}\\n/* Navigation font start */\\n.swiper-button-prev:after,\\n.swiper-button-next:after {\\n font-family: swiper-icons;\\n font-size: var(--swiper-navigation-size);\\n text-transform: none !important;\\n letter-spacing: 0;\\n font-variant: initial;\\n line-height: 1;\\n}\\n.swiper-button-prev:after,\\n.swiper-rtl .swiper-button-next:after {\\n content: 'prev';\\n}\\n.swiper-button-next,\\n.swiper-rtl .swiper-button-prev {\\n right: var(--swiper-navigation-sides-offset, 10px);\\n left: auto;\\n}\\n.swiper-button-next:after,\\n.swiper-rtl .swiper-button-prev:after {\\n content: 'next';\\n}\\n/* Navigation font end */\\n:root {\\n /*\\n --swiper-pagination-color: var(--swiper-theme-color);\\n --swiper-pagination-left: auto;\\n --swiper-pagination-right: 8px;\\n --swiper-pagination-bottom: 8px;\\n --swiper-pagination-top: auto;\\n --swiper-pagination-fraction-color: inherit;\\n --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25);\\n --swiper-pagination-progressbar-size: 4px;\\n --swiper-pagination-bullet-size: 8px;\\n --swiper-pagination-bullet-width: 8px;\\n --swiper-pagination-bullet-height: 8px;\\n --swiper-pagination-bullet-border-radius: 50%;\\n --swiper-pagination-bullet-inactive-color: #000;\\n --swiper-pagination-bullet-inactive-opacity: 0.2;\\n --swiper-pagination-bullet-opacity: 1;\\n --swiper-pagination-bullet-horizontal-gap: 4px;\\n --swiper-pagination-bullet-vertical-gap: 6px;\\n */\\n}\\n.swiper-pagination {\\n position: absolute;\\n text-align: center;\\n transition: 300ms opacity;\\n transform: translate3d(0, 0, 0);\\n z-index: 10;\\n}\\n.swiper-pagination.swiper-pagination-hidden {\\n opacity: 0;\\n}\\n.swiper-pagination-disabled > .swiper-pagination,\\n.swiper-pagination.swiper-pagination-disabled {\\n display: none !important;\\n}\\n/* Common Styles */\\n.swiper-pagination-fraction,\\n.swiper-pagination-custom,\\n.swiper-horizontal > .swiper-pagination-bullets,\\n.swiper-pagination-bullets.swiper-pagination-horizontal {\\n bottom: var(--swiper-pagination-bottom, 8px);\\n top: var(--swiper-pagination-top, auto);\\n left: 0;\\n width: 100%;\\n}\\n/* Bullets */\\n.swiper-pagination-bullets-dynamic {\\n overflow: hidden;\\n font-size: 0;\\n}\\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\\n transform: scale(0.33);\\n position: relative;\\n}\\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {\\n transform: scale(1);\\n}\\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {\\n transform: scale(1);\\n}\\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {\\n transform: scale(0.66);\\n}\\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {\\n transform: scale(0.33);\\n}\\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {\\n transform: scale(0.66);\\n}\\n.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {\\n transform: scale(0.33);\\n}\\n.swiper-pagination-bullet {\\n width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));\\n height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));\\n display: inline-block;\\n border-radius: var(--swiper-pagination-bullet-border-radius, 50%);\\n background: var(--swiper-pagination-bullet-inactive-color, #000);\\n opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);\\n}\\nbutton.swiper-pagination-bullet {\\n border: none;\\n margin: 0;\\n padding: 0;\\n box-shadow: none;\\n -webkit-appearance: none;\\n appearance: none;\\n}\\n.swiper-pagination-clickable .swiper-pagination-bullet {\\n cursor: pointer;\\n}\\n.swiper-pagination-bullet:only-child {\\n display: none !important;\\n}\\n.swiper-pagination-bullet-active {\\n opacity: var(--swiper-pagination-bullet-opacity, 1);\\n background: var(--swiper-pagination-color, var(--swiper-theme-color));\\n}\\n.swiper-vertical > .swiper-pagination-bullets,\\n.swiper-pagination-vertical.swiper-pagination-bullets {\\n right: var(--swiper-pagination-right, 8px);\\n left: var(--swiper-pagination-left, auto);\\n top: 50%;\\n transform: translate3d(0px, -50%, 0);\\n}\\n.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,\\n.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet {\\n margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;\\n display: block;\\n}\\n.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,\\n.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {\\n top: 50%;\\n transform: translateY(-50%);\\n width: 8px;\\n}\\n.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,\\n.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\\n display: inline-block;\\n transition: 200ms transform,\\n 200ms top;\\n}\\n.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,\\n.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {\\n margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);\\n}\\n.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,\\n.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {\\n left: 50%;\\n transform: translateX(-50%);\\n white-space: nowrap;\\n}\\n.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,\\n.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\\n transition: 200ms transform,\\n 200ms left;\\n}\\n.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {\\n transition: 200ms transform,\\n 200ms right;\\n}\\n/* Fraction */\\n.swiper-pagination-fraction {\\n color: var(--swiper-pagination-fraction-color, inherit);\\n}\\n/* Progress */\\n.swiper-pagination-progressbar {\\n background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25));\\n position: absolute;\\n}\\n.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {\\n background: var(--swiper-pagination-color, var(--swiper-theme-color));\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n transform: scale(0);\\n transform-origin: left top;\\n}\\n.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {\\n transform-origin: right top;\\n}\\n.swiper-horizontal > .swiper-pagination-progressbar,\\n.swiper-pagination-progressbar.swiper-pagination-horizontal,\\n.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,\\n.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {\\n width: 100%;\\n height: var(--swiper-pagination-progressbar-size, 4px);\\n left: 0;\\n top: 0;\\n}\\n.swiper-vertical > .swiper-pagination-progressbar,\\n.swiper-pagination-progressbar.swiper-pagination-vertical,\\n.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,\\n.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {\\n width: var(--swiper-pagination-progressbar-size, 4px);\\n height: 100%;\\n left: 0;\\n top: 0;\\n}\\n.swiper-pagination-lock {\\n display: none;\\n}\\n:root {\\n /*\\n --swiper-scrollbar-border-radius: 10px;\\n --swiper-scrollbar-top: auto;\\n --swiper-scrollbar-bottom: 4px;\\n --swiper-scrollbar-left: auto;\\n --swiper-scrollbar-right: 4px;\\n --swiper-scrollbar-sides-offset: 1%;\\n --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1);\\n --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5);\\n --swiper-scrollbar-size: 4px;\\n */\\n}\\n.swiper-scrollbar {\\n border-radius: var(--swiper-scrollbar-border-radius, 10px);\\n position: relative;\\n touch-action: none;\\n background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1));\\n}\\n.swiper-scrollbar-disabled > .swiper-scrollbar,\\n.swiper-scrollbar.swiper-scrollbar-disabled {\\n display: none !important;\\n}\\n.swiper-horizontal > .swiper-scrollbar,\\n.swiper-scrollbar.swiper-scrollbar-horizontal {\\n position: absolute;\\n left: var(--swiper-scrollbar-sides-offset, 1%);\\n bottom: var(--swiper-scrollbar-bottom, 4px);\\n top: var(--swiper-scrollbar-top, auto);\\n z-index: 50;\\n height: var(--swiper-scrollbar-size, 4px);\\n width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));\\n}\\n.swiper-vertical > .swiper-scrollbar,\\n.swiper-scrollbar.swiper-scrollbar-vertical {\\n position: absolute;\\n left: var(--swiper-scrollbar-left, auto);\\n right: var(--swiper-scrollbar-right, 4px);\\n top: var(--swiper-scrollbar-sides-offset, 1%);\\n z-index: 50;\\n width: var(--swiper-scrollbar-size, 4px);\\n height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));\\n}\\n.swiper-scrollbar-drag {\\n height: 100%;\\n width: 100%;\\n position: relative;\\n background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5));\\n border-radius: var(--swiper-scrollbar-border-radius, 10px);\\n left: 0;\\n top: 0;\\n}\\n.swiper-scrollbar-cursor-drag {\\n cursor: move;\\n}\\n.swiper-scrollbar-lock {\\n display: none;\\n}\\n/* Zoom container styles start */\\n.swiper-zoom-container {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n text-align: center;\\n}\\n.swiper-zoom-container > img,\\n.swiper-zoom-container > svg,\\n.swiper-zoom-container > canvas {\\n max-width: 100%;\\n max-height: 100%;\\n object-fit: contain;\\n}\\n/* Zoom container styles end */\\n.swiper-slide-zoomed {\\n cursor: move;\\n touch-action: none;\\n}\\n/* a11y */\\n.swiper .swiper-notification {\\n position: absolute;\\n left: 0;\\n top: 0;\\n pointer-events: none;\\n opacity: 0;\\n z-index: -1000;\\n}\\n.swiper-free-mode > .swiper-wrapper {\\n transition-timing-function: ease-out;\\n margin: 0 auto;\\n}\\n.swiper-grid > .swiper-wrapper {\\n flex-wrap: wrap;\\n}\\n.swiper-grid-column > .swiper-wrapper {\\n flex-wrap: wrap;\\n flex-direction: column;\\n}\\n.swiper-fade.swiper-free-mode .swiper-slide {\\n transition-timing-function: ease-out;\\n}\\n.swiper-fade .swiper-slide {\\n pointer-events: none;\\n transition-property: opacity;\\n}\\n.swiper-fade .swiper-slide .swiper-slide {\\n pointer-events: none;\\n}\\n.swiper-fade .swiper-slide-active {\\n pointer-events: auto;\\n}\\n.swiper-fade .swiper-slide-active .swiper-slide-active {\\n pointer-events: auto;\\n}\\n.swiper-cube {\\n overflow: visible;\\n}\\n.swiper-cube .swiper-slide {\\n pointer-events: none;\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n z-index: 1;\\n visibility: hidden;\\n transform-origin: 0 0;\\n width: 100%;\\n height: 100%;\\n}\\n.swiper-cube .swiper-slide .swiper-slide {\\n pointer-events: none;\\n}\\n.swiper-cube.swiper-rtl .swiper-slide {\\n transform-origin: 100% 0;\\n}\\n.swiper-cube .swiper-slide-active,\\n.swiper-cube .swiper-slide-active .swiper-slide-active {\\n pointer-events: auto;\\n}\\n.swiper-cube .swiper-slide-active,\\n.swiper-cube .swiper-slide-next,\\n.swiper-cube .swiper-slide-prev {\\n pointer-events: auto;\\n visibility: visible;\\n}\\n.swiper-cube .swiper-cube-shadow {\\n position: absolute;\\n left: 0;\\n bottom: 0px;\\n width: 100%;\\n height: 100%;\\n opacity: 0.6;\\n z-index: 0;\\n}\\n.swiper-cube .swiper-cube-shadow:before {\\n content: '';\\n background: #000;\\n position: absolute;\\n left: 0;\\n top: 0;\\n bottom: 0;\\n right: 0;\\n filter: blur(50px);\\n}\\n.swiper-cube .swiper-slide-next + .swiper-slide {\\n pointer-events: auto;\\n visibility: visible;\\n}\\n/* Cube slide shadows start */\\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,\\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,\\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,\\n.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right {\\n z-index: 0;\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n}\\n/* Cube slide shadows end */\\n.swiper-flip {\\n overflow: visible;\\n}\\n.swiper-flip .swiper-slide {\\n pointer-events: none;\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n z-index: 1;\\n}\\n.swiper-flip .swiper-slide .swiper-slide {\\n pointer-events: none;\\n}\\n.swiper-flip .swiper-slide-active,\\n.swiper-flip .swiper-slide-active .swiper-slide-active {\\n pointer-events: auto;\\n}\\n/* Flip slide shadows start */\\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,\\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,\\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,\\n.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right {\\n z-index: 0;\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n}\\n/* Flip slide shadows end */\\n.swiper-creative .swiper-slide {\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n overflow: hidden;\\n transition-property: transform, opacity, height;\\n}\\n.swiper-cards {\\n overflow: visible;\\n}\\n.swiper-cards .swiper-slide {\\n transform-origin: center bottom;\\n -webkit-backface-visibility: hidden;\\n backface-visibility: hidden;\\n overflow: hidden;\\n}\\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};","/**\n * Bridget makes jQuery widgets\n * v3.0.1\n * MIT license\n */\n\n( function( window, factory ) {\n // module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('jquery'),\n );\n } else {\n // browser global\n window.jQueryBridget = factory(\n window,\n window.jQuery,\n );\n }\n\n}( window, function factory( window, jQuery ) {\n\n// ----- utils ----- //\n\n// helper function for logging errors\n// $.error breaks jQuery chaining\nlet console = window.console;\nlet logError = typeof console == 'undefined' ? function() {} :\n function( message ) {\n console.error( message );\n };\n\n// ----- jQueryBridget ----- //\n\nfunction jQueryBridget( namespace, PluginClass, $ ) {\n $ = $ || jQuery || window.jQuery;\n if ( !$ ) {\n return;\n }\n\n // add option method -> $().plugin('option', {...})\n if ( !PluginClass.prototype.option ) {\n // option setter\n PluginClass.prototype.option = function( opts ) {\n if ( !opts ) return;\n\n this.options = Object.assign( this.options || {}, opts );\n };\n }\n\n // make jQuery plugin\n $.fn[ namespace ] = function( arg0, ...args ) {\n if ( typeof arg0 == 'string' ) {\n // method call $().plugin( 'methodName', { options } )\n return methodCall( this, arg0, args );\n }\n // just $().plugin({ options })\n plainCall( this, arg0 );\n return this;\n };\n\n // $().plugin('methodName')\n function methodCall( $elems, methodName, args ) {\n let returnValue;\n let pluginMethodStr = `$().${namespace}(\"${methodName}\")`;\n\n $elems.each( function( i, elem ) {\n // get instance\n let instance = $.data( elem, namespace );\n if ( !instance ) {\n logError( `${namespace} not initialized.` +\n ` Cannot call method ${pluginMethodStr}` );\n return;\n }\n\n let method = instance[ methodName ];\n if ( !method || methodName.charAt( 0 ) == '_' ) {\n logError(`${pluginMethodStr} is not a valid method`);\n return;\n }\n\n // apply method, get return value\n let value = method.apply( instance, args );\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n } );\n\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall( $elems, options ) {\n $elems.each( function( i, elem ) {\n let instance = $.data( elem, namespace );\n if ( instance ) {\n // set options & init\n instance.option( options );\n instance._init();\n } else {\n // initialize new instance\n instance = new PluginClass( elem, options );\n $.data( elem, namespace, instance );\n }\n } );\n }\n\n}\n\n// ----- ----- //\n\nreturn jQueryBridget;\n\n} ) );\n","/*!\n\tColorbox 1.6.4\n\tlicense: MIT\n\thttp://www.jacklmoore.com/colorbox\n*/\n(function ($, document, window) {\n\tvar\n\t// Default settings object.\n\t// See http://jacklmoore.com/colorbox for details.\n\tdefaults = {\n\t\t// data sources\n\t\thtml: false,\n\t\tphoto: false,\n\t\tiframe: false,\n\t\tinline: false,\n\n\t\t// behavior and appearance\n\t\ttransition: \"elastic\",\n\t\tspeed: 300,\n\t\tfadeOut: 300,\n\t\twidth: false,\n\t\tinitialWidth: \"600\",\n\t\tinnerWidth: false,\n\t\tmaxWidth: false,\n\t\theight: false,\n\t\tinitialHeight: \"450\",\n\t\tinnerHeight: false,\n\t\tmaxHeight: false,\n\t\tscalePhotos: true,\n\t\tscrolling: true,\n\t\topacity: 0.9,\n\t\tpreloading: true,\n\t\tclassName: false,\n\t\toverlayClose: true,\n\t\tescKey: true,\n\t\tarrowKey: true,\n\t\ttop: false,\n\t\tbottom: false,\n\t\tleft: false,\n\t\tright: false,\n\t\tfixed: false,\n\t\tdata: undefined,\n\t\tcloseButton: true,\n\t\tfastIframe: true,\n\t\topen: false,\n\t\treposition: true,\n\t\tloop: true,\n\t\tslideshow: false,\n\t\tslideshowAuto: true,\n\t\tslideshowSpeed: 2500,\n\t\tslideshowStart: \"start slideshow\",\n\t\tslideshowStop: \"stop slideshow\",\n\t\tphotoRegex: /\\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\\?).*)?$/i,\n\n\t\t// alternate image paths for high-res displays\n\t\tretinaImage: false,\n\t\tretinaUrl: false,\n\t\tretinaSuffix: '@2x.$1',\n\n\t\t// internationalization\n\t\tcurrent: \"image {current} of {total}\",\n\t\tprevious: \"previous\",\n\t\tnext: \"next\",\n\t\tclose: \"close\",\n\t\txhrError: \"This content failed to load.\",\n\t\timgError: \"This image failed to load.\",\n\n\t\t// accessbility\n\t\treturnFocus: true,\n\t\ttrapFocus: true,\n\n\t\t// callbacks\n\t\tonOpen: false,\n\t\tonLoad: false,\n\t\tonComplete: false,\n\t\tonCleanup: false,\n\t\tonClosed: false,\n\n\t\trel: function() {\n\t\t\treturn this.rel;\n\t\t},\n\t\thref: function() {\n\t\t\t// using this.href would give the absolute url, when the href may have been inteded as a selector (e.g. '#container')\n\t\t\treturn $(this).attr('href');\n\t\t},\n\t\ttitle: function() {\n\t\t\treturn this.title;\n\t\t},\n\t\tcreateImg: function() {\n\t\t\tvar img = new Image();\n\t\t\tvar attrs = $(this).data('cbox-img-attrs');\n\n\t\t\tif (typeof attrs === 'object') {\n\t\t\t\t$.each(attrs, function(key, val){\n\t\t\t\t\timg[key] = val;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn img;\n\t\t},\n\t\tcreateIframe: function() {\n\t\t\tvar iframe = document.createElement('iframe');\n\t\t\tvar attrs = $(this).data('cbox-iframe-attrs');\n\n\t\t\tif (typeof attrs === 'object') {\n\t\t\t\t$.each(attrs, function(key, val){\n\t\t\t\t\tiframe[key] = val;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif ('frameBorder' in iframe) {\n\t\t\t\tiframe.frameBorder = 0;\n\t\t\t}\n\t\t\tif ('allowTransparency' in iframe) {\n\t\t\t\tiframe.allowTransparency = \"true\";\n\t\t\t}\n\t\t\tiframe.name = (new Date()).getTime(); // give the iframe a unique name to prevent caching\n\t\t\tiframe.allowFullscreen = true;\n\n\t\t\treturn iframe;\n\t\t}\n\t},\n\n\t// Abstracting the HTML and event identifiers for easy rebranding\n\tcolorbox = 'colorbox',\n\tprefix = 'cbox',\n\tboxElement = prefix + 'Element',\n\n\t// Events\n\tevent_open = prefix + '_open',\n\tevent_load = prefix + '_load',\n\tevent_complete = prefix + '_complete',\n\tevent_cleanup = prefix + '_cleanup',\n\tevent_closed = prefix + '_closed',\n\tevent_purge = prefix + '_purge',\n\n\t// Cached jQuery Object Variables\n\t$overlay,\n\t$box,\n\t$wrap,\n\t$content,\n\t$topBorder,\n\t$leftBorder,\n\t$rightBorder,\n\t$bottomBorder,\n\t$related,\n\t$window,\n\t$loaded,\n\t$loadingBay,\n\t$loadingOverlay,\n\t$title,\n\t$current,\n\t$slideshow,\n\t$next,\n\t$prev,\n\t$close,\n\t$groupControls,\n\t$events = $(''), // $({}) would be prefered, but there is an issue with jQuery 1.4.2\n\n\t// Variables for cached values or use across multiple functions\n\tsettings,\n\tinterfaceHeight,\n\tinterfaceWidth,\n\tloadedHeight,\n\tloadedWidth,\n\tindex,\n\tphoto,\n\topen,\n\tactive,\n\tclosing,\n\tloadingTimer,\n\tpublicMethod,\n\tdiv = \"div\",\n\trequests = 0,\n\tpreviousCSS = {},\n\tinit;\n\n\t// ****************\n\t// HELPER FUNCTIONS\n\t// ****************\n\n\t// Convenience function for creating new jQuery objects\n\tfunction $tag(tag, id, css) {\n\t\tvar element = document.createElement(tag);\n\n\t\tif (id) {\n\t\t\telement.id = prefix + id;\n\t\t}\n\n\t\tif (css) {\n\t\t\telement.style.cssText = css;\n\t\t}\n\n\t\treturn $(element);\n\t}\n\n\t// Get the window height using innerHeight when available to avoid an issue with iOS\n\t// http://bugs.jquery.com/ticket/6724\n\tfunction winheight() {\n\t\treturn window.innerHeight ? window.innerHeight : $(window).height();\n\t}\n\n\tfunction Settings(element, options) {\n\t\tif (options !== Object(options)) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tthis.cache = {};\n\t\tthis.el = element;\n\n\t\tthis.value = function(key) {\n\t\t\tvar dataAttr;\n\n\t\t\tif (this.cache[key] === undefined) {\n\t\t\t\tdataAttr = $(this.el).attr('data-cbox-'+key);\n\n\t\t\t\tif (dataAttr !== undefined) {\n\t\t\t\t\tthis.cache[key] = dataAttr;\n\t\t\t\t} else if (options[key] !== undefined) {\n\t\t\t\t\tthis.cache[key] = options[key];\n\t\t\t\t} else if (defaults[key] !== undefined) {\n\t\t\t\t\tthis.cache[key] = defaults[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.cache[key];\n\t\t};\n\n\t\tthis.get = function(key) {\n\t\t\tvar value = this.value(key);\n\t\t\treturn $.isFunction(value) ? value.call(this.el, this) : value;\n\t\t};\n\t}\n\n\t// Determine the next and previous members in a group.\n\tfunction getIndex(increment) {\n\t\tvar\n\t\tmax = $related.length,\n\t\tnewIndex = (index + increment) % max;\n\n\t\treturn (newIndex < 0) ? max + newIndex : newIndex;\n\t}\n\n\t// Convert '%' and 'px' values to integers\n\tfunction setSize(size, dimension) {\n\t\treturn Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));\n\t}\n\n\t// Checks an href to see if it is a photo.\n\t// There is a force photo option (photo: true) for hrefs that cannot be matched by the regex.\n\tfunction isImage(settings, url) {\n\t\treturn settings.get('photo') || settings.get('photoRegex').test(url);\n\t}\n\n\tfunction retinaUrl(settings, url) {\n\t\treturn settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;\n\t}\n\n\tfunction trapFocus(e) {\n\t\tif ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {\n\t\t\te.stopPropagation();\n\t\t\t$box.focus();\n\t\t}\n\t}\n\n\tfunction setClass(str) {\n\t\tif (setClass.str !== str) {\n\t\t\t$box.add($overlay).removeClass(setClass.str).addClass(str);\n\t\t\tsetClass.str = str;\n\t\t}\n\t}\n\n\tfunction getRelated(rel) {\n\t\tindex = 0;\n\n\t\tif (rel && rel !== false && rel !== 'nofollow') {\n\t\t\t$related = $('.' + boxElement).filter(function () {\n\t\t\t\tvar options = $.data(this, colorbox);\n\t\t\t\tvar settings = new Settings(this, options);\n\t\t\t\treturn (settings.get('rel') === rel);\n\t\t\t});\n\t\t\tindex = $related.index(settings.el);\n\n\t\t\t// Check direct calls to Colorbox.\n\t\t\tif (index === -1) {\n\t\t\t\t$related = $related.add(settings.el);\n\t\t\t\tindex = $related.length - 1;\n\t\t\t}\n\t\t} else {\n\t\t\t$related = $(settings.el);\n\t\t}\n\t}\n\n\tfunction trigger(event) {\n\t\t// for external use\n\t\t$(document).trigger(event);\n\t\t// for internal use\n\t\t$events.triggerHandler(event);\n\t}\n\n\tvar slideshow = (function(){\n\t\tvar active,\n\t\t\tclassName = prefix + \"Slideshow_\",\n\t\t\tclick = \"click.\" + prefix,\n\t\t\ttimeOut;\n\n\t\tfunction clear () {\n\t\t\tclearTimeout(timeOut);\n\t\t}\n\n\t\tfunction set() {\n\t\t\tif (settings.get('loop') || $related[index + 1]) {\n\t\t\t\tclear();\n\t\t\t\ttimeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));\n\t\t\t}\n\t\t}\n\n\t\tfunction start() {\n\t\t\t$slideshow\n\t\t\t\t.html(settings.get('slideshowStop'))\n\t\t\t\t.unbind(click)\n\t\t\t\t.one(click, stop);\n\n\t\t\t$events\n\t\t\t\t.bind(event_complete, set)\n\t\t\t\t.bind(event_load, clear);\n\n\t\t\t$box.removeClass(className + \"off\").addClass(className + \"on\");\n\t\t}\n\n\t\tfunction stop() {\n\t\t\tclear();\n\n\t\t\t$events\n\t\t\t\t.unbind(event_complete, set)\n\t\t\t\t.unbind(event_load, clear);\n\n\t\t\t$slideshow\n\t\t\t\t.html(settings.get('slideshowStart'))\n\t\t\t\t.unbind(click)\n\t\t\t\t.one(click, function () {\n\t\t\t\t\tpublicMethod.next();\n\t\t\t\t\tstart();\n\t\t\t\t});\n\n\t\t\t$box.removeClass(className + \"on\").addClass(className + \"off\");\n\t\t}\n\n\t\tfunction reset() {\n\t\t\tactive = false;\n\t\t\t$slideshow.hide();\n\t\t\tclear();\n\t\t\t$events\n\t\t\t\t.unbind(event_complete, set)\n\t\t\t\t.unbind(event_load, clear);\n\t\t\t$box.removeClass(className + \"off \" + className + \"on\");\n\t\t}\n\n\t\treturn function(){\n\t\t\tif (active) {\n\t\t\t\tif (!settings.get('slideshow')) {\n\t\t\t\t\t$events.unbind(event_cleanup, reset);\n\t\t\t\t\treset();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (settings.get('slideshow') && $related[1]) {\n\t\t\t\t\tactive = true;\n\t\t\t\t\t$events.one(event_cleanup, reset);\n\t\t\t\t\tif (settings.get('slideshowAuto')) {\n\t\t\t\t\t\tstart();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstop();\n\t\t\t\t\t}\n\t\t\t\t\t$slideshow.show();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t}());\n\n\n\tfunction launch(element) {\n\t\tvar options;\n\n\t\tif (!closing) {\n\n\t\t\toptions = $(element).data(colorbox);\n\n\t\t\tsettings = new Settings(element, options);\n\n\t\t\tgetRelated(settings.get('rel'));\n\n\t\t\tif (!open) {\n\t\t\t\topen = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.\n\n\t\t\t\tsetClass(settings.get('className'));\n\n\t\t\t\t// Show colorbox so the sizes can be calculated in older versions of jQuery\n\t\t\t\t$box.css({visibility:'hidden', display:'block', opacity:''});\n\n\t\t\t\t$loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');\n\t\t\t\t$content.css({width:'', height:''}).append($loaded);\n\n\t\t\t\t// Cache values needed for size calculations\n\t\t\t\tinterfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();\n\t\t\t\tinterfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();\n\t\t\t\tloadedHeight = $loaded.outerHeight(true);\n\t\t\t\tloadedWidth = $loaded.outerWidth(true);\n\n\t\t\t\t// Opens inital empty Colorbox prior to content being loaded.\n\t\t\t\tvar initialWidth = setSize(settings.get('initialWidth'), 'x');\n\t\t\t\tvar initialHeight = setSize(settings.get('initialHeight'), 'y');\n\t\t\t\tvar maxWidth = settings.get('maxWidth');\n\t\t\t\tvar maxHeight = settings.get('maxHeight');\n\n\t\t\t\tsettings.w = Math.max((maxWidth !== false ? Math.min(initialWidth, setSize(maxWidth, 'x')) : initialWidth) - loadedWidth - interfaceWidth, 0);\n\t\t\t\tsettings.h = Math.max((maxHeight !== false ? Math.min(initialHeight, setSize(maxHeight, 'y')) : initialHeight) - loadedHeight - interfaceHeight, 0);\n\n\t\t\t\t$loaded.css({width:'', height:settings.h});\n\t\t\t\tpublicMethod.position();\n\n\t\t\t\ttrigger(event_open);\n\t\t\t\tsettings.get('onOpen');\n\n\t\t\t\t$groupControls.add($title).hide();\n\n\t\t\t\t$box.focus();\n\n\t\t\t\tif (settings.get('trapFocus')) {\n\t\t\t\t\t// Confine focus to the modal\n\t\t\t\t\t// Uses event capturing that is not supported in IE8-\n\t\t\t\t\tif (document.addEventListener) {\n\n\t\t\t\t\t\tdocument.addEventListener('focus', trapFocus, true);\n\n\t\t\t\t\t\t$events.one(event_closed, function () {\n\t\t\t\t\t\t\tdocument.removeEventListener('focus', trapFocus, true);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Return focus on closing\n\t\t\t\tif (settings.get('returnFocus')) {\n\t\t\t\t\t$events.one(event_closed, function () {\n\t\t\t\t\t\t$(settings.el).focus();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar opacity = parseFloat(settings.get('opacity'));\n\t\t\t$overlay.css({\n\t\t\t\topacity: opacity === opacity ? opacity : '',\n\t\t\t\tcursor: settings.get('overlayClose') ? 'pointer' : '',\n\t\t\t\tvisibility: 'visible'\n\t\t\t}).show();\n\n\t\t\tif (settings.get('closeButton')) {\n\t\t\t\t$close.html(settings.get('close')).appendTo($content);\n\t\t\t} else {\n\t\t\t\t$close.appendTo('
'); // replace with .detach() when dropping jQuery < 1.4\n\t\t\t}\n\n\t\t\tload();\n\t\t}\n\t}\n\n\t// Colorbox's markup needs to be added to the DOM prior to being called\n\t// so that the browser will go ahead and load the CSS background images.\n\tfunction appendHTML() {\n\t\tif (!$box) {\n\t\t\tinit = false;\n\t\t\t$window = $(window);\n\t\t\t$box = $tag(div).attr({\n\t\t\t\tid: colorbox,\n\t\t\t\t'class': $.support.opacity === false ? prefix + 'IE' : '', // class for optional IE8 & lower targeted CSS.\n\t\t\t\trole: 'dialog',\n\t\t\t\ttabindex: '-1'\n\t\t\t}).hide();\n\t\t\t$overlay = $tag(div, \"Overlay\").hide();\n\t\t\t$loadingOverlay = $([$tag(div, \"LoadingOverlay\")[0],$tag(div, \"LoadingGraphic\")[0]]);\n\t\t\t$wrap = $tag(div, \"Wrapper\");\n\t\t\t$content = $tag(div, \"Content\").append(\n\t\t\t\t$title = $tag(div, \"Title\"),\n\t\t\t\t$current = $tag(div, \"Current\"),\n\t\t\t\t$prev = $('