{"version":3,"file":"/assets/js/scripts.js","mappings":"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","sources":["webpack://wp-starter-theme/webpack/runtime/chunk loaded","webpack://wp-starter-theme/./assets/js/connecting-dots.es6.js","webpack://wp-starter-theme/./assets/js/header.es6.js","webpack://wp-starter-theme/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://wp-starter-theme/./node_modules/swiper/shared/utils.mjs","webpack://wp-starter-theme/./node_modules/swiper/shared/swiper-core.mjs","webpack://wp-starter-theme/./node_modules/swiper/modules/navigation.mjs","webpack://wp-starter-theme/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://wp-starter-theme/./assets/js/resource-cards.es6.js","webpack://wp-starter-theme/./assets/js/scripts.es6.js","webpack://wp-starter-theme/./assets/js/video.es6.js","webpack://wp-starter-theme/webpack/bootstrap","webpack://wp-starter-theme/webpack/runtime/hasOwnProperty shorthand","webpack://wp-starter-theme/webpack/runtime/jsonp chunk loading","webpack://wp-starter-theme/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};","jQuery(function ($) {\n // Sync accordion when tab is clicked.\n\t$('.connecting-dots [data-bs-toggle=\"pill\"]').on(\n\t\t\"shown.bs.tab\",\n\t\tfunction (event) {\n\t\t\t// Get index from id of newly activated tab\n\t\t\tconst index = event.target.id.split(\"-\").pop();\n\n\t\t\t// Toggle corresponding collapse\n\t\t\t$(event.target)\n\t\t\t\t.closest(\".connecting-dots\")\n\t\t\t\t.find(\".accordion-item\")\n\t\t\t\t.eq(index - 1)\n\t\t\t\t.find(\".collapse\")\n\t\t\t\t.collapse(\"show\");\n\t\t}\n\t);\n\n // Sync tab when accordion is clicked.\n $(\".connecting-dots .collapse\").on(\"show.bs.collapse\", function (event) {\n // Get index from id of newly activated collapse\n const index = event.target.id.split(\"-\").pop();\n\n // Toggle corresponding tab\n $(event.target)\n .closest(\".connecting-dots\")\n .find(\".connecting-dots__tab\")\n .eq(index - 1)\n .find('[data-bs-toggle=\"pill\"]')\n .tab(\"show\");\n });\n});\n","/**\n * Header\n */\njQuery(function ($) {\n\t// Toggle mobile menu\n\t$(\"#nav-toggle-button\").on(\"click\", function () {\n\t\t$(this).toggleClass(\"active\");\n\t\t$(\"html\").toggleClass(\"overflow-hidden\");\n\t});\n\n\t// Submenu toggle on mobile\n\t$(\".menu-item-has-children > a\")\n\t\t.on(\"click\", function (e) {\n\t\t\te.preventDefault();\n\t\t})\n\t\t.on(\"click\", function () {\n\t\t\tif (window.innerWidth < 1024) {\n\t\t\t\t$(this)\n\t\t\t\t\t.toggleClass(\"active\")\n\t\t\t\t\t.next('.submenu')\n\t\t\t\t\t.slideToggle();\n\t\t\t}\n\t\t});\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 deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction 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 : [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}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, getTranslate as h, elementTransitionEnd as i, isObject as j, getSlideTransformEl as k, elementStyle as l, elementNextAll as m, nextTick as n, elementPrevAll as o, animateCSSModeScroll as p, extend as q, deleteProps as r, setCSSProperty as s };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, l as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, m as elementNextAll, o as elementPrevAll, h as getTranslate, p as animateCSSModeScroll, n as nextTick, d as now, q as extend, g as elementIndex, c as createElement, r 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 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 return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.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 function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(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(slidesLength);\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, slidesLength, getDirectionLabel);\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[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[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[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\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' : 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 if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 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 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\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\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\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 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 slides[i].classList.add(params.slideVisibleClass);\n }\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\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 getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\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 activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\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 lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\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) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\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 (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\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 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 (speed === void 0) {\n speed = this.params.speed;\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 (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\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 (speed === void 0) {\n speed = this.params.speed;\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 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 newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\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) return swiper;\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 }\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 (speed === void 0) {\n speed = this.params.speed;\n }\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) return swiper;\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 }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\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 (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\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 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 slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\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 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 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.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 // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\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 + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 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.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 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 onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.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 e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.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 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\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 (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\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 prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\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 if (e.targetTouches && e.targetTouches.length > 1) return;\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 || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\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 if (!data.isMoved) {\n if (isLoop) {\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 });\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 if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\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 && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : 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 && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : 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 const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(event.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(event.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\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 (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 // 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);\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.currentTranslate === data.startTranslate) {\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 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 (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (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\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\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\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', 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 document = getDocument();\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 if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\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 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\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 if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\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 (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\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 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 touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\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 loopedSlides: null,\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 slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-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 (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\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 evCache: []\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 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 (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? 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 += 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-CONTAINER') {\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 el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, 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 swiper.el.swiper = null;\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 { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.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 const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\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.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\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 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : '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 if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import Swiper from \"swiper\";\nimport { Navigation } from \"swiper/modules\";\n\ndocument.querySelectorAll('.resource-cards-slider').forEach((sliderEl) => {\n new Swiper(sliderEl, {\n modules: [Navigation],\n slidesPerView: \"auto\",\n spaceBetween: 18,\n centeredSlides: true,\n enabled: true,\n navigation: {\n prevEl: document.querySelector(`.swiper-button-prev[data-target=\"#${sliderEl.id}\"]`),\n nextEl: document.querySelector(`.swiper-button-next[data-target=\"#${sliderEl.id}\"]`),\n },\n breakpoints: {\n // when window width is >= 1024px\n 1024: {\n centeredSlides: false,\n enabled: false,\n },\n },\n });\n});\n\njQuery(function($) {\n $('.resource-cards .modal').on('hidden.bs.modal',function(event){\n if (window.innerWidth < 1024) {\n // On mobile, prevent focus on the toggle button after bootstrap modal is closed.\n event.stopImmediatePropagation();\n }\n });\n})\n","(function($) {\n\n\t$(document).ready(function() {\n\n\t});\n\n})(jQuery);\n","/**\n * Video\n */\njQuery(function ($) {\n\t// Play/Pause the video when opening/closing the modal.\n\t$(\".modal\").each((index, modalEl) => {\n\t\tconst $iframe = $(modalEl).find(\".video-iframe\");\n\t\tif ($iframe.length) {\n\t\t\t$(modalEl)\n\t\t\t\t.on(\"hide.bs.modal\", () => {\n\t\t\t\t\tif ($iframe.attr('src').includes('youtube')) {\n\t\t\t\t\t\tconst message = '{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}';\n\t\t\t\t\t\t$iframe[0].contentWindow.postMessage(message, \"*\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$iframe.attr('src', $iframe.attr('src'));\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.on(\"show.bs.modal\", () => {\n\t\t\t\t\tconst message = '{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}';\n\t\t\t\t\t$iframe[0].contentWindow.postMessage(message, \"*\");\n\t\t\t\t});\n\t\t}\n\t});\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t429: 0,\n\t925: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkwp_starter_theme\"] = self[\"webpackChunkwp_starter_theme\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [925], () => (__webpack_require__(771)))\n__webpack_require__.O(undefined, [925], () => (__webpack_require__(257)))\n__webpack_require__.O(undefined, [925], () => (__webpack_require__(820)))\n__webpack_require__.O(undefined, [925], () => (__webpack_require__(248)))\n__webpack_require__.O(undefined, [925], () => (__webpack_require__(643)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [925], () => (__webpack_require__(323)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","jQuery","$","on","event","index","target","id","split","pop","closest","find","eq","collapse","tab","this","toggleClass","e","preventDefault","window","innerWidth","next","slideToggle","obj","constructor","Object","extend","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","win","delay","now","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","o","prototype","call","slice","isNode","node","HTMLElement","nodeType","to","arguments","undefined","noExtend","i","nextSource","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","element","selector","matches","tag","classes","classList","add","Array","isArray","elementStyle","prop","child","previousSibling","size","includeMargins","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","includes","major","minor","num","Number","isWebView","test","calcBrowser","eventsEmitter","events","handler","priority","self","eventsListeners","destroyed","method","once","onceHandler","off","__emitterProxy","_len","args","_key","apply","onAny","eventsAnyListeners","offAny","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","slideEl","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","remove","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","push","from","_","column","slideIndexLastInView","rewind","loop","realIndex","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","isNaN","assign","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","nextSlide","nextEls","nextElementSibling","elementNextAll","prevSlide","prevEls","previousElementSibling","prev","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","loopFix","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","slideRealIndex","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","append","recalcSlides","currentSlideTranslate","diff","touches","touchEventsData","controller","control","loopParams","c","loopDestroy","newSlidesOrder","swiperSlideIndex","onTouchStart","evCache","simulateTouch","pointerType","originalEvent","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","type","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","init","resizeObserver","createElements","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","__preventObserver__","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","trim","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","static","newDefaults","module","m","installModule","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","disabled","subEl","tagName","onPrevClick","onNextClick","checkProps","initButton","destroyButton","_s","pagination","clickable","isHidden","toggle","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","parents","parent","parentElement","disconnect","sliderEl","ready","each","modalEl","$iframe","attr","contentWindow","postMessage","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","__webpack_modules__","O","result","chunkIds","fn","notFulfilled","Infinity","fulfilled","j","every","r","hasOwnProperty","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}