{"version":3,"file":"/scripts/app.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///./assets/scripts/components/accordion.js","webpack:///./node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///./node_modules/swiper/shared/utils.mjs","webpack:///./node_modules/swiper/shared/swiper-core.mjs","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack:///./node_modules/swiper/shared/classes-to-selector.mjs","webpack:///./node_modules/swiper/modules/manipulation.mjs","webpack:///./node_modules/swiper/shared/effect-init.mjs","webpack:///./node_modules/swiper/shared/effect-target.mjs","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack:///./node_modules/swiper/shared/create-shadow.mjs","webpack:///./node_modules/swiper/swiper-bundle.mjs","webpack:///./node_modules/swiper/modules/virtual.mjs","webpack:///./node_modules/swiper/modules/keyboard.mjs","webpack:///./node_modules/swiper/modules/mousewheel.mjs","webpack:///./node_modules/swiper/modules/navigation.mjs","webpack:///./node_modules/swiper/modules/pagination.mjs","webpack:///./node_modules/swiper/modules/scrollbar.mjs","webpack:///./node_modules/swiper/modules/parallax.mjs","webpack:///./node_modules/swiper/modules/zoom.mjs","webpack:///./node_modules/swiper/modules/controller.mjs","webpack:///./node_modules/swiper/modules/a11y.mjs","webpack:///./node_modules/swiper/modules/history.mjs","webpack:///./node_modules/swiper/modules/hash-navigation.mjs","webpack:///./node_modules/swiper/modules/autoplay.mjs","webpack:///./node_modules/swiper/modules/thumbs.mjs","webpack:///./node_modules/swiper/modules/free-mode.mjs","webpack:///./node_modules/swiper/modules/grid.mjs","webpack:///./node_modules/swiper/modules/effect-fade.mjs","webpack:///./node_modules/swiper/modules/effect-cube.mjs","webpack:///./node_modules/swiper/modules/effect-flip.mjs","webpack:///./node_modules/swiper/modules/effect-coverflow.mjs","webpack:///./node_modules/swiper/modules/effect-creative.mjs","webpack:///./node_modules/swiper/modules/effect-cards.mjs","webpack:///./node_modules/swiper/swiper-bundle.css?440d","webpack:///./assets/scripts/blocks/featured-posts.js","webpack:///./assets/scripts/components/slider.js","webpack:///./assets/scripts/app.js","webpack:///./assets/scripts/blocks/masthead.js","webpack:///./assets/scripts/blocks/wp-menu.js","webpack:///./assets/scripts/components/ada.js","webpack:///./assets/scripts/components/animation.js","webpack:///./assets/scripts/components/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 const children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { g as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { k as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { g as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","/**\n * Swiper 11.1.9\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 31, 2024\n */\n\nimport { S as Swiper } from './shared/swiper-core.mjs';\nimport Virtual from './modules/virtual.mjs';\nimport Keyboard from './modules/keyboard.mjs';\nimport Mousewheel from './modules/mousewheel.mjs';\nimport Navigation from './modules/navigation.mjs';\nimport Pagination from './modules/pagination.mjs';\nimport Scrollbar from './modules/scrollbar.mjs';\nimport Parallax from './modules/parallax.mjs';\nimport Zoom from './modules/zoom.mjs';\nimport Controller from './modules/controller.mjs';\nimport A11y from './modules/a11y.mjs';\nimport History from './modules/history.mjs';\nimport HashNavigation from './modules/hash-navigation.mjs';\nimport Autoplay from './modules/autoplay.mjs';\nimport Thumb from './modules/thumbs.mjs';\nimport freeMode from './modules/free-mode.mjs';\nimport Grid from './modules/grid.mjs';\nimport Manipulation from './modules/manipulation.mjs';\nimport EffectFade from './modules/effect-fade.mjs';\nimport EffectCube from './modules/effect-cube.mjs';\nimport EffectFlip from './modules/effect-flip.mjs';\nimport EffectCoverflow from './modules/effect-coverflow.mjs';\nimport EffectCreative from './modules/effect-creative.mjs';\nimport EffectCards from './modules/effect-cards.mjs';\n\n// Swiper Class\nconst modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\nSwiper.use(modules);\n\nexport { Swiper, Swiper as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force, beforeInit) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop,\n initialSlide\n } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) {\n return;\n }\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`)).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n update(false, true);\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, j as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n limitToOriginalSize: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getMaxRatio() {\n const params = swiper.params.zoom;\n const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {\n const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;\n return Math.min(imageMaxRatio, maxRatio);\n }\n return maxRatio;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = getMaxRatio();\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n let allowTouchMoveTimeout;\n function allowTouchMove() {\n swiper.touchEventsData.preventTouchMoveFromPointerMove = false;\n }\n function preventTouchMove() {\n clearTimeout(allowTouchMoveTimeout);\n swiper.touchEventsData.preventTouchMoveFromPointerMove = true;\n allowTouchMoveTimeout = setTimeout(() => {\n allowTouchMove();\n });\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {\n return;\n }\n const zoom = swiper.zoom;\n if (!gesture.imageEl) {\n return;\n }\n if (!image.isTouched || !gesture.slideEl) {\n return;\n }\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n preventTouchMove();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n const maxRatio = getMaxRatio();\n zoom.scale = forceZoomRatio || maxRatio;\n currentScale = forceZoomRatio || maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, k as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];\n controlElements.forEach(controlElement => {\n if (!swiper.controller.control) swiper.controller.control = [];\n if (controlElement && controlElement.swiper) {\n swiper.controller.control.push(controlElement.swiper);\n } else if (controlElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onControllerSwiper = e => {\n swiper.controller.control.push(e.detail[0]);\n swiper.update();\n controlElement.removeEventListener(eventName, onControllerSwiper);\n };\n controlElement.addEventListener(eventName, onControllerSwiper);\n }\n });\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, h as elementIndex, m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n scrollOnFocus: true\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n const prevEls = makeElementsArray(swiper.navigation.prevEl);\n const nextEls = makeElementsArray(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (prevEls.includes(targetEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = e => {\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n preventFocusHandler = true;\n }\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n preventFocusHandler = false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const onVisibilityChange = e => {\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n requestAnimationFrame(() => {\n if (preventFocusHandler) return;\n if (swiper.params.loop) {\n swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);\n } else {\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n }\n preventFocusHandler = false;\n });\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${index}\"]`) : swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { l as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener(eventName, onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener(eventName, onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","import { d as now, k as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const r = getRotateFix(swiper);\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n const rotateFix = getRotateFix(swiper);\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n const r = getRotateFix(swiper);\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n const rotateFix = getRotateFix(swiper);\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n","import api from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../css-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[1]!../postcss-loader/dist/cjs.js??ruleSet[1].rules[8].oneOf[1].use[2]!./swiper-bundle.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import Swiper from 'swiper/bundle';\n\n// import styles bundle\nimport 'swiper/css/bundle';\n\nexport const featuredPosts = () => {\n\n\n const el = document.querySelector('.featured-posts--grid');\n const swiper = new Swiper( el, {\n autoHeight: false,\n slidesPerView: 1,\n slidesPerGroup: 1,\n spaceBetween: 30,\n // grid: {\n // column: 4,\n // },\n // effect: 'fade',\n // fadeEffect: {\n // crossFade: true\n // },\n // direction: 'vertical',\n // loop: true,\n breakpoints: {\n 200: {\n slidesPerView: 1,\n //slidesPerGroup: 1,\n },\n 768: {\n slidesPerView: 2,\n //slidesPerGroup: 2,\n },\n 1024: {\n slidesPerView: 3,\n //slidesPerGroup: 3,\n },\n 1200: {\n slidesPerView: 4,\n //slidesPerGroup: 4,\n },\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n\n });\n\n}\n","// import Swiper bundle with all modules installed\nimport Swiper from 'swiper/bundle';\n\n// import styles bundle\nimport 'swiper/css/bundle';\n\nexport const slider = () => {\n\n\tfunction setAlignFullCssVar() {\n // Create the measurement node\n let scrollDiv = document.createElement('div');\n scrollDiv.className = 'scrollbar-measure';\n document.body.appendChild(scrollDiv);\n\n // Get the scrollbar width & half width\n let scrollBarWidth = window.innerWidth - scrollDiv.clientWidth;\n let alignFullOffset = scrollBarWidth / 2;\n\n // console.log(window.innerWidth);\n // console.log(scrollDiv.clientWidth);\n // console.warn(scrollBarWidth); // Mac: 15\n\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n\n //Get .alignfull element\n let root = document.documentElement;\n let root_style = getComputedStyle(root);\n\n //Set --alignfull-offset css var\n let cssVarAlignFullOffset =\n root_style.getPropertyValue('--alignfull-offset');\n if (alignFullOffset + 'px' !== cssVarAlignFullOffset) {\n root.style.setProperty('--alignfull-offset', alignFullOffset + 'px');\n }\n }\n\n//post sliders\n document\n .querySelectorAll('.wp-block-group.is-slider')\n .forEach((block, i) => {\n // const swiperEl = '.is-style-slider';\n // $(block).removeClass(function (index, css) {\n // return (css.match(/\\bwp-\\S+/g) || []).join(' '); // removes anything that starts with \"wp-container\"\n // });\n // $(swiperEl).attr('class', 'wp-block-gallery is-style-slider swiper');\n $(block)\n .addClass('swiper')\n .find('.wp-block-group__inner-container').eq(0)\n .addClass('swiper-wrapper')\n .children('.wp-block-group')\n .addClass('swiper-slide');\n\n $(block)\n .append('
')\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 }","// 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/colorbox');\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\n // Blocks\n require('./blocks/masthead');\n require('./blocks/wp-menu');\n\n accordion();\n slider();\n featuredPosts();\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","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});\n","\nlet disclaimerDialog = document.getElementById('disclaimer-dialog');\nlet disclaimerDialogClose = document.getElementById('disclaimer-dialog--close');\n\nif ( disclaimerDialog !== null ) {\n\n var cookie_exists = document.cookie.match(/^(.*;)?\\s*STYXKEYdisclaimerAccepted\\s*=\\s*[^;]+(.*)?$/);\n\n if ( !cookie_exists ) {\n disclaimerDialog.showModal();\n }\n\n disclaimerDialogClose.addEventListener('click', function() {\n disclaimerDialog.close();\n var date = new Date();\n date.setTime(date.getTime() + (1000 * 60 * 60 * 24 * 7));\n document.cookie = \"STYXKEYdisclaimerAccepted=1; expires= \" + date;\n }, false);\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\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$('.wp-social-link a').prop('target','_blank');\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\n// if ( !$('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 == '#') {\n\n\n\n// }\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.dropdown > a').on('click', function(e) {\n\n e.preventDefault();\n\n var href = $(this).attr('href');\n\n console.log(href);\n\n if ( href == '#') {\n $(this).parent().toggleClass('is-expanded');\n } else {\n return;\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","// 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\":\"AAaA,WACE,wBAA2B,CAG3B,iBAAkB,CADlB,eAAgB,CADhB,4rEAGF,CAEA,MACE,4BAKF,CACA,MAEE,aAAc,CACd,gBAAiB,CACjB,iBAAkB,CAHlB,iBAAkB,CAIlB,SACF,CACA,QASE,aAAc,CAJd,eAAgB,CAJhB,gBAAiB,CACjB,iBAAkB,CAElB,eAAgB,CAEhB,SAAU,CAHV,iBAAkB,CAKlB,SAEF,CACA,iCACE,qBACF,CACA,gBAQE,sBAAuB,CAHvB,YAAa,CAFb,WAAY,CAFZ,iBAAkB,CAKlB,6BAA8B,CAC9B,mFAAqF,CALrF,UAAW,CAEX,SAKF,CACA,wEAGE,uBACF,CACA,mBACE,kBACF,CACA,iBACE,kBACF,CACA,cAME,aAAc,CALd,aAAc,CAEd,WAAY,CACZ,iBAAkB,CAClB,6BAA8B,CAH9B,UAKF,CACA,8BACE,iBACF,CAEA,oDAEE,WACF,CACA,mCACE,sBAAuB,CACvB,oCACF,CACA,sCAGU,0BAA2B,CAFnC,uBAGF,CAEA,2CACE,kBACF,CACA,2BACE,2BACF,CACA,WACE,kBACF,CACA,wDAEE,2BACF,CAEA,iCAIE,uBAAwB,CAHxB,aAAc,CACd,oBAIF,CACA,oDACE,YACF,CACA,+CACE,6BACF,CACA,mDACE,4BACF,CACA,iDACE,4BACF,CACA,kDACE,qBACF,CACA,gEACE,sBACF,CACA,wDACE,UAAW,CACX,aAAc,CACd,UACF,CACA,+DACE,+BAAgC,CAChC,uBACF,CACA,6FACE,wDACF,CACA,0EACE,WAAY,CACZ,cAAe,CACf,yCACF,CACA,2FACE,uDACF,CACA,wEAGE,0CAA2C,CAD3C,aAAc,CADd,UAGF,CAGA,sLAcE,WAAY,CAHZ,MAAO,CAIP,mBAAoB,CALpB,iBAAkB,CAElB,KAAM,CACN,UAAW,CAGX,UACF,CACA,gCACE,0BACF,CACA,qCACE,mEACF,CACA,sCACE,kEACF,CACA,oCACE,iEACF,CACA,uCACE,mEACF,CACA,uBAaE,wEAA6B,CAD7B,iBAAkB,CAClB,gCAA6B,CAH7B,qBAAsB,CARtB,WAAY,CAEZ,QAAS,CAET,iBAAkB,CAClB,gBAAiB,CAJjB,iBAAkB,CAElB,OAAQ,CAIR,oBAAqB,CARrB,UAAW,CAOX,UAMF,CACA,+HAEE,kDACF,CACA,6BACE,6BACF,CACA,6BACE,6BACF,CACA,iCACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CAEA,8BACE,kCAAmC,CACnC,uBACF,CACA,sDACE,UAAW,CAEX,MAAO,CAEP,mBAAoB,CAHpB,iBAAkB,CAElB,KAEF,CACA,wEACE,UAAW,CACX,gCACF,CACA,sEAEE,iCAAkC,CADlC,SAEF,CACA,MACE,6BAMF,CACA,wCAUE,kBAAmB,CAEnB,8DAAgE,CAJhE,cAAe,CACf,YAAa,CAJb,oCAAqC,CAMrC,sBAAuB,CALvB,sDAA2D,CAJ3D,iBAAkB,CAClB,2CAA6C,CAC7C,+CAAoD,CAGpD,UAMF,CACA,sFAGE,WAAY,CADZ,WAAa,CAEb,mBACF,CACA,kFAGE,WAAY,CADZ,SAAU,CAEV,mBACF,CACA,gGAEE,sBACF,CACA,gDAGE,WAAY,CACZ,qBAAmB,CAAnB,kBAAmB,CACnB,uBAAwB,CAHxB,UAIF,CACA,wEAEE,wBACF,CACA,oDAEE,+CAAiD,CACjD,UACF,CAMA,oBACE,YACF,CAEA,oDAEE,wBAAyB,CACzB,uCAAwC,CAGxC,mBAAqB,CADrB,gBAAiB,CAEjB,aAAc,CAHd,6BAIF,CACA,gEAEE,cACF,CACA,oDAGE,SAAU,CADV,gDAEF,CACA,gEAEE,cACF,CAuBA,mBACE,iBAAkB,CAClB,iBAAkB,CAElB,uBAA+B,CAD/B,sBAAyB,CAEzB,UACF,CACA,4CACE,SACF,CACA,6FAEE,sBACF,CAEA,4JAIE,0CAA4C,CAE5C,MAAO,CADP,qCAAuC,CAEvC,UACF,CAEA,mCAEE,WAAY,CADZ,eAEF,CACA,6DAEE,iBAAkB,CADlB,oBAEF,CAIA,6IACE,kBACF,CACA,yEACE,oBACF,CACA,8EACE,oBACF,CACA,yEACE,oBACF,CACA,8EACE,oBACF,CACA,0BAKE,8DAAgE,CADhE,+DAAiE,CADjE,oBAAqB,CADrB,sFAAyF,CAIzF,2DAA8D,CAL9D,oFAMF,CACA,gCAKE,uBAAwB,CAChB,oBAAgB,CAAhB,eAAgB,CALxB,WAAY,CAGZ,eAAgB,CAFhB,QAAS,CACT,SAIF,CACA,uDACE,cACF,CACA,qCACE,sBACF,CACA,iCAEE,mEAAqE,CADrE,iDAEF,CACA,kGAGE,uCAAyC,CADzC,wCAA0C,CAE1C,OAAQ,CACR,+BACF,CACA,sJAGE,aAAc,CADd,yDAEF,CACA,sKAEE,OAAQ,CACR,0BAA2B,CAC3B,SACF,CACA,0NAEE,oBAAqB,CACrB,gCAEF,CACA,0JAEE,2DACF,CACA,0KAEE,QAAS,CACT,0BAA2B,CAC3B,kBACF,CACA,8NAEE,iCAEF,CACA,2FACE,kCAEF,CAEA,4BACE,qDACF,CAEA,+BACE,wEAA8E,CAC9E,iBACF,CACA,mEACE,mEAAqE,CAKrE,WAAY,CAHZ,MAAO,CADP,iBAAkB,CAElB,KAAM,CAGN,kBAAmB,CACnB,yBAA0B,CAH1B,UAIF,CACA,+EACE,0BACF,CACA,sSAKE,oDAAsD,CACtD,MAAO,CACP,KAAM,CAHN,UAIF,CACA,sSAKE,WAAY,CACZ,MAAO,CACP,KAAM,CAHN,mDAIF,CACA,wBACE,YACF,CAcA,kBAIE,0DAAgE,CAHhE,wDAA0D,CAC1D,iBAAkB,CAClB,iBAEF,CACA,yFAEE,sBACF,CACA,mFAIE,yCAA2C,CAG3C,uCAAyC,CAJzC,4CAA8C,CAD9C,iBAAkB,CAGlB,oCAAsC,CAGtC,6DAAgE,CAFhE,UAGF,CACA,+EAQE,8DAAiE,CALjE,sCAAwC,CADxC,iBAAkB,CAElB,uCAAyC,CACzC,2CAA6C,CAE7C,sCAAwC,CADxC,UAGF,CACA,uBAIE,+DAAqE,CACrE,wDAA0D,CAJ1D,WAAY,CAKZ,MAAO,CAHP,iBAAkB,CAIlB,KAAM,CALN,UAMF,CACA,8BACE,WACF,CACA,uBACE,YACF,CAEA,uBAKE,kBAAmB,CAFnB,YAAa,CADb,WAAY,CAEZ,sBAAuB,CAEvB,iBAAkB,CALlB,UAMF,CACA,oFAIE,eAAgB,CADhB,cAAe,CAEf,qBAAmB,CAAnB,kBACF,CAEA,qBACE,WAAY,CACZ,iBACF,CAEA,6BAEE,MAAO,CAGP,SAAU,CADV,mBAAoB,CAHpB,iBAAkB,CAElB,KAAM,CAGN,aACF,CACA,kCAEE,aAAc,CADd,mCAEF,CACA,6BACE,cACF,CACA,oCAEE,qBAAsB,CADtB,cAEF,CACA,4CACE,mCACF,CACA,2BACE,mBAAoB,CACpB,2BACF,CACA,yCACE,mBACF,CAIA,yFACE,mBACF,CACA,aACE,gBACF,CACA,2BAGU,0BAA2B,CAKnC,WAAY,CAPZ,mBAAoB,CAKpB,oBAAqB,CADrB,iBAAkB,CAElB,UAAW,CAHX,SAKF,CACA,yCACE,mBACF,CACA,sCACE,uBACF,CACA,yFAEE,mBACF,CACA,kGAGE,mBAAoB,CACpB,kBACF,CACA,iCAGE,QAAW,CAEX,WAAY,CAHZ,MAAO,CAIP,UAAY,CALZ,iBAAkB,CAGlB,UAAW,CAGX,SACF,CACA,wCAEE,eAAgB,CAIhB,QAAS,CALT,UAAW,CAOX,iBAAkB,CAJlB,MAAO,CADP,iBAAkB,CAIlB,OAAQ,CAFR,KAIF,CACA,8CACE,mBAAoB,CACpB,kBACF,CAEA,kQAMU,0BAA2B,CAFnC,SAGF,CAEA,aACE,gBACF,CACA,2BAGU,0BAA2B,CAFnC,mBAAoB,CAGpB,SACF,CACA,yCACE,mBACF,CACA,yFAEE,mBACF,CAEA,kQAMU,0BAA2B,CAFnC,SAGF,CAEA,+BAEU,0BAA2B,CACnC,eAAgB,CAChB,4CACF,CACA,cACE,gBACF,CACA,4BAGU,0BAA2B,CACnC,eAAgB,CAHhB,8BAIF\",\"sourcesContent\":[\"/**\\n * Swiper 11.1.9\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2024 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: July 31, 2024\\n */\\n\\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 = $('